Zabbixを使ってサーバ証明書の有効期限を監視してアラート出してみた
こんにちは鶴田です。
今回はzabbixをつかってサーバ証明書の監視が、思ったよりも簡単にできたので紹介したいと思います。
証明書の有効期限を出力するスクリプトを作成
証明書の情報は openssl s_client で取得して、出力を整形/計算して証明書の残り期限を出力させるスクリプトを用意します。
ssl_cert_days.sh
DOMAIN=$1
TODAY=$(date "+%Y%m%d")
PREVALIDDAY=$(echo | openssl s_client -connect $DOMAIN:443 -servername $DOMAIN 2>/dev/null | openssl x509 -noout -enddate | awk -F '=' '{print $2}')
expr \( `date -d"$PREVALIDDAY" +%s` - `date -d"$TODAY" +%s` \) / 86400
スクリプト配置
Zabbixエージェント側の、サーバのZabbixエージェント設定ファイルのディレクトリに、スクリプトを配置する。
また、Zabbixユーザで実行できるよう、スクリプトの権限と所有者を変更しておく。
chmod 755 /etc/zabbix/ssl_cert_days.sh
chown zabbix:zabbix /etc/zabbix/ssl_cert_days.sh
Zabbixエージェント設定ファイルの修正
/etc/zabbix/zabbix_agentd.conf
UserParameter=cert_expire_check[*],/etc/zabbix/ssl_cert_days.sh $1
Zabbixエージェント再起動
systemcctl restart zabbix-agent
アイテムの取得
取得したいドメインをキーの値に設定する
トリガーの設定
ここでは10日前に設定する。
まとめ
思ったよりも簡単に監視することができました。
自動更新できるものは監視しなくても大丈夫だと思いますが、自動更新できないものをチックするのに便利です。
一度サーバーにスクリプトを配置してしまえば、増えても問題なしです。