インストールまでは上手くいったけど設定に嵌って酷い目にあった。
以下のものが必要。
さくっとemergeするわけだが、USEフラグに注意。cactiにはapache2/snmp、phpにはapache2/snmp/sockets/mysqlあたりが必要(gdとかxmlも必須なのか?よくわらかんがこの辺は/etc/make.confでデフォルトで付けている)。
cacti用のデータベースとユーザを作成し、付属のスクリプトでテーブルを作成する。
mysqladmin -u root create cacti -p
mysql cacti -u root -p > /var/www/localhost/htdocs/cacti/cacti.sql
mysql -u root mysql -p -e"GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'p4ssw0rd'"
mysql -u root mysql -p -e"flush privileges"
次にphpのconfigファイルを、今設定したものに合わせて書き換える。
vi /var/www/localhost/htdocs/cacti/include/config.php
$database_username = "cactiuser";
$database_password = "p4ssw0rd";
useradd -g apache -d /dev/null -s /bin/false -c cacti cacti
ホームディレクトリを/dev/null、ログインシェルを/bin/falseにすることで、cactiというユーザでログインできないようにする。この辺は適当に手を抜いてrootでやったりすると怖いので忘れずに。次にcactiユーザでデータの読み書きするためにパーミションを変える。
chown -R cacti:apache /var/www/localhost/htdocs/cacti
全部変えちゃったけどrraとlogディレクトリだけでいいかも。未検証。
適当なタイミングでスクリプトをブン回す。とりあえず5分間隔に設定。
vi /etc/crontab
*/5 * * * * cacti /usr/bin/php /var/www/localhost/htdocs/cacti/cmd.php > /dev/null 2>&1
ブラウザから http://hostname/cacti/ にアクセス。デフォルトのユーザとパスワードはadmin/admin。ウィザードが始まるがNext押していけばいい。adminのパスワードは適当なものに変更する。
色々設定するところがあるが、一番下にある参考URLらへんを参照。
ここでrrdtoolからACCESS DENIEDと言われてグラフが上手く表示されなかった。よくわからんがcactiでadminじゃなくてcactiというユーザを作り、User Management→cacti→Graph PermissionsでDenyをAllowにお変更してSave。Graph Managementからなんかグラフを選んで、右上の*Turn On Graph Debug Mode.をクリックするとログが見えるようになるので押してみる。今度は’rra/localhost_load_1min_5.rrd’: No such file or directoryとか怒られる。
見てみると確かにrraの下が空っぽなのでダメらしい。/var/www/localhost/htdocs/cacti/cmd.phpを実行してもエラーらしきものは出ておらず。しばらくココで嵌ったが、/var/www/localhost/htdocs/cacti/poller.phpを実行すればOKだった。1回目は前のデータがないので怒られるが、もう1度やると問題なく実行された。そのあとcactiからはちゃんと見えるようになった。