お世話になっております、マヌルネコです。
久しぶりの投稿ですみません。
これからは毎月1投稿は書いていきたいと考えています。
みなさま、Zabbixは使ってますでしょうか??
AWSならCloudWatchを利用していたり、SaaS製品ならDatadogなどを監視ツールとして利用することが多いと思いますが、Zabbixもかなり昔からあり有名だと思います。
特に私はサーバーにインストールしやすいこともあり結構好きです。
そこで今回はZabbixでサーバー内の特定ディレクトリの存在有無を監視するアラームを作成してみましたので備忘録として残しておきます。
※Zabbix-ServerとZabbix-Agentの構築は省略しています
▼環境
Zabbix-Server(AlmaLinux8) x1
Zabbix-Agent(AlmaLinux8) x1
存在確認したいディレクトリ:/mnt/external
▼手順流れ
- zabbix_agentd.conf に UserParameter の作成
- Zabbix Agent の再起動
- アイテム作成
- トリガー作成
- 動作確認
▼手順
1. zabbix_agentd.conf に UserParameter の作成
※Zabbix-agent上で作業を実施
下記内容を末尾に追記し、保存する
vi /etc/zabbix/zabbix_agentd.conf
### ディレクトリ存在チェック用 ###
UserParameter=custom.vfs.dir.exists[*],if [ -d "$1" ]; then echo 1; else echo 0; fi
2. Zabbix Agent の再起動
systemctl restart zabbix-agent
systemctl status zabbix-agent
3. アイテム作成
※Zabbixコンソール上で作業を実施
下記個所を設定し、保存する
Name:Check mount_directory_access
Key:custom.vfs.dir.exists[/mnt/external]
Host interface:zabbix-agentのホスト名
→/mnt/external は監視対象ディレクトリのパスへ変更する

4. トリガー作成
下記を設定し、保存する
Name:/mnt/external doesn’t exist
Severity:任意のもの
Expression:
{zabbixclient:custom.vfs.dir.exists[/mnt/external].last()}=0
→/mnt/external は監視対象ディレクトリのパスへ変更する

5. 動作確認
Latest Data から値が 1 になっていることを確認する
→監視対象ディレクトリをリネームし、Latest Data の値が 0 になることを確認する
▼まとめ
いかがでしたでしょうか?
今回はサーバー内のディレクトリを監視しましたが、おそらくAWSのEFSが正常にマウントされているかどうかを検知するときに利用できるかもしれないので、時間があれば試してみようかなと思います