【Oracle Linux 9】SNMPサーバを構築してCiscoスイッチを監視する

【Oracle Linux 9】SNMPサーバを構築してCiscoスイッチを監視する

ネットワーク機器の状態監視をしたいと考えたとき、もっともシンプルな方法のひとつが SNMP(Simple Network Management Protocol) を使った監視になる。

この記事では、Oracle Linux9を使ってSNMPサーバを構築し、Cisco Catalyst C2960Lスイッチの状態を取得する方法を記載する。


1. SNMPとは?

SNMP(Simple Network Management Protocol)は、ネットワーク機器の情報(インターフェース状態、CPU使用率、システム名など)を取得・管理するためのプロトコル。

Ciscoスイッチを監視するには、SNMPでデータを取得する「サーバ(監視側)」と、情報を提供する「スイッチ(被監視側)」が必要になる。


2. 構成の概要

役割内容
SNMPサーバOracle Linux 9
被監視機器Cisco Catalyst C2960L
SNMPバージョンv2c(シンプルで学習向け)
コミュニティ名public(※実運用では変更推奨)
graph TD
    Client["管理者PC(snmpwalk使用)"]
    SNMPServer["Oracle Linux SNMPサーバ (snmpd)"]
    Switch["Cisco Catalyst C2960L スイッチ"]
    Client -->|"snmpwalkで確認"| SNMPServer
    SNMPServer -->|"UDP 161(SNMP v2c)"| Switch
    Switch -->|"SNMPデータ提供 (MIB/OID)"| SNMPServer

3. Cisco C2960LのSNMP設定

まずはスイッチ側の設定を行う。以下のコマンドをCiscoスイッチのコンソールやSSH経由で実行する。

switch> enable
switch# configure terminal
switch(config)# snmp-server community public RO
switch(config)# snmp-server host 192.168.1.100 version 2c public
switch(config)# end
switch# write memory
  • public は読み取り専用のコミュニティ名(共通のパスワードのようなもの)。
  • 192.168.1.100 はOracle LinuxサーバのIPアドレスに読み替える。

設定の反映を確認する。
switch# show running-config

switch#show running-config
Building configuration...

<中略>

snmp-server community public RO
snmp-server host 192.168.1.100 version 2c public

<中略>

end

4. Oracle LinuxにSNMPサーバをインストール

続いて、監視サーバ側(Oracle Linux)で net-snmp パッケージをインストールし、設定を行う。

4-1. パッケージのインストール

net-snmpパッケージをインストール。
# dnf install net-snmp net-snmp-utils -y

4-2. 設定ファイルの編集

snmpd.confのバックアップを作成する。
# cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
snmpd.confを編集する。
# vi /etc/snmp/snmpd.conf

コンフィグ末尾に以下を追記する:

# community名とアクセス許可
rocommunity public

# すべてのIPからのSNMP要求を受け付ける
agentAddress udp:161




※ 実運用では rocommunity public 192.168.1.1 のように、アクセス元IPを制限すると安全。

4-3. SNMPサービスの起動と有効化

SNMPサービスの起動と有効化を行う。
# systemctl is-enabled snmpd
# systemctl enable snmpd
# systemctl is-enabled snmpd
# systemctl status snmpd
# systemctl start snmpd
# systemctl status snmpd

起動と有効化ができていれば下記表示になる
[root@localhost ~]# systemctl is-enabled snmpd
enabled
[root@localhost ~]# systemctl status snmpd
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
     Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; preset: disabled)
     Active: active (running) since Mon 2025-05-12 00:44:43 JST; 1min 59s ago
   Main PID: 52892 (snmpd)
      Tasks: 1 (limit: 9393)
     Memory: 4.1M
        CPU: 42ms
     CGroup: /system.slice/snmpd.service
             mq52892 /usr/sbin/snmpd -LS0-6d -f

5. SNMPでスイッチの状態を確認する

snmpwalk コマンドを使って、実際にCiscoスイッチから情報を取得する。

5-1. システム名(ホスト名)を取得

# snmpwalk -v2c -c public 192.168.1.1 SNMPv2-MIB::sysName.0

結果例:

SNMPv2-MIB::sysName.0 = STRING: "Switch-C2960L"

5-2. インターフェース一覧を取得

# snmpwalk -v2c -c public 192.168.1.1 IF-MIB::ifDescr
結果例:
IF-MIB::ifDescr.1 = STRING: Vlan1
IF-MIB::ifDescr.2 = STRING: GigabitEthernet0/1
...

6. MIBファイルとは?

SNMPでは「MIB(Management Information Base)」という辞書ファイルを使って、情報の中身を人間が読める形(sysName など)で表示する。
MIBファイルがないと、.1.3.6.1.2.1.1.5.0 のような数値(OID)だけが表示されてしまう。
今回はsnmp標準の標準MIBで対応できたが、Cisco機器専用のCPU、メモリ、電源、ファン、PoE、VLAN情報などは別途Cisco独自のMIB(CISCO MIB)を使わないと取得できない。

必要な場合は /usr/share/snmp/mibs/ に Cisco公式サイトからダウンロードした .my ファイルを追加する。


7. まとめ

作業内容
スイッチ設定snmp-server community などの設定で監視を許可
Linuxサーバ設定net-snmp の導入と設定ファイル編集
動作確認snmpwalk で情報が取得できるかチェック
補足MIBを使えばOIDを名前で表示可能

8. 次のステップ

CLIでの確認ができたら、LibreNMSZabbix といった監視ツールを使って、Web画面で視覚的に状態を監視することも可能となる。

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *