玄箱にサーバの状態監視システムを入れてみました。
使用したツールは,エージェントとしてNET-SNMP,マネージャとして
MRTGです。参考にしたサイトは,
http://www.itmedia.co.jp/help/howto/linux/0007master/06/
http://fedorasrv.com/mrtg.shtml
です。どうもありがとうございました。
まずはエージェントのNET-SNMPから。インストールコマンドは
# yum -y install net-snmp
すると,以下のものが生成されます。
コマンド /usr/sbin/snmpd
設定ファイル /etc/snmp/snmpd.cfg
ファイル群 /usr/share/snmp/
まず,設定ファイルsnmpd.cfgを編集します。
実は変更内容の意味を十分りかいしてないので,上記URLを参考に
まねして編集します。
そして,サービスの起動をします。サーバ起動時に自動的に立ち上がるようにもします。
# seevice snmpd start
# chkconfig snmpd on
これでとりあえず,NET-SNMPのインストールは終わり。
本当はもっといっぱい設定したいことがあるんだけど,とりあえず
MRTGのほうにいきます。結果を早くグラフで見たいから。
MRTGのインストールコマンドは,
# yum -y install mrtg
すると,以下のものが生成されます。
コマンド /usr/bin/mrtg
cron実行用設定ファイル /etc/cron.d/mrtg
Web表示用confファイル /etc/httpd/conf.d/mrtg.conf
ファイル群 /var/www/mrtg/
ただし,設定ファイルは次のコマンドにより/etc/mrtg/mrtg.cfgを生成します。
これだけが他のツールとちょっとやり方が変わっています。
cfgmaker public@192.168.1.150 > /etc/mrtg/mrtg.cfg
(192.168.1.150はうちの玄箱のIPアドレス)
そして,生成されたmrtg.cfgを編集します。
編集方法は,上記URLの
こちらの方を参考にしました。
ところで,このMRTGは文字コードがEUC環境でないと動作しないため,
文字コードUTF-8のmrtg.cfgをnkfコマンドでEUCに変換してやります。
# mv mrtg.cfg mrtgUTF8.cfg
# nkf -e mrtgUTF8.cfg > mrtg.cfg
以降,この設定ファイルを変更するときは,mrtgUTF8.cfgを編集し,上記のようにEUCに変換して運用します。
さて,いよいよMRTGを動かしますが,このツールは過去2回の記録を読みにいく
仕様になっているため,最初の2回はコマンドを実行するとWarningが表示されます。
気にせず3回連続して同じコマンドを打ちます。
# env LANG=C mrtg /etc/mrtg/mrtg.cfg
# env LANG=C mrtg /etc/mrtg/mrtg.cfg
# env LANG=C mrtg /etc/mrtg/mrtg.cfg
これで,/var/www/mrtg/にeth0.html等の名前のファイルが生成されます(設定ファイルの設定によりファイル名は変わります)。
ブラウザでアクセスするとグラフ化されて表示されます。まぁ,最初はデータがないので面白くないグラフになっていますが。
ところで,上記コマンドは長ったらしいのとmrtg.cfgを編集するたびに文字コードを変換しなければならなくうっとおしいので,スクリプトをかいてしまいます。
[mrtg.shスクリプトの内容]
#!/bin/bash
LOCK=/var/lock/mrtg/mrtg_l
CONFCACHE=/etc/mrtg/mrtg.ok
nkf -e /etc/mrtg/mrtg.cfg.UTF8 > /etc/mrtg/mrtg.cfg
export LANG=ja_JP.eucJP
/usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file $LOCK --confcache-file $CONFCACHE
私は上記のようなスクリプトを作成しました。
そして,
# chmod 755 /etc/mrtg/mrtg.sh
として実行可能なファイルにします。
そして,このスクリプトを5分後とに自動で実行するように,cronコマンドに
登録します。/etc/cron.d/mrtg を以下のように編集します。
*/5 * * * * root /etc/mrtg/mrtg.sh
最後に,通信トラフィック,CPU,メモリ使用量,ディスク使用量が一覧できる
ページを生成してくれる/usr/bin/indexmaker を使ってインデックスページを
作成します。
# /usr/bin/indexmaker --columns=1 /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html
実行すると/var/www/mrtg/にindex.htmlが生成されるので,ブラウザでアクセスすると
上記の一覧グラフができています。これは便利ですね。
これで,玄箱の状態監視の設定は一段落です。
あとは,異常が生じたときにメールで通報してくれる設定とかがSNMPで
できるようですけど,それにはメールサーバを設定しとかないといけないのかな。