SNMPエージェントを設定したら
こんどは取得した情報を表示できる、SNMPマネージャが必要です。フリーのSNMPマネージャとしては、MRTGが有名ですが、CACTIというツールも結構名前が出てきます。グラフフォーマットが綺麗、MRTGよりも柔軟など、良い評価が聞けるので、こちらをインストールしてみます。
インストール
CACTIには、Webインタフェースであるcactiパッケージと、周期的にデータを収集してくれるデーモンであるcacti-spineというパッケージがあります。
cactiだけでも特に問題はないのですが、cactiそのものよりも軽いため、多数のSNMPマネージャから情報を収集するにはcacti-spineを使用したほうがよいと言う事で、双方インストールしてみます。
# emerge cacti cacti-spine
mysql
CACTIは、収集した情報をSQLデータベースに収集します。このために、mysqlを使用しましょう。うちでは、mysqlベースで、すべてが構築されてますのでね…
ちなみに、CACTIのデフォルトベースで設定するとこんな感じ
データベースをまず作成する。 # mysqladmin -u root -p create cacti 作成したデータベースにユーザ権限を設定する # mysql -u root -p Enter password: rootパスワード[Enter] mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser用パスワード'; mysql> flush privileges; mysql> q テーブルを設定する # mysql -p cacti < <cactiをインストールしたディレクトリ>/cacti.sql Enter password: rootパスワード[Enter]
ここまでで、データベース/データテーブルが作成されます。ちなみに、私はphpmyadminとかを使ってるので、その場合はもちっと別になりますよぅ。データベースに接続するユーザ/パスワードを変えたい場合は、ここで一細工入りますから気をつけてくださいねー
cacti
<cactiのインストールディレクトリ>/include/config.phpを以下のように編集してみます。先程のMySQLの設定と合わせておくんですね。
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "設定したパスワード"; $database_port = "3306";
さらに、周期的にデータを収集するために、crontabに以下を設定しておきます。
*/5 * * * * apache /usr/bin/php <cactiのインストールディレクトリ>/poller.php
cacti-spine
/etc/spine.confを、先程のconfig.phpと同様に設定しておきます。
DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass 設定したパスワード DB_Port 3306 DB_PreG 0
アクセスしてみて、監視設定を行ってみる。
ブラウザで、http://サーバ名/<cacitのインストール先>にアクセスしてみましょう。cactiの初期設定画面が出てまいります。そこから先の設定は…例えばRRDTool+Cactiによるサーバ監視(Linux編)とか見ると、グラフィカルで分かりやすいですね。参照して設定してみてください。
poller(周期監視処理)を設定する
せっかくspine設定したから、それ使用したいですよね。こんな感じ。 Console→Settings→Pollerタブ→
- enable
- ON
- Poller Type
- spine 以上です。
CPU温度とHDD温度のグラフつくってみる。
さっきの、RRDTool+Cactiによるサーバ監視(Linux編)に分かりやすく書いてありますね。やってみてやってください。ただし私は、SNMP経由で取得としてます。ヒントは、先ほど設定したextTableのMIBオブジェクトは、.1.3.6.1.4.1.2021.8.1、出力を取得できるextResultオブジェクトは、.1.3.6.1.4.1.2021.8.1.100あたりから取得できるっすよー。
できたグラフを、HTMLページにExportしてみる
なんかね…CACTIのページを、直接リモートで表示させてみると、たまにグラフが表示されず、さらにapacheの負荷がズドンと跳ね上がることがあります。こりゃーいかん、ということで、外部参照する為用に、作成したグラフ画面をExportして参照だけできるようにしておきます。 Console→Setting→Graph Exportタブ→
- Export Method
- Classic
- Export Directory
- httpのページを出力したいパスを設定します。
後はお好きなようにカスタマイズしてね。私は、1時間毎にグラフを更新して出力するセッティングにしてます。
追記:10Gbyte超えメモリだと、グラフ化されない件
Cactiで、デフォルトでData Templates→ucd/net - Memory - Buffersやucd/net - Memory - Cache、ucd/net - Memory - Freeを使用してメモリ使用率を取得すると、10Gbyteを超えるメモリの使用率がグラフ化されません。
それでもダメな場合
rrdtoolで取得されているデータベース側の属性を変えてやります。rrdtoolで収集されたデータベースは、<cactiのWebソースがあるディレクトリ>/rra配下にあります。この下にある、メモリ使用率を収集しているファイルの属性を変えてやります。メモリ使用率を収集しているファイルは、CactiメニューのData Sources→メモリ収集しているデータ・ソースのData Source Path項目に記述されております。で、このファイル名が仮にhost_mem_buffers_28.rrd,host_mem_free_29.rrd,host_mem_cache_30.rrdとします。こいつらの属性をコマンドラインで変更してやります。
# sudo rrdtool tune host_mem_buffers_28.rrd -a mem_buffers:U # sudo rrdtool tune host_mem_cache_30.rrd -a mem_cache:U # sudo rrdtool tune host_mem_free_29.rrd -a mem_free:U
これできちんととられるようになりました。ホッ
Page Info | |
---|---|
Page Name : | Gentoo Linuxな生活/CACTIで悩む |
Page aliases : | None |
Page owner : | maruo |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | No one |