概要
zabbixでプロセスの数を監視しようとした時に、
proc.numの最初の引数に渡すものと、第4引数に渡すものとの違いがあるようなので、
どのように調べているのかを調べた。
結論
zabbix 2.2.12 のlinuxでは、
/proc
以下のすべてのプロセスをループでチェックしている。
linuxのプロセスを調べているのは以下のソースコードのようである。
src/libs/zbxsysinfo/linux/proc.c
経緯
zabbixで特定のプロセスの数を調べたかったので、まずは以下を参考にしてみた。
引数を1つだけにして、ps aux ででてきた値をそのままいれてみたが、うまく取得できなかった。
更に調べて
ここをみて、特定のプロセス数を監視できるようになった。
詳しくは、上のページをみてもらったほうが良いが、
ざっくりまとめると、以下のようになるかなと思う。
- 第1引数に渡すのは、 ps -e の出力
- 第4引数に渡すのは、 ps -ef の出力
zabbixでは、実際どうやって調べているのか気になったので、調べてみた
最初、src/zabbix_agent 以下だけをしらべてみたが、みつからなかったので、
src において
grep -r "proc.num"
などとして、探していき
最終的に以下のファイルにたどりついた
src/libs/zbxsysinfo/linux/proc.c
やっていることは、
/proc
以下をすべて調べているようである。
どのように調べているかはソースを見てもらった方がよい。
参考
proc.num[nginx]