隨著https網(wǎng)站的普及,ssl證書的過期時間需要重點關(guān)注。如果使用let’s encrypt的免費證書,可以配置自動更新程序。不過我覺得最好還是做下監(jiān)控,因為有時候自動續(xù)期可能會出現(xiàn)問題。zabbix實現(xiàn)https網(wǎng)站ssl證書到期時間監(jiān)控思路很清晰,把到期時間取出來和當前時間比較,比如到期前15天告警。
查詢證書api接口請求url:https://api.nbhao.org/v1/ssl/cert
接口說明:https://api.nbhao.org/web/#/1?page_id=5
監(jiān)控腳本如下:
#!/usr/bin/env python#coding: utf-8import requestsimport argparseimport timeurl = \'https://api.nbhao.org/v1/ssl/cert\'if __name__ == \__main__\: parser = argparse.argumentparser(description=\check ssl expire time.\) parser.add_argument(\-h\, dest=\host\, help=\https hostname\) parser.add_argument(\-p\, dest=\port\, default=443, help=\https port ,default 443\) args = parser.parse_args() try: resp = requests.get(url = url, params={\host\:args.host,\port\:args.port}) result = resp.json() except: result = dict() if result: if result[\'code\'] == 200: tm_end = result[\'message\'][\'te\'] # 返回剩余的天數(shù) print (tm_end - int(time.time()))/86400 else: print \error\ else: print \error\此腳本正常會返回ssl證書剩余的天數(shù),把這個腳本保存到zabbix的外部命令externalscripts目錄,并賦予可執(zhí)行權(quán)限。zabbix外部命令具體路徑在配置文件zabbix_server.conf的externalscripts,默認注銷沒有啟用。
配置zabbix1、添加itemtype:選擇“external check”
key:配置類似如“check_ssl.py[“-h”,”www.szl724.com”]”,其中check_ssl.py是腳本的名字,中括號里是對應(yīng)的參數(shù)“-h www.szl724.com”,查詢www.szl724.com域名443端口的ssl證書。
type of information:numeric,整數(shù)格式
update interval:5m,5分鐘檢查一次
注:添加item后注意查看“l(fā)atest data”里是不是正常采集到數(shù)據(jù)。
2、添加triggerexpression:觸發(fā)器兩個條件,分別是30分鐘沒有數(shù)值(ssl證書信息獲取失?。┖?0分鐘內(nèi)最大值小于15(ssl證書到期時間小于15天)。
如果有多個https網(wǎng)站的話按照這個步驟添加即可。