CentOS8 で SNMP マネージャーを簡易的に構築する際の手順について記載します。
SNMP マネージャーを構築する手順
まずは、net-snmp と net-snmp-util をインストールします。
yum -y install net-snmp net-snmp-utils
次に、/etc/snmp/snmpd.conf を編集します。
com2sec LocalNetwork <SNMP Manager の IP> public
group LocalGroup v1 LocalNetwork
group LocalGroup v2c LocalNetwork
view AllView included .1
access LocalGroup "" any noauth exact AllView none none
snmpd の再起動を実施します。
# systemctl restart snmpd.service
# systemctl enable snmpd.service
次に SNMP Trap を受信できるように設定します。
まずは、/etc/snmp/snmptrapd.conf を編集します。
(コメントアウト外すだけ)
UCD-DISKIO-MIB::diskIOLA5.7 = INTEGER: 0
UCD-DISKIO-MIB::diskIOLA15.1 = INTEGER: 0
# Example configuration file for snmptrapd
#
# No traps are handled by default, you must edit this file!
#
authCommunity log,execute,net public #コメントアウトを外す
# traphandle SNMPv2-MIB::coldStart /usr/bin/bin/my_great_script cold
snmptrapd の再起動を行います。
# systemctl restart snmptrapd.service
# systemctl enable snmptrapd.service
以上の時点で SNMP Trap を受信できるようにはなっていますが(ファイアウォール
の設定が完了している前提)、MIB の読み込み等は行えていないので、以下に MIB を
読み込む設定及びログの出力先設定について記載します。
まずは、”/usr/share/snmp/vendormibs” というディレクトリを作成し、当該
ディレクトリ配下にベンダー MIB ファイルをアップロードします。
# mkdir /usr/share/snmp/vendormibs
# ls /usr/share/snmp/vendormibs/
BRIDGE-MIB.mib INET-ADDRESS-MIB.mib SNMPv2-CONF.mib VMWARE-NSX-MANAGER-MIB.mib VMWARE-VCOPS-EVENT-MIB.mib
ENTITY-MIB.mib IP-FORWARD-MIB.mib SNMPv2-MIB.mib VMWARE-OBSOLETE-MIB.mib VMWARE-VMINFO-MIB.mib
HOST-RESOURCES-MIB.mib IP-MIB.mib SNMPv2-SMI.mib VMWARE-PRODUCTS-MIB.mib VMWARE-VRNI-AGENTCAP-MIB.mib
HOST-RESOURCES-TYPES.mib IPV6-FLOW-LABEL-MIB.mib SNMPv2-TC.mib VMWARE-RESOURCES-MIB.mib VMWARE-VRNI-MIB.mib
IANA-ADDRESS-FAMILY-NUMBERS-MIB.mib LLDP-V2-MIB.mib TCP-MIB.mib VMWARE-ROOT-MIB.mib VMWARE-VROPS-AGENTCAP-MIB.mib
IANA-ENTITY-MIB.mib LLDP-V2-TC-MIB.mib TOKEN-RING-RMON-MIB.mib VMWARE-SRM-EVENT-MIB.mib VMWARE-VROPS-MIB.mib
IANA-RTPROTO-MIB.mib P-BRIDGE-MIB.mib UDP-MIB.mib VMWARE-SYSTEM-MIB.mib incompatible
IANAifType-MIB.mib Q-BRIDGE-MIB.mib UUID-TC-MIB.mib VMWARE-TC-MIB.mib list-ids-diagnostics.txt
IEEE8021-BRIDGE-MIB.mib README VMWARE-CIMOM-MIB.mib VMWARE-TUNNEL-SERVER-AGENTCAP-MIB.mib notifications.txt
IEEE8021-Q-BRIDGE-MIB.mib RMON-MIB.mib VMWARE-ENV-MIB.mib VMWARE-TUNNEL-SERVER-MIB.mib vc-alarms-65.csv
IEEE8021-TC-MIB.mib RMON2-MIB.mib VMWARE-ESX-AGENTCAP-MIB.mib VMWARE-VA-AGENTCAP-MIB.mib
IEEE8023-LAG-MIB.mib SNMP-FRAMEWORK-MIB.mib VMWARE-HEARTBEAT-MIB.mib VMWARE-VC-EVENT-MIB.mib
IF-MIB.mib SNMP-MPD-MIB.mib VMWARE-NSX-MANAGER-AGENTCAP-MIB.mib VMWARE-VCHA-MIB.mib
次に上記で追加した MIB ファイルを認識させるために /etc/sysconfig/snmptrapd
に以下の行を追加します。
(以下の設定では syslog の local6 に SNMP Trap の内容を出力)
OPTIONS="-Ls6d -p /var/run/snmptrapd.pid -M /usr/share/snmp/mibs:/usr/share/snmp/vendormibs -m all" #追加
snmptrapd を再起動します。
# systemctl restart snmptrapd.service
以上までの設定で SNMP Trap を受信した際には /var/log/messages に出力
されます。
ただ、/var/log/messages で確認する場合、その他のログも一緒に載るため
以下の設定により snmptrapd.log に出力するように設定します。
まずは、/etc/rsyslog.conf に以下のように記載します。
(/etc/sysconfig/snmptrapd で local6 に出力するように設定したため)
local6.* /var/log/snmptrapd.log #追加
次に、rsyslog を再起動します。
systemctl restart rsyslog.service
/var/log/ ディレクトリ配下を確認すると以下のように snmptrapd.log が
作成されており、以上で設定は完了です。
SNMP Trap の確認
今回は vCenter Server / ESXi に SNMP Trap の設定を行い、Trap を飛ばして
みました。
実際に SNMP Trap を飛ばしてみると、/var/log/snmptrapd.log では以下の
ように確認でき、SNMP Trap を正常に受信できてました。