MRTG でリモートからサーバ監視するためには、監視対象のサーバで snmp のデーモンが動いている必要があります。
そこで、今回は CentOS4.4 に net-snmp の導入をしてみます。
以前、MRTG については「MRTGでディスクIO(Linux編)」で書きましたので、興味があれば下記の記事もご覧ください。

net-snmpのインストール
インストール手順は、net-snmp のモジュールを外部サーバから取得してきてビルドするだけです。
1 2 3 4 5 6 7 8 9 | (rootで作業します) $ cd /usr/local/src $ wget http://jaist.dl.sourceforge.net/sourceforge/net-snmp/net-snmp-5.3.0.1.tar.gz $ tar zxvf net-snmp-5.3.0.1.tar.gz $ cd net-snmp-5.3.0.1 $ ./configure --with-mib-modules="host ucd-snmp/diskio" (プロンプトが出現するが全てEnterでよい) $ make $ make install |
環境によっては、下記の 2 つのモジュールを yum でインストールしておかないとダメな場合もあります。
1 2 | $ yum install beecrypt-devel $ yum install elfutils-libelf-devel |
snmpとsnmptrapの設定
これで、snmpd が起動できますが、その前に、snmp と snmptrap の設定をします。
snmp の設定では、監視対象となるグループやネットワークセグメント、またハードディスクのパーティションに対して監視設定ができます。
まず、snmp の設定ファイルをサンプルを元に作成します。ネットワークアドレスやコミュニティ名は環境に合わせて下さい。
1 2 3 4 5 6 7 8 9 10 11 12 13 | $ cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf $ vi /usr/local/share/snmp/snmpd.conf #### # First, map the community name (COMMUNITY) into a security namecd /hom # (local and mynetwork, depending on where the request is coming # from): # sec.name source community com2sec local localhost communityname com2sec mynetwork 192.168.0.0/24 communityname # Check the / partition and make sure it contains at least 10 megs. disk /home 10% disk /var 10% disk / 10% |
次に、snmpstap の設定です。net-snmp5.2 では、デフォルトで trap をどこからでも検知する設定なので不要ですが、net-snmp5.3 では設定が必要になります。
今回は、net-snmp5.2 の設定と同じく、全部許可する設定をします。設定ファイルは新規の作成となります。
1 2 | $ vi /usr/local/share/snmp/snmptrapd.conf disableAuthorization yes |
snmpdの起動と動作確認
あとは、snmpd を起動して動作確認です。
1 | $ /usr/local/sbin/snmpd |
snmpwalk を使うといろいろな確認テストができます。その他、OS 起動時の自動設定などをしておけば楽になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # デーモンの起動スクリプト % vi /etc/init.d/snmp #!/bin/sh case "$1" in start) /usr/local/sbin/snmpd -a -Lsd -p /var/run/snmpd.pid /usr/local/sbin/snmptrapd -a -Lsd -p /var/run/snmptrapd.pid ;; stop) kill `cat /var/run/snmpd.pid` kill `cat /var/run/snmptrapd.pid` ;; *) exit 1 esac exit 0; # 実行権限付与 % chmod 755 /etc/init.d/snmp # 自動起動の設定 % chkconfig --add snmp # 自動起動の確認 % chkconfig --list snmp |
あとは、監視側の設定をするだけです。