SNMPエージェントの設定およびCactiでのグラフ設定

#はじめに

|監視する|監視される|
|-------------|------------|
|192.168.56.20|192.168.56.10|

今回は、監視される192.168.56.10にエージェントをインストールする。
また、Cacti(192.168.56.20)で監視対象(192.168.56.10)から情報を取得し、
グラフ表示を行う。
SNMPマネージャおよびCactiは[こちら](http://qiita.com/Kenji_TAJIMA/items/91965a94c624fa0c89ca)で設定済み。

#エージェントのインストール
Cactiが他のホストを監視する際、SNMPというプロトコルを使う。
その際、監視される側にエージェントを入れておく必要があるため、
インストールを行う。

```
# yum -y install net-snmp net-snmp-utils
```

#設定

長いため抜粋とする。
##
```/etc/snmp/snmpd.conf
#       sec.name   source        community
com2sec local      localhost     public
com2sec devNetwork 192.168.56.20 public

# Second, map the security name into a group name:
#       groupName      securityModel securityName
group   devGroup       v1          devNetwork

# Third, create a view for us to let the group have rights to:

# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view all included .1 80

# Finally, grant the group read-only access to the systemview view.
#       group          context sec.model sec.level prefix read   write  notif
access devGroup "" any noauth exact all all none
```

v1 としているが、[このあたり](http://www.itmedia.co.jp/enterprise/articles/0705/16/news011_2.html)を読む限りv2が望ましいのだと思う。

##snmpwalkで確認
監視する側から、監視対象の情報が取得できるか確認する。

```
# snmpwalk -v 1 192.168.56.10 -c public
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 3.10.0-229.20.1.el7.x86_64 #1 SMP Tue Nov 3 19:10:07 UTC 2015 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (278040) 0:46:20.40
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
省略
```

##サービス自動起動設定

```
# systemctl enable snmpd
```

##起動

```
# systemctl start snmpd
```

#Cactiの設定
##デバイス登録

メニューから"Device"をクリックし、画面遷移後右上の"Add"リンクをクリックする。
デバイスの情報を入力し、"create"ボタンを押下する。

正常に登録できると、"SNMP Information"の下にSNMPで取得した情報が表示される。
尚、"SNMPエラー"と表示される場合は、SNMPエージェントが監視対象に設定されていないか、
設定が誤っていると思われる。

![add_device.png](https://qiita-image-store.s3.amazonaws.com/0/65994/e1c6ddcc-54c2-1a65-073b-c6f3119b6728.png)

##グラフ設定

"New Graph"リンクをクリックする。
"Create"プルダウンから監視したい項目を選択し、"Create"ボタンを押下する。

![Capture 2016-04-21 20.46.12.png](https://qiita-image-store.s3.amazonaws.com/0/65994/bfd1eef0-a865-bcd5-0f63-06b9b75e0e05.png)

#動作確認

画面上部の"graphs"リンクをクリックし、グラフが表示されることを確認する。
（cronが実行されるまで待つこと）

![Capture 2016-04-22 1.23.25.png](https://qiita-image-store.s3.amazonaws.com/0/65994/5ff19ffe-5af7-494e-d981-583686805b8a.png)


#おわりに
snmpdエージェントの設定と、Cactiでのグラフ表示設定を行った。
snmpd.confについて今回は簡易な設定で済ませたが、
SNMPリフレクション攻撃の踏み台に悪用される危険もあるため、
学習目的の利用であっても頭の片隅に置いておいたほうが良いと思う。