SNMP+MRTGでシステム監視

別機関からなのですが、ネットワークが遅いという報告があったものの、ネットワーク監視の製品を購入する予算もないしフリーでないかなぁと探したところ、MRTGという監視ソフトが見つかりました。

実際に監視するのはSNMPというサービスであって、グラフ化してくれるのがMRTGだそうです。

用途としては、「その日のどの時間帯にトラフィックが激しいか」ということがわかればまずOKなので、モノとしてはこれでよさそうです。

とはいっても、インストールして動かなかったり他のを巻き添えにされても困るので、とりあえずテストサーバで実験します。

参考にしたサイトはこちら。

まずはsnmpのインストール。Vine3.2ではaptで拾えます。

# apt-get update
# apt-get install net-snmp

次にsnmp.confの設定。細かい情報は参考サイト1番目にあります。

【41行目あたり】セキュリティ名の定義
#com2sec notConfigUser default public ※コメントアウト
com2sec local localhost private ※追加
com2sec mynetwork 192.168.100.0/24 public ※追加
【49行目あたり】セキュリティモデル・グループの定義
#group notConfigGroup v1 notConfigUser ※コメントアウト
#group notConfigGroup v2c notConfigUser ※コメントアウト
group MyROGroup v1 mynetwork ※追加
group MyROGroup v2c mynetwork ※追加
group MyROGroup usm mynetwork ※追加
【60行目あたり】取得を許可する情報の範囲
#view systemview included .1.3.6.1.2.1.1 ※コメントアウト
#view systemview included .1.3.6.1.2.1.25.1.1 ※コメントアウト
view all included .1 80 ※追加
【68行目あたり】グループに対するアクセス権限
#access notConfigGroup "" any noauth exact systemview none none ※コメントアウト
access MyROGroup "" any noauth exact all none none ※追加
access MyRWGroup "" any noauth exact all all none ※追加
【321行目あたり】提供するディスク情報
disk / 10000 ※コメントをはずす

次に、snmpサービスの自動起動設定をします。

# service snmpd start
# chkconfig snmpd on ※別にntsysvで設定してもよい。
# chkconfig –list snmpd ※ランレベル345がonになっていればよい。
snmpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

セキュリティ名やグループ名はLinuxにログインするユーザ名等とは違うようです。

次に、MRTGのインストールをします。
MRTGを使用するには、perl、zlib、libpng、gd、zlib-devel、libpng-devel、gd-develが必要です。
インストールされているかどうか確認するためには以下のコマンドを使用します。

# rpm -aq | grep ソフト名

次に、MRTGのインストールを行いますが、VineのaptではMRTGは置いていません(Plusとかは知らない)。
なので、ソースをMRTG公式からダウンロードして使用します。ここではmrtg-2.12.2を使用しました。

# cd /usr/src/vine/SOURCE/ ※ソース関連をまとめてあるディレクトリに移動
# mkdir mrtg ※mrtg用をディレクトリの作成
# cd mrtg ※mrtgに移動
# wget http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/mrtg-2.12.2.tar.gz ※ソースファイルのダウンロード
# tar -xzvf mrtg-2.12.2.tar.gz ※解凍
# cd mrtg-2.12.2 ※できたディレクトリに移動
# ./configure ※コンフィグの確認。以下のメッセージが出れば成功。
—————————————————————-
Config is DONE!
Type ‘make’ to compile the software
… that wishlist mentioned above does really exist. So if
you feel like showing your appreciation for MRTG, this is the
place to go. I just love CDs and DVDs
— Tobi Oetiker
—————————————————————-
# make ※コンパイル
# make install ※インストール</OETIKER@EE.ETHZ.CH>

これでMRTGのインストールは完了です。

続けて、MRTGの設定を行います。
WWW経由で見るようにする場合、Apacheで設定したパスを確認してください。
私の環境の場合、MRTG関連ファイルは/home/www/public_htmlにおいています。
まずは、MRTG用ディレクトリの作成と、MRTGで使用している画像のコピーを行います。別に必須ではないのですが、要は見栄えの問題です。

# mkdir /home/www/public_html/mrtg ※mrtgディレクトリの作成
# mkdir /home/www/public_html/mrtg/icons ※画像ディレクトリの作成
# cp /usr/local/mrtg-2/share/mrtg2/icons/*.png /home/www/public_html/mrtg/icons/ ※画像のコピー

メモリの監視も行うので、必要な情報を確認しておきます。

# free
合計 使用済 空き領域 共有領域 バッファ キャッシュ
Mem: 239560 225580 13980 0 38828 36648
-/+ バッファ: 150104 89456
Swap: 489972 0 489972

青い部分が必要となる情報です。

次に、MRTGの設定ファイルを作成します。最初手打ちで行っていたのですが、MRTGの実行時にエラーが出たため、cfgファイル生成ソフトを使用します。

# mkdir /etc/mrtg ※cfgディレクトリの作成
# /usr/local/mrtg-2/bin/cfgmaker –ifref=descr –ifdesc=descr public@192.168.100.202 > /etc/mrtg/mrtg.cfg ※cfgファイルの生成

青字の部分は自分のサーバアドレスを入力してください。
mrtg.cfgファイルが生成されましたが、このままでは不完全ですので直接編集をします。

vi /etc/mrtg/mrtg.cfg
【9行目あたり】作業用ファイルを置く場所
WorkDir: /home/www/public_html/mrtg
【10行目あたり】作成されるファイルを置く場所
HtmlDir: /home/www/public_html/mrtg
【19行目あたり】グラフの作成方向を左→右とする
Options[_]: growright, noinfo
【23行目あたり】日本語化
Language: eucjp
【80行目あたり】eth0.htmlとして生成されるよう変更
Target[eth0]: \eth0:public@192.168.100.202
【81行目あたり】環境変数?
SetEnv[eth0]: MRTG_INT_IP="192.168.100.202" MRTG_INT_DESCR="eth0"
【82行目あたり】グラフの条件?本来は「上り速度bps÷8」で割り出したほうがよい
MaxBytes[eth0]: 1250000
【83行目あたり】生成されるHTMLのタイトル。なんでもよい
Title[eth0]: Traffic Analysis NET-SNMP + MRTG
【84行目あたり】HTMLページの表題?なんでもよい
PageTop[eth0]: <H3>Traffic Analysis NET-SNMP + MRTG</H3>
【85~118行目あたり】必要ないので削除あるいはコメントアウト。
【118行目あたり追加】CPUモニタの設定
# CPU Load Average #Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:public@192.168.100.202
MaxBytes[cpu]: 100
Unscaled[cpu]: dwmy
Options[cpu]: gauge, absolute, growright, noinfo, nopercent
YLegend[cpu]: CPU Load(%)
ShortLegend[cpu]: (%)
LegendI[cpu]: 1分間平均
LegendO[cpu]: 5分間平均
Legend1[cpu]: 1分間平均(%)
Legend2[cpu]: 5分間平均(%)
Title[cpu]: CPU使用率 NET-SNMP + MRTG
PageTop[cpu]: <H1>CPU使用率 NET-SNMP + MRTG</H1>
【132行目あたり】メモリモニタの設定
# MEMORY Load Average #Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:public@192.168.100.202
MaxBytes1[mem]: 239560 ※freeで調べたMemの値を入れる
MaxBytes2[mem]: 489972 ※freeで調べたSWAPの値を入れる
Unscaled[mem]: dwmy
Options[mem]: gauge, absolute, growright, noinfo
YLegend[mem]: Mem Free(Bytes)
ShortLegend[mem]: Bytes
kilo[mem]: 1024
kMG[mem]: k,M,G,T,P
LegendI[mem]: Real
LegendO[mem]: Swap
Legend1[mem]: 空き物理メモリ[MBytes]
Legend2[mem]: 空きスワップメモリ[MBytes]
Title[mem]: 空きメモリ量 NET-SNMP + MRTG
PageTop[mem]: <H1>空きメモリ量 NET-SNMP + MRTG</H1>
【149行目あたり】Diskモニタの設定
# DISK Load Avarage #
Target[disk]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.1:
public@192.168.100.202MaxBytes[disk]: 100
Unscaled[disk]: dwmy
Options[disk]: gauge, absolute, growright, nopercent, noinfo
YLegend[disk]: Disk Used(%)ShortLegend[disk]: (%)
LegendI[disk]: / Disk used
LegendO[disk]: / Disk UsedLegend1[disk]: / Disk used
Legend2[disk]: / Disk used
Title[disk]: ディスク使用率 NET-SNMP
PageTop[disk]: <H1>ディスク使用率 NET-SNMP</H1>

これで準備は完了です。

次に実行するのですが、エラーが何度か出ます。少し時間を置きながらエラーが出なくなるまで繰り返します。3回繰り返せばよいようです。

# /usr/local/mrtg-2/bin/mrtg /etc/mrtg/mrtg.cfg
※「Rateup WARNING」関連のエラーがなくなるまで繰り返す

生成されたファイルは以下のようになります。

ネットワーク http://サーバアドレス/mrtg/network.html
CPU http://サーバアドレス/mrtg/cpu.html
メモリ http://サーバアドレス/mrtg/mem.html
DISK http://サーバアドレス/mrtg/disk.html

まだあります。

全てを1画面で対応できるよう、インデックスページを作成します。

# /usr/local/mrtg-2/bin/indexmaker –columns=1 –addhead="<meta http-equiv=\"Content-Type\" Content=\"text/ht
ml; charset=euc-jp\">" /etc/mrtg/mrtg.cfg > /home/www/public_html/mrtg/index.html

最後に、定期的に実行されるようcronに登録し、サービスを再起動します。

vi /etc/crontab
【任意の場所に追加】5分毎に実行する
0-59/5 * * * * root /usr/local/mrtg-2/bin/mrtg /etc/mrtg/mrtg.cfg
# service crond restart ※crondの再起動

数時間放置して、エラーなく動作していれば成功です。

やたら長いってば・・・

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中