添加域名ssl證書過期時間監控


1.cd  /usr/local/zabbix/scripts 目錄下

創建如下腳本(check-cert-expire.sh):

#!/bin/sh

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目錄下

創建如下自定義參數配置文件(userparameter_ssl_check_expire.conf):

 

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 443

 

3.重啟zabbix agent

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/ssl

一個域名對應一個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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM