1.zabbix客户端操作
cat /usr/local/zabbix/scripts/domain_discovery
#!/bin/bash
# 指定txt文件路径
txt_file="/usr/local/zabbix/scripts/domain.txt"
# 读取txt文件内容
content=$(cat "$txt_file")
# 格式化JSON输出
json_output="{ \n \"data\": [\n"
while IFS= read -r line; do
json_output+=" { \n \"{#DOMAIN}\":\"$line\"},\n"
done <<< "$content"
json_output="${json_output%,*}"
json_output+=" \n ] \n}"
# 输出JSON格式结果
echo -e "$json_output"
cat /usr/local/zabbix/scripts/domain.txt
www.qq.com
www.baidu.com
www.taobao.com
cat /usr/local/zabbix/scripts/domain_date_status
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: $0 <domain>"
exit 1
fi
domain=$1
expiry_date=$(openssl s_client -servername $domain -connect $domain:443 -showcerts </dev/null 2>/dev/null | openssl x509 -noout -dates | grep "notAfter" | cut -d "=" -f 2)
if [ -z "$expiry_date" ]; then
echo "Failed to retrieve SSL certificate information for $domain."
exit 1
fi
expiry_epoch=$(date -d "$expiry_date" +%s)
current_epoch=$(date +%s)
remaining_days=$(( ($expiry_epoch - $current_epoch) / 86400 ))
#echo "The SSL certificate for $domain will expire in $remaining_days days."
echo $remaining_days
脚本测试 获取文本内域名json格式输出匹配zabbix自动发现规则
./domain_discovery{
"data": [
{
"{#DOMAIN}":"www.qq.com"},
{
"{#DOMAIN}":"www.baidu.com"},
{
"{#DOMAIN}":"www.taobao.com"}
]
}
脚本测试 ./domain_date_status 域名
./domain_date_status www.baidu.com
187
zabbix客户端配置文件添加以下两行自定义key
UserParameter=domain_discovery,/usr/local/zabbix/scripts/domain_discovery
UserParameter=domain_date_status[*],/usr/local/zabbix/scripts/domain_date_status $1
添加后重启zabbix_agentd
/etc/init.d/zabbix_agentd restart
2.zabbix服务端操作
创建域名发现规则
添加监控项原型
添加触发器规则
添加图形 可以自行选择非必要
以下域名监控项已经自动发现并添加
触发器也自动生成了
图形
zabbix触发器报警并且通过企业微信发送报警消息
未经允许不得转载:zabbix批量添加域名证书进行监控并通过微信报警
发表评论