Cacti の poller を PHP スクリプトからバイナリにしてみた。
$ cd /usr/local/src
$ wget http://www.cacti.net/downloads/cactid/cacti-cactid-0.8.6i.tar.gz
$ tar xzf cacti-cactid-0.8.6i.tar.gz
$ cd cacti-cactid-0.8.6i
$ ./configure
$ make
$ make install
$ cd /usr/local/cacti/bin/
$ cp /usr/local/src/cacti-cactid-0.8.6i/cactid.conf ./
cactid.conf を編集
$ vi ./cactid.conf
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass _cactiuser_
DB_Port 3306
あとは、cactiの設定画面で paths にある「cactid Poller File Path」に cactid までのパスを指定。
Data Input Method の perl パスを絶対パスに変更して設定完了。
Pollerのデータキャッシュをクリアする必要もあるらしい。
結局、 cactid は動いてなかった。
$ ldd cactid
libnetsnmp.so.15 => not found
(..snip..)
libnetsnmp.so.15 が見つからないらしく、
POLLER: Poller[0] Maximum runtime of 292 seconds exceeded. Exiting.
と、なって動いていなかった。
問題の libnetsnmp.so.15 は /usr/lib ではなく /usr/local/lib 側にあったので、 /etc/ld.so.conf に /usr/local/lib を追記して回避。
参考: http://pen-test.jpn.org/manage:cacti:install_linux#cactid_yinsuto%E3%83%BCru