debian squeezeにMRTGを導入する。

※実際には7/17のネタです。

■apache2の導入。

$ sudo apt-get install apache2

 ※デフォルトでは、「/var/www」がドキュメントルート。
  初期ページが見れるか確認。

$ w3m http://localhost

■MRTGをインストール。

$ sudo apt-get install mrtg
$ whereis mrtg
mrtg: /usr/bin/mrtg /etc/mrtg.cfg /usr/share/mrtg /usr/share/man/man1/mrtg.1.gz

■設定ファイルを確認し、作業ディレクトリを作成。

$ sudo grep -v "^\#\|^\$" /etc/mrtg.cfg
WorkDir: /var/www/mrtg
WriteExpires: Yes
Title[^]: Traffic Analysis for

■cronの設定を確認する。
 5分間隔で情報を取得します。

$ sudo mkdir /var/www/mrtg
$ cat /etc/cron.d/mrtg
PATH=/usr/bin
*/5 * * * * root if [ -r /etc/mrtg.cfg ]; then env LANG=C mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi


■空の設定ファイルで取得し始めると、以下のような画像を置きはじめる。
 問題がある場合はログを確認します。

$ ls /var/www/mrtg/
mrtg-l.png mrtg-m.png mrtg-r.png
$ less /var/log/mrtg/mrtg.log

■HTML出力部分の設定を作成(標準では各NICのネットワークトラフィック)

$ sudo cfgmaker --global 'WorkDir: /var/www/mrtg' --output /etc/mrtg.cfg public@localhost
$ sudo grep -v "^\$\|^\#" /etc/mrtg.cfg | grep "^Target"
Target[localhost_2]: 2:public@localhost:
Target[localhost_3]: 3:public@localhost:
Target[localhost_4]: 4:public@localhost:

□2012/01/15追記
 ※クリーンインストールでは、上記がNGだったので、追加。

 参考:Debian squeeze の snmpd
 http://blog.100acre.jp/2011/06/debian-squeeze-snmpd.html

 参考:SNMPの設定
 http://www.infra.jp/squeeze/snmp.html

□リッスンポート

$ netstat -an | grep 161
udp        0      0 127.0.0.1:161             0.0.0.0:*
$ sudo grep ^#agent /etc/snmp/snmpd.conf
#agentAddress  udp:127.0.0.1:161
#agentAddress udp:161,udp6:[::1]:161readonly のコミュニティ

$ sudo vim /etc/snmp/snmpd.conf
$ sudo grep ^rocommunity /etc/snmp/snmpd.conf
rocommunity public  localhost
$ sudo /etc/init.d/snmpd restart

$ snmpwalk -v 1 -c public localhost | wc -l
41
$ snmpwalk -v 1 -c public localhost system | wc -l
system: Unknown Object Identifier (Sub-id not found: (top) -> system)
0

□snmptrapdの起動確認

$ sudo /etc/init.d/snmpd status
snmpd is running.
snmptrapd is not running ... failed!

□ログの確認方法

$ sudo tail -5 /var/log/syslog | grep snmpd | cut -c 28-
snmpd[5742]: Connection from UDP: [127.0.0.1]:42378->[127.0.0.1]
snmpd[5742]: Connection from UDP: [127.0.0.1]:42378->[127.0.0.1]
snmpd[5742]: Connection from UDP: [127.0.0.1]:54373->[127.0.0.1]

□「cfgmaker」で実NICの情報取得

$ sudo cfgmaker --global 'WorkDir: /var/www/mrtg' --output /etc/mrtg.cfg public@localhost
$ sudo grep -v "^\$\|^\#" /etc/mrtg.cfg | grep "^Target"
Target[localhost_2]: 2:public@localhost:

□コメントアウトされている「lo」「vmnet1」「vmnet8」はお好みで。

$ sudo grep Target /etc/mrtg.cfg
# Target[localhost_1]: 1:public@localhost:
Target[localhost_2]: 2:public@localhost:
# Target[localhost_3]: 3:public@localhost:
# Target[localhost_4]: 4:public@localhost:

-----

■MRTGのトップページを作成する。

$ sudo indexmaker /etc/mrtg.cfg --column=1 --output=/var/www/mrtg/index.html

■グラフのX軸の向きを逆にする。

$ sudo grep right /etc/mrtg.cfg
# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits

■変更した設定を反映する。

$ sudo sh -c 'env LANG=C /usr/bin/mrtg /etc/mrtg.cfg'

SNMPを使った情報取得の際にディスク、CPU、メモリの情報取得の設定も追加予定です。