バージョンは4系
今回のポイント
対象環境のEC2インスタンスについて、特定プロセス監視の追加。
例えばこんな感じ
inotifywait -e CLOSE_WRITE,DELETE -mrq /var/www/html/hoge/huga
inotifywaitでディレクトリの変更を監視しつつそれをzabbixに飛ばしてそこからslack通知なりなんなり便利に使ってみましょうという流れ。
今回困ったこと
- プロセスの引数がいっぱいあってどうやって指定するのかわからん
- プロセスの引数にオプション指定ある
- プロセスの引数の中にカンマがある
ここに書いてあるように
proc.num[]
[]の中は引数が四つある
第一引数 [name]
プロセス名(ps -e の出力結果)
第二引数[user]
プロセスの実行ユーザ名
第三引数[state]
監視するプロセスの状態を指定
第四引数[cmdline]
フィルタする文字列(ps -ef の出力結果から文字を選べる)
今回書いたのは一と四
name
$ ps -e | grep inotifywait
22375 ? 00:00:00 inotifywait
cmdline
$ ps -ef | grep inotifywait
ec2-user 822 725 0 16:03 pts/4 00:00:00 grep --color=auto inotifywait
root 22375 22374 0 13:21 ? 00:00:00 inotifywait -e CLOSE_WRITE,DELETE -mrq /var/www/html/hoge/huga
正解
proc.num[inotifywait,,,“-e CLOSE_WRITE.DELETE -mrq /var/www/html/hoge/huga”]
コマンドの引数は第四引数の位置に書いてあげる
カッコ[]内のカンマ“,”はドット“.”で代用できる
検索文字列内の ハイフン“-” を文字列として認識させたい時は ダブルクォーテーションで括る “”
この形が作れたらproxyでzabbix_getを投げて値が返ってくるかどうか確認
OKだったらitemとtrigger作ってseverityをinfoで確認
OKだったら第四引数の文字列を適当に変えてinfoが発砲するか確認
今回のzabbix_getはこれ
$ zabbix_get -s <ip address> -k proc.num[inotifywait,,,“-e CLOSE_WRITE.DELETE -mrq /var/www/html/hoge/huga”]
1
1が返ってくる事を正常と判断して設定
以下備忘
-s
監視対象のIP
対象自体にzabbix_getが入ってたら127.0.0.1でおk
-k
key 監視したい項目を入れる