LoginSignup
2
6

More than 1 year has passed since last update.

Ubuntu や Raspberry Pi に SNMP をインストール

Last updated at Posted at 2022-08-03

環境

  • サーバ & エージェント Ubuntu 20.04 ja LTS
  • リモートエージェント Ubuntu 22.04 ja LTS

インストール

サーバに以下のようにしてインストール

$ sudo apt install snmpd

また、snmpwalk などを使うためインストール。閲覧はあくまで 別 PC で行う場合はなくてもいいです。

$ sudo apt install snmp snmp-mibs-downloader

インストールしてできた /etc/snmp/snmpd.conf の 中身は以下のようになってました。

$ sudo cat /etc/snmp/snmpd.conf | grep -v ^# | grep -v ^$
sysLocation    Sitting on the Dock of the Bay
sysContact     Me <me@example.org>
sysServices    72
master  agentx
agentaddress udp:161,udp6:[::1]:161
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
rocommunity  public default -V systemonly
rocommunity6 public default -V systemonly
rouser authPrivUser authpriv -V systemonly

そのまま読み込みしてみます。

$ snmpwalk -v1 localhost -c public
/etc/snmp/snmp.conf: line 5: Warning: Unknown token: rocommunity.
iso.3.6.1.2.1.1.1.0 = STRING: "Linux nanbuwks-PRIMERGY-TX1310-M3 5.11.0-43-generic #47~20.04.2-Ubuntu SMP Mon Dec 13 11:06:56 UTC 2021 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (4335) 0:00:43.35
iso.3.6.1.2.1.1.4.0 = STRING: "Me <me@example.org>"
iso.3.6.1.2.1.1.5.0 = STRING: "nanbuwks-PRIMERGY-TX1310-M3"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.49
iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.4
iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.2.1.50
iso.3.6.1.2.1.1.9.1.2.9 = OID: iso.3.6.1.6.3.13.3.1.3
iso.3.6.1.2.1.1.9.1.2.10 = OID: iso.3.6.1.2.1.92
iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The SNMP Management Architecture MIB."
iso.3.6.1.2.1.1.9.1.3.2 = STRING: "The MIB for Message Processing and Dispatching."
iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The management information definitions for the SNMP User-based Security Model."
iso.3.6.1.2.1.1.9.1.3.4 = STRING: "The MIB module for SNMPv2 entities"
iso.3.6.1.2.1.1.9.1.3.5 = STRING: "View-based Access Control Model for SNMP."
iso.3.6.1.2.1.1.9.1.3.6 = STRING: "The MIB module for managing TCP implementations"
iso.3.6.1.2.1.1.9.1.3.7 = STRING: "The MIB module for managing IP and ICMP implementations"
iso.3.6.1.2.1.1.9.1.3.8 = STRING: "The MIB module for managing UDP implementations"
iso.3.6.1.2.1.1.9.1.3.9 = STRING: "The MIB modules for managing SNMP Notification, plus filtering."
iso.3.6.1.2.1.1.9.1.3.10 = STRING: "The MIB module for logging SNMP Notifications."
iso.3.6.1.2.1.1.9.1.4.1 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.2 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.3 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.4 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.5 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.6 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.7 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.8 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.9 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.4.10 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (13202960) 1 day, 12:40:29.60
iso.3.6.1.2.1.25.1.2.0 = Hex-STRING: 07 E6 08 03 0E 08 26 00 2B 09 00 
iso.3.6.1.2.1.25.1.3.0 = INTEGER: 393216
iso.3.6.1.2.1.25.1.4.0 = STRING: "BOOT_IMAGE=/boot/vmlinuz-5.11.0-43-generic root=UUID=3f5e0384-61ff-4c47-8e00-839ac025fc77 ro quiet splash vt.handoff=7
"
iso.3.6.1.2.1.25.1.5.0 = Gauge32: 6
iso.3.6.1.2.1.25.1.6.0 = Gauge32: 243
iso.3.6.1.2.1.25.1.7.0 = INTEGER: 0
End of MIB

uptime を取得してみます。

$ snmpwalk -v1 localhost -c public iso.3.6.1.2.1.25.1.1.0 
/etc/snmp/snmp.conf: line 5: Warning: Unknown token: rocommunity.
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (13206812) 1 day, 12:41:08.12

別の PC から値を読んでみる

サーバの値を他のPCから見えるようにするためには、以下のように /etc/snmp/snmpd.conf を編集

agentaddress  127.0.0.1,[::1]

を以下のように無効化

# agentaddress  127.0.0.1,[::1]

snmpdを再起動する

$ sudo systemctl restart  snmpd

別のPC

$ sudo apt-get install -y snmp snmp-mibs-downloader

の後、

$ snmpwalk -v1 localhost -c public iso.3.6.1.2.1.25.1.1.0 

とすると

iso.3.6.1.2.1.25.1.1.0 = Timeticks: (13355805) 1 day, 13:05:58.05

uptime が取得できました。

読める値を増やす

snmp サーバで、/etc/snmp/snmpd.conf を編集します。

#  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1

# rocommunity: a SNMPv1/SNMPv2c read-only access community name
#   arguments:  community [default|hostname|network/bits] [oid | -V view]

# Read-only access to everyone to the systemonly view
rocommunity  public default -V systemonly
rocommunity6 public default -V systemonly

上記の該当箇所を以下のように変更します。

#  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
view   systemview  included   .1.3.6.1.2.1.25
view   systemview  included   .1.3.6.1.4.1.2

# rocommunity: a SNMPv1/SNMPv2c read-only access community name
#   arguments:  community [default|hostname|network/bits] [oid | -V view]

# Read-only access to everyone to the systemonly view
rocommunity  public default
rocommunity6 public default -V systemonly

snmpd再起動

$ sudo systemctl restart snmpd
$ snmpwalk -v1 localhost -c public

とすると膨大に出てきます。

外部から、メモリの値を読んでみました。

$ snmpwalk -v1 192.168.42.100 -c public UCD-SNMP-MIB::memory
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 2097148 kB
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 1844236 kB
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 3840912 kB
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 679384 kB
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 2523620 kB
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
UCD-SNMP-MIB::memShared.0 = INTEGER: 118180 kB
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 254896 kB
UCD-SNMP-MIB::memCached.0 = INTEGER: 1355500 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING: 

ディスクの値を読もうとしましたが、出てきませんでした。

$ snmpwalk -v1 192.168.42.100 -c public UCD-SNMP-MIB::dskTable

load average を表示してみました。

$ snmpwalk -v1 192.168.42.100 -c public 1.3.6.1.4.1.2021.10.1.3
iso.3.6.1.4.1.2021.10.1.3.1 = STRING: "0.01"
iso.3.6.1.4.1.2021.10.1.3.2 = STRING: "0.07"
iso.3.6.1.4.1.2021.10.1.3.3 = STRING: "0.08"

過去1分、5分、15分の間のロードアベレージ値です。

以下では CPU コアそれぞれの利用率の値が取得できるようです。

$ snmpwalk -v1 192.168.42.100 -c public 1.3.6.1.2.1.25.3.3
iso.3.6.1.2.1.25.3.3.1.1.196608 = OID: ccitt.0
iso.3.6.1.2.1.25.3.3.1.1.196609 = OID: ccitt.0
iso.3.6.1.2.1.25.3.3.1.2.196608 = INTEGER: 5
iso.3.6.1.2.1.25.3.3.1.2.196609 = INTEGER: 4

他のツール

snmpstatus

$ snmpstatus -v 1 -c public localhost
[UDP: [127.0.0.1]:161->[0.0.0.0]:47832]=>[Linux nanbuwks-PRIMERGY-TX1310-M3 5.11.0-43-generic #47~20.04.2-Ubuntu SMP Mon Dec 13 11:06:56 UTC 2021 x86_64] Up: 0:04:45.44
Interfaces: 4, Recv/Trans packets: 878912/6781368 | IP: 667121/1366586
2 interfaces are down!
2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6