ZABBIX監視SSL証明書の有効期限

証明書の有効期限スクリプトを取得します。

の/ etc / ZABBIX /スクリプト/チェック-CERT-ザ・有効期限が切れる。SH 
!/ binに/ bashのの
ホスト = $ 1 
ポート = $ 2 
END_DATE = `は/ usr / binに/ホストのOpenSSL s_client -servername $ $ $ホスト-host -port -showcertsポート<は/ dev / nullに 2 >は/ dev / nullを |
   わかるsed -n ' / CERTIFICATE / BEGIN / END CERT / P ' | 
  は/ usr / binに/ X509のOpenSSL -text 2 >は/ dev / nullを |
   sedの -n ' S / *未後:* P // ' ` 
#OpenSSLのSSL証明書の検証と妥当性確認。 -SNI特性検査を使用して、ホスト証明書が複数存在することに起因するサーバー名$ホスト </ DEV / ヌルインタラクティブプログラムハングアップを防止するために、方向入力規格を、。以下からの/ dev / nullでの読み取り、0が直接読み出されます。SEDが唯一の一致部分を表示するために、-nおよびPと共に使用しました。// // 一致する範囲。
OpenSSLのX509# - 証明書の有効性を含むテキストデコード証明書情報、。

IF [-n " $のEND_DATE " ]
 、その後
    end_date_seconds = ` DATE  ' +%のS ' - DATE  " の$ END_DATE " ` 
    now_seconds = ` DATE  ' + Sの%' `
     エコー "($ end_date_seconds- $ now_seconds)/ 3600分の24  | 紀元前
 Fiの

自動ディスカバリドメインスクリプト:

は/ usr / binに/のenvパイソン!コーディング:UTF 8 

インポートOS
 のインポートSYS
 インポートのJSON 

この関数は、ZABBIXのための辞書の特定のフォーマット構築するために主にある
DEFの:ssl_cert_discovery()
    web_list = [] 
    web_dict =を{ " データ" :なし} 
    開くと(" の/ etc / ZABBIX /スクリプト/ ssl_cert_list " " R&LT " )F AS:
         のためのsslcert におけるF:
            辞書 = {} 
            辞書[ " {} #DOMAINNAME" ] = sslcert.strip()。スプリット()[0] 
            辞書の[ " {#PORT} " ] = sslcert.strip()。スプリット()[1 ] 
            web_list.append(辞書)
    web_dict [ " データ" ] = web_list
     jsonStr = json.dumps(web_dict、インデント= 4 を返すjsonStrを
 場合 __name__ == " __main__ " 印刷 ssl_cert_discovery()

ドメイン名のリスト:

の/ etc / ZABBIX /スクリプト/ ssl_cert_list:
www.baidu.com 443 
www.qq.com 443

ZABBIXの設定:

/etc/zabbix/zabbix_agentd.conf.d/userparameter_sslcert.conf:
UserParameter = sslcert_discoveryは/ usr / binに/パイソン/etc/zabbix/scripts/sshcert_discovery.py 
UserParameter = sslcert.info [*]、/ binに/ bashの/など/zabbix/scripts/check-cert-expire.sh $ 1 $ 2

テンプレートのZABBIXを追加します。

https://files.cnblogs.com/files/imcati/Template_ssl_cert_info.xml

おすすめ

転載: www.cnblogs.com/imcati/p/11246158.html