cactiとは、主にはネットワーク機器のトラヒック統計ツールなんですが、これをちょっと真面目に設定してみた話。
我が家のNWは、ETG2-SHV16NというIODATAのVLAN/SNMP対応スイッチをコアに据え、複数のセグメントでトラヒック分離を行う構成になっています。まぁ趣味ですので。
そんなわけで、SNMP対応スイッチがあれば、トラヒックを取りたくなるわけで、cactiを使って統計を取っています。ただ、cactiって普通に入れても使えるんですが、そのままにしておくと若干勿体無い状況になるため、tips的な「普通の」設定をしてみました。
その1。pollerのログがローテーションされない。
cactiのpollerのログは/var/www/localhost/html/cacti/log以下とか、要するにcactiのインストールディレクトリ配下に延々と履き続けられます。気が付くと膨大な容量になっていることもあり、手で消したりローテーションしたりしていたんですが、普通に考えてlogrotateしてあげれば良い、と。
というわけで、/etc/logrotate.d/cactiに以下のようなファイルを作ってあげます。logrotateはデフォルトでインストールされていると思いますが、入ってない場合は追加しましょう。
/var/www/localhost/html/cacti/log/cacti.log { missingok monthly notifempty compress create 0644 apache apache }
これで自動的にローテーション、世代管理されるようになります。意外にこの辺のツール、ログは吐きっぱなしというケースがありますので、気がついたときにlogrotateしておくとシアワセになれますね。
その2。cactid/spine。
cactiのデータ収集はpollerというcronから定期起動されるプログラムで実行されるのですが、標準のpollerはあまり性能がよろしくないため、cactid/spineという高速版pollerが提供されています。入れない手は無いです。入れましょう。
Cacti® – The Complete RRDTool-based Graphing Solution
意外に盲点というかハマるのが(僕がハマっただけです)、旧来、cactidと呼ばれていたプログラムが、今は正式にspineになっているというところ。実はcactidのダウンロードURLにも辿りつけてしまうため、そちらを入れてしまったりしそうになりますが、中身を見ると結構古いことが分かります。ちゃんとcactiのページから、最新のspineを入れましょう。
ダウンロードして、コンパイルして、インストールします。メジャーなディストリビューションはパッケージもあるようですが、あまり環境汚染も厳しくなさそうなので、ソースから入れてしまうのをオススメします。
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8c.tar.gz tar zxvf cacti-spine-0.8.8c.tar.gz cd cacti-spine-0.8.8c ./configure make sudo make install
ソースのバージョンはなるべく最新を使いましょう。configureが通らない場合は、泣かないで依存するライブラリ(develパッケージ)を入れて、頑張ってコンパイルします。特にオプション等指定せずに標準インストールすると、実行体が/usr/local/spine/bin/spineに、設定ファイルのサンプルが、/usr/local/spine/etc/spine.conf.distにインストールされます。
設定すべきは、confファイル。DB設定のみです。
cd /usr/local/spine/etc sudo cp spine.conf.dist spine.conf sudo vi spine.conf ... DB_Host localhost ★ DB_Database cacti ★ DB_User cactiuser ★ DB_Pass cactiuser ★ DB_Port 3306 DB_PreG 0 ...
この辺のDB設定を変更するだけです。動作確認をしようと手で実行すると、poller動作をしてしまい、あとでエラーが出ますので気をつけましょう(でもデータが壊れるわけではなく、警告が1回出て、その後2回目のpollingからは正常動作します)。
あとは公式ドキュメントの通り、Pathsの設定、pollerの設定をcactiの設定画面から実施すれば、spineによる高速pollingが開始されます。
『入れない手は無い』と言い切った理由ですが、我が家ではサーバー+スイッチで高々「DataSources:37 RRDsProcessed:21」程度のpoller負荷なのですが、それでもかなり効果が認められたためです。
適応前がこれくらいです。
SYSTEM STATS: Time:2.9348 Method:cmd.php Processes:1 Threads:N/A Hosts:3 HostsPerProcess:3 DataSources:38 RRDsProcessed:21
spineにするとこんな感じ。
SYSTEM STATS: Time:0.4516 Method:spine Processes:1 Threads:1 Hosts:3 HostsPerProcess:3 DataSources:37 RRDsProcessed:21
この程度の統計ポイントでも、1/6に高速化されていますので、大規模な統計を行っているところではその効果は絶大だと思います。入れない手は無いです。なぜこれが標準じゃないのか、謎です。
以上、cactiを「普通に」設定してみた話。やっぱり統計は楽しいです。
コメント