0
2

More than 1 year has passed since last update.

Zabbixを使ってサーバ証明書の有効期限を監視してみた

Posted at

はじめに

Zabbixでサーバ証明書の有効期限を監視して、期限が近づいたらアラートを発砲して証明書の更新作業を行えるように運用をしたいので、アイテムを取得できるように設定してみます。

サーバ構成

Zabbixサーバ

  • AWS(EC2)
  • CentOS7.9
  • Zabbix-Agent5.0
  • Zabbix-Server

Webサーバ

  • AWS(EC2)
  • CentOS7.9
  • Zabbix-Agent5.0
  • Apache2.4
  • mod_ssl

前提条件

  • ネットワーク環境(VPC,サブネット,ルートテーブル,セキュリティグループ)が既に構築済みであること
  • 各サーバに実装されているソフトウェアおよびミドルウェアは導入済みであること
  • opensslで自己証明書を作成していること
  • Apacheの設定ファイルに自己証明書の設定が済んでいること

構築してみる

証明書の有効期限を出力するスクリプトを作成

ssl_cert_days.sh

#!/bin/bash

date +"%s" --date="`openssl s_client -connect localhost:443 -servername localhost </dev/null 2>/dev/null | openssl x509 -enddate -noout | cut -d'=' -f2`" | awk '{printf("%d\n",($0-systime())/86400-1/86400+1)}'

Zabbixのホスト作成

スクリーンショット 2023-01-01 23.11.44.png

ホスト名:任意の名前
グループ:任意のグループ
IPアドレス:プライベートIPアドレス

Zabbixのアイテム作成

スクリーンショット 2023-01-01 23.13.32.png

名前:任意の名前(わかりやすい名前にする)
タイプ:Zabbixエージェント
キー:cert_expire_check[]             (エージェント側のUserParameterと同じキー名にする)
ホストインターフェース:エージェント側のプライベートIPアドレス
データ型:数値(整数)

Zabbixエージェント設定ファイルの修正

/etc/zabbix/zabbix_agentd.conf

UserParameter=cert_expire_check[*],/etc/zabbix/ssl_cert_days.sh

スクリプト配置

Zabbixエージェント側のサーバに上記の設定ファイルで記載したディレクトリにスクリプトを配置する。
また、Zabbixユーザで実行できるよう、スクリプトの権限と所有者を変更しておく。

chmod 755 /etc/zabbix/ssl_cert_days.sh
chown zabbix:zabbix /etc/zabbix/ssl_cert_days.sh

Zabbixエージェント再起動

systemcctl restart zabbix-agent

Zabbixサーバのログ確認

再起動したら、Zabbixサーバ側のログを確認して、アイテム取得のエラーが発生していないか確認する。

tail -F /var/log/zabbix/zabbix_server.log

アイテム取得確認

アイテム値が取得されていることが確認できたら、それを元にトリガーを作成するなりして、後続の作業ができます。
スクリーンショット 2023-01-01 23.22.18.png

参考

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2