SNMP(プロトコル)は、ルータやコンピュータ、端末など、ネットワークに接続された通信機器をネットワーク経由で監視・制御するためのプロトコルです。通常は、MRTG、Cacti などの監視するツールと併用して使います。
SNMPをインストール
// インストール # apt-get install snmp snmpd
基本設定
// 編集 # vi /etc/snmp/snmpd.conf // ~省略~ # sec.name source community #com2sec paranoid default public #com2sec readonly default public com2sec readonly default snmpuser ← 修正:デフォルトのコミュニティー名を変更。 #com2sec readwrite default private // ~省略~ -disk / 10000 +disk / ← 修正:コメントアウト解除(環境に合わせて変更して下さい。)
※コミュニティー名は、好きな名前に変更してください。
外部からのポーリングを許可する
外部からSNMPプロトコルにアクセスする場合は、127.0.0.1の部分を削除する必要があります。デフォルトは、インストールされたサーバーのみしかアクセス出来ません。
// 編集 # vi /etc/default/snmpd // 内容 # This file controls the activity of snmpd and snmptrapd # MIB directories. /usr/share/snmp/mibs is the default, but # including it here avoids some strange problems. export MIBDIRS=/usr/share/snmp/mibs # snmpd control (yes means start daemon). SNMPDRUN=yes # snmpd options (use syslog, close stdin/out/err). -SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1' +SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid' ← 修正: 127.0.0.1を削除 # snmptrapd control (yes means start daemon). As of net-snmp version # 5.0, master agentx support must be enabled in snmpd before snmptrapd # can be run. See snmpd.conf(5) for how to do this. TRAPDRUN=no # snmptrapd options (use syslog). TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid' # create symlink on Debian legacy location to official RFC path SNMPDCOMPAT=yes
SNMPを再起動(設定反映)
// 再起動 # /etc/init.d/snmpd restart
動作チェック
外部のサーバーから SNMP を設定したIPアドレス宛に下記のコマンドを実行してください。IPアドレスの部分を変更して試してください。
// 実行 # snmpwalk -v 1 192.168.0.100 -c snmpuser .1.3.6.1.4.1.2021.11 // 出力内容 UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1 UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0 kB UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0 kB UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 17 blocks/s UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 0 blocks/s UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 26 interrupts/s UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 76 switches/s UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0 UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0 UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 98 UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 18578411 UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 0 UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 4702774 UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 1790470581 UCD-SNMP-MIB::ssCpuRawWait.0 = Counter32: 1099744 UCD-SNMP-MIB::ssCpuRawKernel.0 = Counter32: 0 UCD-SNMP-MIB::ssCpuRawInterrupt.0 = Counter32: 419659 UCD-SNMP-MIB::ssIORawSent.0 = Counter32: 383951940 UCD-SNMP-MIB::ssIORawReceived.0 = Counter32: 107985422 UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 218121223 UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 799249221 UCD-SNMP-MIB::ssCpuRawSoftIRQ.0 = Counter32: 957114 UCD-SNMP-MIB::ssRawSwapIn.0 = Counter32: 2820651 UCD-SNMP-MIB::ssRawSwapOut.0 = Counter32: 1739198
上記が出力されれば成功です。