ログ日記

作業ログと日記とメモ

Debian Buster に Cacti をインストールする

ログをElasticSearch+Kibanaに集約したり、Prometheus を使ってみたりしたけれども、普通にサーバーのログファイル+Cactiに戻ってきた。

最近の流行は大量のサーバーとか大量のコンテナとかがメインターゲットなんだね。
普通に数台〜十数台のコンテナではないサーバーなら、ログファイルとCactiが一番使いやすそうということになった。

実際に長期間KibanaとPrometheusを試したわけではないから分からないけれども。

そういうわけでDebian BusterにCactiをインストールしたログ。

apt install cacti cacti-spine
chown www-data:www-data /var/log/cacti/*

インストール時にログの所有者がwww-dataになっていないので手動変更する。
自動でapache2とmod-phpがインストールされる。
普段はnginxとphp-fpmを使っているけれど、自動インストールに任せたかったのでapacheのままにした。

/etc/apache2/conf-available/cacti.conf に設定があり、これだけで /cacti で既に利用できるようになっているけれども、sslとか独自サブドメインとかの設定をするなら普通にsites-availableを自分で用意する。


それから、SNMPは使わないので
Installing Percona Monitoring Plugins for Cacti
PerconaのCactiプラグインを入れる。このテンプレートで、SNMPの代わりにSSHで繋げる。
(NginxでもSSHしてからwgetするので、直接繋ぎたい場合は後でコマンドに --use-ssh 0 を付ける)

busterが無くstretchしか無いけれども、特に依存があるわけでもないのでstretch用パッケージで問題ない。

PostgreSQL
PostgreSQL Host Template - Cacti

PHP-FPM
GitHub - glensc/cacti-template-php-fpm: Cacti PHP-FPM template


どれもあまりメンテされてなさそうだけれども、使える。
cactiの過去グラフが平均化されないようにする方法 - Qiita
この辺も設定する。


tholdプラグインは、gitで取ってきて 2ea956d6 をインストール。
バージョンが合わない問題、バージョンタグが細かく打たれていない問題があるので、互換性がある最新のハッシュを探す必要があった。
v1.2のようにタグを決め打ちで取得すると、バグがかなりある。
2ea956d6 でも若干怪しい部分があるが、これ以上新しくすると互換性がなくなる。


それから
MAILER WARNING: Mail failed from... - Cacti
このようなエラーに対応する。

Debian公式パッケージになっているのに、バグがあるとはね…。
人気の無いパッケージのつらさよ。


まあでも一度動き始めれば使い続けられるという安心感があるし、PHPerなので多少のバグは自分で直せる。
色々試して、RRDTool だとディスク容量が増えない安心感があるということも実感した。
ログを3年保存とかにしても、設定直後にディスクが確保されるから、その時点で足りていれば大丈夫。
サーバー数が倍になる予定なら、あとから2倍の容量になるだろうという予測も簡単。


実際の設定反映はAnsibleにしている。
各ノードにはsshのログが大量に出るので、/etc/rsyslog.d/cacti.conf に

if \
  ($msg contains 'Received disconnect from 192.168.0.10') or \
  ($msg contains 'Disconnected from user cacti 192.168.0.10') or \
  ($msg contains 'Accepted publickey for cacti from 192.168.0.10' ) then \
  /var/log/cacti.log
& ~

を追加して、/etc/logrotate.d/rsyslog に /var/log/cacti.log を追加したりといったことも自動化した。