1.cd /usr/local/zabbix/scripts 目錄下java
建立以下腳本(check-cert-expire.sh):mysql
#!/bin/sh
nginx
host=$1
port=$2
end_date=`openssl s_client -servername $host -host $host -port $port -showcerts <
/dev/null
2>
/dev/null
|
sed
-n
'/BEGIN CERTIFICATE/,/END CERT/p'
|
openssl x509 -text 2>
/dev/null
|
sed
-n
's/ *Not After : *//p'
`
# openssl 檢驗和驗證SSL證書。
# -servername $host 因一臺主機存在多個證書,利用SNI特性檢查
# </dev/null 定向標準輸入,防止交互式程序Hang。從/dev/null 讀時,直接讀出0 。
# sed -n 和p 一塊兒使用,僅顯示匹配到的部分。 //,// 區間匹配。
# openssl x509 -text 解碼證書信息,包含證書的有效期。
if
[ -n
"$end_date"
]
then
end_date_seconds=`
date
'+%s'
--
date
"$end_date"
`
now_seconds=`
date
'+%s'
`
echo
"($end_date_seconds-$now_seconds)/24/3600"
|
bc
fi
2.cd /usr/local/zabbix/conf/zabbix_agentd目錄下sql
建立以下自定義參數配置文件(userparameter_ssl_check_expire.conf):bash
1
|
UserParameter=check_ssl_cert_expire[*],
/bin/bash
/usr/local/zabbix/scripts/check-cert-expire
.sh $1 $2
|
能夠使用sh+腳本+域名+443端口進行測試測試
sh check-cert-expire.sh mj0001.mjshxiaochengxu.top 443spa
3.重啓zabbix agent3d
1
2
3
4
5
6
7
8
9
10
|
#kill zabbix進程
pkill zabbix
# 配置文件軟連接
ln
-s
/usr/local/zabbix/conf/zabbix_agentd
.conf
/usr/local/etc/zabbix_agentd
.conf
#啓動命令啓動zabbix agent
/usr/local/zabbix/sbin/zabbix_agentd
#查看啓動日誌
tail
-f
/data/logs/zabbix/zabbix_agentd
.log
#檢查端口服務
netstat
-ntlp
|
4.zabbix server端找到對應主機日誌
1)建立監控項(目前沒有作到自動發現) 進入該目錄找到相應的證書域名 /usr/local/nginx/conf/sslcode
一個域名對應一個https端口
鍵值以下:check_ssl_cert_expire[www.mjshenghuo.com,443]
時間間隔可調大
2)建立觸發器
一個觸發器對應一個監控項鍵值
名稱:{HOSTNAME}的域名www.qqsk.com的ssl證書還有{ITEM.LASTVALUE}天過時
嚴重性:通常嚴重
表達式以下:{weilaili-nj-java-mysql-01:check_ssl_cert_expire[www.mjshenghuo.com,443].last()}<60