SNMPでリソース監視 2010.03.09  
 (Since 2003.11.10)

  → 更新履歴

●今回の目的
  SNMP(Simple Network Management Protocol)を使ってマシンのリソース監視をしてみる.
マネージャ,エージェントソフトとしてucd-snmpを利用. また,マネージャマシンで取得したデータを視覚的に眺めたいので, MRTGを用いてグラフ化,htmlの自動作成を行うことにする.


●前提条件
  以下の内容を前提条件として説明する.
・エージェント,マネージャとも 192.168.0.1(255.255.255.0)
・ユーザ作業のディレクトリは ~/work/mrtg
・マネージャマシンにはApacheのインストールが完了している
・マネージャがhtmlを作成する場所は /usr/local/mrtg/data


●ucd-snmpの導入
1. ソースの準備
  下記の場所よりソースをゲットし ~/work/mrtg 配下に置く.
ソースの在り処と使用したVersion
ucd-snmp-4.2.3.tar.gz http://net-snmp.sourceforge.net/


2. インストール
  ゲットしてきたソースを解凍し,コンパイル.手順はいつもの通り!

・ucd-snmpのインストール
freebsd > cd ~/work/mrtg
freebsd > tar zxvfp ucd-snmp-4.2.3.tar.gz
freebsd > cd ucd-snmp-4.2.3
freebsd > ./configure
・・・
   以下の4つの質問を受けます.不都合が無ければデフォルトのままで…
   System Contact Information (root@prism-r.com):  ←管理者のメールアドレス
   System Location (Unknown):  ←サーバの名前?
   Location to write persistent information (/var/ucd-snmp):  ←ログの置き場所
   Location to write logfile (/var/log/snmpd.log):  ←情報ファイルの置き場所
・・・
freebsd > make
freebsd > make test
・・・・・
33:testing Proxy illegal SET handling support...ok
Summary: 33 / 33 succeeded.  ←これが出ればOK!
freebsd > su
freebsd # make install
make test にコケた場合,makeが失敗してる可能性があります.
もう一度./configureからやり直してみる価値はあるかも…


3. 設定
  まず,テンプレートを実行環境にコピーする. その後は自分の環境に合わせてカスタマイズ.
ここでは私の事例を書いてみます.詳しくはマニュアルをみてね(爆)

※前項から引き続きスーパユーザのまま(のはず)
freebsd # cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf
freebsd # chmod 600 /usr/local/share/snmp/snmpd.conf
freebsd # vi /usr/local/share/snmp/snmpd.conf
・コミュニティの設定
  SNMPにおけるネットワークの設定です.デフォルトでは…
# sec.name source community
com2sec local localhost COMMUNITY
com2sec mynetwork NETWORK/24 COMMUNITY
となってます.sourceの部分がネットワークの設定ですので, ネットワーク環境に合わせて書き換えます.
communityの部分はコミュニティ名でSNMPのパスワードに該当する設定です. 適当なコミュニティ名を付けてあげます.
# sec.name source community
com2sec local localhost PRIVATE
com2sec mynetwork 192.168.0.0/24 PUBLIC
ただし,前記の通りコミュニティ名はパスワード的に扱われるので, 上記の設定をそのまま使うのはよろしくないでしょう(笑)
・セキュリティグループの設定
  セキュリティの為,先頭3行をコメント化する(らしい)
# sec.model sec.name
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork
group MyROGroup usm mynetwork
 ↓↓↓
# sec.model sec.name
#group MyRWGroup v1 local
#group MyRWGroup v2c local
#group MyRWGroup usm local
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork
group MyROGroup usm mynetwork
・システム情報の設定
  これは単に自分のマシンの情報を書いておくだけですね.
syslocation Right here, right now.
syscontact Me <me@somewhere.org>
 ↓↓↓
syslocation My Server(xxx.com) FreeBSD4.4
syscontact Oresama <foo@xxx.com>
・プロセス監視の設定
  デフォルトでいくつかのプロセスを監視するようになってます.
私の場合,全部コメント化して無効にする.
proc mountd
・・・
proc ntalkd 4
・・・
proc sendmail 10 1
 ↓↓↓
#proc mountd
・・・
#proc ntalkd 4
・・・
#proc sendmail 10 1
・ディスク監視の設定
  パーティション毎に監視の設定が可能です.環境に合わせてカスタマイズしましょう.
disk / 10000
 ↓↓↓
disk / 30000
disk /usr 500000


4. 起動・設定の確認
  とりあえず起動可能な状態になっているはずです.起動してみましょう!
freebsd # /usr/local/sbin/snmpd
freebsd # ps -ajx | grep snmpd
root 28355 1 1 22:34 pts/1 00:00:00 /usr/local/sbin/snmpd
↑このようにプロセス起動が確認できればOK!
続いて動作確認.

freebsd # /usr/local/bin/snmpwalk -v 1 IP Address COMMUNITY
  IP Address: エージェントのアドレス
  COMMUNITY : snmpd.confで設定したコミュニティ名
・・・・・
↑ここに山のようにメッセージが出力されればOK!
逆に出なければ設定の見直しが必要です.


5. 自動起動の設定
  動作確認が取れたら自動起動の設定です
/usr/local/etc/rc.d 配下に自動起動ファイルを作成します.
freebsd # cd /usr/local/etc/rc.d
freebsd # vi snmpd.sh (新規作成)
freebsd # chmod 755 snmpd.sh
freebsd # cd /
freebsd # reboot
 
 ---再開中--- 
 
freebsd > ps -ajx | grep snmpd
再開後にsnmpdプロセスが自動的に起動されていればOK!

/usr/local/etc/rc.d/snmpd.sh の中身
#!/bin/sh
if [ -x /usr/local/sbin/snmpd ]; then
    echo -n ' snmpd'
    /usr/local/sbin/snmpd
fi
これでucd-snmpの導入は終了です.引き続きMRTGの導入へ…


●MRTGの導入
1. ソースの準備
  MRTGのmakeには多数のライブラリが必要となります.
全てをゲットし ~/work/mrtg 配下に置きましょう.
ソースの在り処と使用したVersion
mrtg-2.9.17.tar.gz http://people.ee.ethz.ch/~oetiker/webtools/mrtg/
zlib.tar.gz(1.1.3) http://www.gzip.org/zlib/
libpng-1.2.1.tar.gz http://www.libpng.org/pub/png/
jpegsrc.v6b.tar.gz ftp://ftp.uu.net/graphics/jpeg/
gd-1.8.4.tar.gz http://www.boutell.com/gd/


2. ライブラリのインストール
  ゲットしてきたライブラリを片っ端からインストールしていく.
但し,gdをコンパイルする際にlibjepgのヘッダが必要となるので, gdのコンパイルは最後に行った方が良いでしょう.

・zlibのインストール
freebsd > cd ~/work/mrtg
freebsd > tar zxvfp zlib.tar.gz
freebsd > cd zlib-1.1.3
freebsd > ./configure
freebsd > make
freebsd > su
freebsd # make install
freebsd # exit
・libpngのインストール
freebsd > cd ~/work/mrtg
freebsd > tar zxvfp libpng-1.2.1.tar.gz
freebsd > cd libpng-1.2.1
freebsd > cp scripts/makefile.std Makefile
freebsd > make
freebsd > su
freebsd # make install
freebsd # exit
・libjpegのインストール
freebsd > cd ~/work/mrtg
freebsd > tar zxvfp jpegsrc.v6b.tar.gz
freebsd > cd jpeg-6b
freebsd > ./configure
※libjpegはヘッダのみを必要とする為,makeは不要!
・gdのインストール
freebsd > cd ~/work/mrtg
freebsd > tar zxvfp gd-1.8.4.tar.gz
freebsd > cd gd-1.8.4
freebsd > vi Makefile
 INCLUDEDIRS にlibjpegのパスを追加
 修正イメージ:
 INCLUDEDIRS=-I. -I〜.. -I/usr/local/include -I../jpeg-6b
freebsd > make
freebsd > su
freebsd # make install
freebsd # exit


3. MRTGのインストール
  これまたいつもと同じインストール.
ただし./configureのオプションが多い(長い?)ので要注意
freebsd > cd ~/work/mrtg
freebsd > tar zxvfp mrtg-2.9.17.tar.gz
freebsd > cd mrtg-2.9.17
freebsd > ./configure --prefix=/usr/local/mrtg --with-gd=../gd-1.8.4 \
  --with-z=../zlib-1.1.3 --with-png=../libpng-1.2.1 (実際は1行)
freebsd > make
freebsd > su
freebsd # make install
・出力htmlの日本語化
freebsd # cd translate
freebsd # ./mergelocale.pl skeleton.pm0 eucjp.pmd
freebsd # ./mergelocale.pl skeleton.pm0 iso2022JP.pmd
freebsd # cp locales_mrtg.pm /usr/local/mrtg/lib/


4. 設定
  こいつの設定は少々ややこしい.
まずベースとなるファイルを作成する

※前項から引き続きスーパユーザのまま
freebsd # mkdir /usr/local/mrtg/data
freebsd # cd /usr/local/mrtg/data
freebsd # ln -s /usr/local/mrtg/doc/mrtg2 images
freebsd # /usr/local/mrtg/bin/cfgmaker COMMUNITY@IP Address > mrtg.cfg
そして,中身の編集…
ついでにApacheの設定も変更し,リスタート
freebsd # cd /usr/local/apache/conf
freebsd # vi httpd.conf
freebsd # /usr/local/apache/bin/apachectl restart
httpd.confの変更内容→Aliasの追加
<IfModule mod_alias.c>

    Alias /mrtg/ "/usr/local/mrtg/data/"
    #
    # Note that if you include a trailing / …
    :
    :


5. 動作確認
  ※前項から引き続きスーパユーザのまま(のはず)
freebsd # cd /usr/local/mrtg/data
freebsd # /usr/local/mrtg/bin/mrtg mrtg.cfg
最初の2回くらいはエラーメッセージが出るが,これは過去のログがない為.
しかし,3回目以降もエラーメッセージが出力される場合は設定を見直しましょう.
#エラーメッセージから設定ミスが明らかな場合は,即刻設定の見直しを実施しましょう :-)


6. 運用登録
  …といっても大したことはしない.単にindex.htmlの作成とcronの登録

※前項から引き続きスーパユーザのまま
freebsd # /usr/local/mrtg/bin/indexmaker mrtg.cfg > index.html
freebsd # crontab -e
*/5 * * * * /usr/local/mrtg/bin/mrtg /usr/local/mrtg/data/mrtg.cfg
とりあえず以上で全ての設定が完了しました.お疲れ様でした.
あとは,使ってみて使いにくい部分等を自分好みの設定にカスタマイズしてみてください.
特にindexmakerで作ったindex.htmlを自分好みに変更した方が見やすくなることでしょう.


●参考にしたもの
  ZDNet:SNMPによるネットワークモニタリング
MRTG公式日本語サイト


●改版履歴
 
2002.05.15  初版


 [ FreeBSD Top ]   [ This Site Top ]
Wrote by K.Teraki <master@prism-r.com>