SNMPを外部接続する方法

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

上記が出力されれば成功です。

読んで頂いて有り難うございます!