proc.numキー使用でのプロセス監視不能について
いつもお世話になっております。
proc.numキーを使用して監視対象サーバから値を取得し、LAST値を使ってトリガー判定しています。
nfsのrpciodだけプロセスが起動しているにもかかわらず取得値(0)が返ってきてしまうことに悩まされています。
同様に設定してあるアイテム設定では正常に値が取れており、proc.numの第4引数(cmdline)の文字列を変更すると更に取得値が代わり内部的にどのように動作しているのか理解できず困っています。
環境詳細
監視サーバ
zabbix1.8 centOS6.1
アイテム proc.num[,"root","all","rpciod"]
トリガー {hostname:proc.num[,"root","all","rpciod"].last(0)}<1
コマンド zabbix_get -s {hostname} -k "proc.num[,"root","all","rpciod"]"
結果 0
監視対象サーバ
zabbixagent1.8 redhat el5
同じnfsのportmapは同様の条件式で正常に取れています。
proc.numがどのように値を取得しているかご存知の方いましたらご教授いただけますでしょうか
TNK - 投稿数: 4769
ソースを確認すると、
/proc/[プロセスID]/cmdline
/proc/[プロセスID]/status
の内容を確認しているようです。
詳細は、
src/libs/zbxsysinfo/linux/proc.c
あたりをご確認ください。
ただし、rpciodはカーネルモジュールであるからか、
/proc/[プロセスID]/cmdline
は取得できないので、proc.num[]でnameを指定しないとproc.num[]
で正常な値を取得できないようです。
例えば、nameを指定して、
proc.num[rpciod/0,root,all]
というような形式であれば値は取得できると思います。
ご確認ください。
Qoo - 投稿数: 10
TNKさん
指南のとおり設定したら無事、値が取れるようになりました。
カーネルスレッドはcmdlineで取れないこともわかったので
今後の設定で生かしたいと思います。
また動作の詳細な説明までしていただき助かりました。
どうもありがとうございました。