IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 使用 Zabbix 自动发现与 Python 脚本为多个域名、证书配置到期检查 -> 正文阅读

[网络协议]使用 Zabbix 自动发现与 Python 脚本为多个域名、证书配置到期检查

一、背景&需求

  • 在业务中,常常遇到域名证书到期续签的问题,证书续签后,需要为使用到证书的站点替换新证书,由于站点过多或者疏漏的原因,可能会遇到证书过期了而忘记替换的情况,因此使用 Zabbix 对域名和证书文件进行监控

  • 需求:

    • 到期检查配置多个触发器:60天后到期、30天后到期、10天后到期、明日到期、已过期、时间获取失败
    • 定时检查,而非每分钟检查

    对于第一个需求,一个域名或者证书文件的检查,直接配置监控项和证书文件即可,但是实际上往往有多个证书文件和数不完的域名,这个时候就需要借助 Zabbix 自动发现

    对于第二个需求,在配置监控项目时,将更新间隔设为0,并采用调度间隔指定时间即可

二、Python 脚本获取域名、证书时间

要对域名、证书都做监控,监控证书的目的主要是提醒那些证书即将到期,监控域名的目的主要是为了提醒哪些域名的证书即将过期。

此处不详细展示代码,脚本代码、zabbix模版、配置以及如何使用详见https://github.com/LHB6540/zabbix/tree/main/domain_cert_monitor

脚本1 get_expired_time.py:

获取指定域名、证书的剩余时间

脚本2 get_domain_day.py:

借助 get_expired_time.py 获取指定域名列表的所有到期时间并生成 Zabbix 自动发现格式的数据

脚本3 get_cert_day.py:

借助 get_expired_time.py 获取指定目录下所有证书文件的到期时间并生成 Zabbix 自动发现格式的数据

脚本4 get_signal_cert.py:

借助 get_cert_day.py 生成的数据获取单个证书的剩余有效时间

脚本5 get_signal_cert.py:

借助 get_domain_day.py 生成的数据获取单个域名使用的证书的剩余有效时间

三、配置 Zabbix 监控模板

此处不仅仅配置为自动发现规则,而是配置为模板,在模板中添加自动发现规则,主要是为了在方便在不同机器上使用

脚本代码、zabbix模版、配置以及如何使用详见https://github.com/LHB6540/zabbix/tree/main/domain_cert_monitor

首先编写 Zabbix 配置文件并重启 Agent

UserParameter=domains_discovery,cat /tmp/domain_info.tmp
UserParameter=domain_expired[*],/usr/bin/python3 /etc/zabbix/shell/domain_cert/get_signal_domain.py $1
UserParameter=cert_discovery,cat /tmp/cert_info.tmp
UserParameter=cert_expired_day[*],/usr/bin/python3 /etc/zabbix/shell/domain_cert/get_signal_cert.py $1

以证书监控为例

1、更新间隔设为0,表示不主动检查,自定义间隔使用调度,在每天10点进行检查

2、配置监控项原型同理
在这里插入图片描述

3、配置触发器,注意部分触发器的恢复表达式是额外定义的,例如还有60天到期的触发器,因为目的是在60天的时候提醒,但是如果在59天的时候还没有签新证书,逻辑上不应该是触发器恢复.
在这里插入图片描述

四、参考和 Tip

1、参考:

  • Zabbix 自动发现相关文档:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/low_level_discovery
  • Zabbix 监控项取值间隔:https://www.zabbix.com/documentation/4.0/zh/manual/config/items/item/custom_intervals

2、Tip:

  • 代码和使用说明已上传 Github ,方便下载:

  • get_expired_time.py 中 get_cert_from_endpoint 尝试采用两种方法去进行SSL握手,主要是由于部分网站强制使用TLS1.3进行握手,而ssl.get_server_certificate 方法并不支持

  • get_expired_time.py 可以当作命令行工具直接使用哦

  • 使用 Zabbix 自动发现获取监控项后,针对每个监控项目的取值,可以采用相关项目代替脚本,这个会在后续文章中有提到,为了更好地利用这一特性,建议使用 Zabbix 5

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:45:58  更:2021-11-10 12:48:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:25:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码