ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
SNMP とは
SNMP (Simple Network Management Protocol) は、ルータ・スイッチ・サーバ・UPS・プリンタなど、ネットワーク上の機器の状態を取得したり設定を変更したりするための標準プロトコルです。1988 年の RFC 1067 で初めて定義され、現在もネットワーク監視の事実上の標準として使われています。
OSI 参照モデルではアプリケーション層 (第 7 層)に位置し、トランスポート層には UDP を使います。
構成要素
| 要素 | 役割 |
|---|---|
| SNMP Manager | 監視サーバ。Agent に問い合わせ、Trap を受信して可視化・アラートを発報 (Zabbix Server など) |
| SNMP Agent | 監視される側に常駐するソフト。MIB から値を読み取り Manager に応答 (Net-SNMP の snmpd など) |
| MIB (Management Information Base) | 取得可能な情報のスキーマ定義。テキストファイル (.mib) で配布される |
| OID (Object Identifier) | MIB ツリー内の特定項目を一意に指すドット区切り識別子 (例 1.3.6.1.2.1.1.5.0 = sysName) |
| Community / User | v1/v2c は "community" 文字列 (実質パスワード)、v3 はユーザ名+認証鍵+暗号鍵 |
ポートと通信モデル
| ポート | 方向 | 用途 |
|---|---|---|
| UDP 161 | Manager → Agent | ポーリング (定期取得)。GET / GETNEXT / GETBULK / SET |
| UDP 162 | Agent → Manager | Trap / Inform (イベント通知)。リンクダウン・温度異常など即時通知 |
UDP なので信頼性は低いですが、軽量で広く流せます。Trap が確実に届かないと困る用途では SNMPv2c 以降の Inform (ACK あり) を使います。
主要オペレーション
| 操作 | 用途 |
|---|---|
GET | 指定 OID の値を 1 つ取得 |
GETNEXT | 指定 OID の「次」を取得。テーブル走査の基本 |
GETBULK (v2c+) | 複数 OID をまとめて取得。大量行のテーブルで高速 |
SET | OID に値を書き込む (機器設定変更) |
TRAP | Agent から非同期通知 |
INFORM (v2c+) | ACK 付きの TRAP |
SNMP のバージョン
| 版 | 認証 | 暗号 | 備考 |
|---|---|---|---|
| v1 (1988) | Community (平文) | なし | レガシー。新規採用非推奨 |
| v2c (1996) | Community (平文) | なし | GETBULK / 64bit カウンタ追加。現在も主流 |
| v3 (1999) | USM (User-based Security Model) | DES / AES | noAuthNoPriv / authNoPriv / authPriv の 3 レベル。本番推奨 |
v1/v2c はcommunity 文字列が平文で UDP に乗るため、インターネット越し利用は厳禁です。閉域でも管理用 VLAN への ACL を必ず付けてください。
MIB と OID の構造
OID はツリー構造の数字列です。主要な枝:
1 : iso
1.3 : org
1.3.6 : dod (米国国防総省)
1.3.6.1 : internet
1.3.6.1.2.1 : mgmt → mib-2 (RFC 1213 標準 MIB)
.1 : system (sysDescr, sysName, sysUpTime)
.2 : interfaces (ifTable - 各 NIC の統計)
.4 : ip
.6 : tcp
1.3.6.1.4.1 : private.enterprises
.9 : Cisco
.2636 : Juniper
.8072 : Net-SNMP
.311 : Microsoft
代表的な OID:
1.3.6.1.2.1.1.1.0 sysDescr (機器説明)
1.3.6.1.2.1.1.3.0 sysUpTime (起動からの時間)
1.3.6.1.2.1.1.5.0 sysName (ホスト名)
1.3.6.1.2.1.2.2.1.10.X ifInOctets (NIC X の受信バイト数)
1.3.6.1.2.1.2.2.1.16.X ifOutOctets(NIC X の送信バイト数)
Linux サーバを Agent にする
# RHEL / Rocky / Alma 系
sudo dnf install net-snmp net-snmp-utils
sudo systemctl enable --now snmpd
# Debian / Ubuntu 系
sudo apt install snmpd snmp libsnmp-dev
sudo systemctl enable --now snmpd
# /etc/snmp/snmpd.conf の最小設定 (v2c)
rocommunity public 192.0.2.0/24 # 監視サーバ側のサブネットだけ許可
syslocation "Tokyo DC Rack 5"
syscontact "noc@example.com"
# v3 ユーザ追加 (推奨)
sudo systemctl stop snmpd
sudo net-snmp-create-v3-user -ro -A AuthPass1234 -X PrivPass1234 \
-a SHA -x AES monitor
sudo systemctl start snmpd
snmpwalk / snmpget による疎通確認
# v2c で sysName を取得
snmpget -v2c -c public 192.0.2.10 1.3.6.1.2.1.1.5.0
# v2c で system 配下を一括取得
snmpwalk -v2c -c public 192.0.2.10 system
# v3 (authPriv)
snmpwalk -v3 -l authPriv -u monitor \
-a SHA -A AuthPass1234 -x AES -X PrivPass1234 \
192.0.2.10 system
# NIC 統計 (ifTable) を見る
snmpwalk -v2c -c public 192.0.2.10 ifTable
# MIB 名 → OID の対応をロードして読みやすくする
snmpwalk -v2c -c public -M +/usr/share/snmp/mibs -m ALL 192.0.2.10 ifInOctets
主要監視ツールとの組み合わせ
| ツール | 特徴 |
|---|---|
| Zabbix | OSS。テンプレートが豊富、SNMP Trap 受信も標準対応。エンタープライズで多用 |
| Nagios / Icinga | 古参の OSS。プラグイン (check_snmp) で柔軟 |
| PRTG | 商用。GUI が分かりやすく中小規模で人気 |
| Cacti | RRDtool ベースのグラフ化に特化 |
| LibreNMS | Observium 派生の OSS。自動検出が強力 |
| SolarWinds NPM | 商用。大規模ネットワークオペレーションセンタで定番 |
SNMP Trap の受信
# Manager 側で snmptrapd を起動
sudo apt install snmptrapd
sudo systemctl enable --now snmptrapd
# /etc/snmp/snmptrapd.conf
authCommunity log,execute,net public
disableAuthorization yes # テスト時のみ
# Trap を送る側 (Agent からテスト)
snmptrap -v2c -c public 192.0.2.1 '' \
1.3.6.1.6.3.1.1.5.3 \
ifIndex i 2 \
ifAdminStatus i 2 \
ifOperStatus i 2
# Manager の syslog で受信を確認
journalctl -u snmptrapd -f
セキュリティ運用の勘所
- community 文字列 public / private はそのまま使わない。必ず変更
- v1/v2c は読み取り専用 (rocommunity) のみに。書き込み (rwcommunity) は v3 + ACL 必須
- UDP 161 は管理用セグメントから IP 制限。Firewall / Security Group で絞る
- v3 は
authPriv(SHA + AES) を選択。noAuthNoPrivは研究室用途のみ - SNMP Trap は UDP で信頼性が無い → 重要イベントは Inform (ACK 有り) か Syslog/Webhook 併用
現代の代替: Streaming Telemetry / gNMI
ポーリング型の SNMP は大規模ネットワーク (数千台) やサブ秒粒度の可視化には向きません。代替として、Cisco IOS-XR / Juniper / Arista が推す Streaming Telemetry (gRPC + Protocol Buffers, gNMI) が普及しています。
| 観点 | SNMP | gNMI / Telemetry |
|---|---|---|
| 方式 | Pull (ポーリング) | Push (Subscribe) |
| 粒度 | 30 秒〜5 分 | 1 秒以下も可 |
| トランスポート | UDP | gRPC over TLS |
| データモデル | MIB (機器ごとに独自拡張) | OpenConfig YANG (ベンダ共通) |
| 普及度 | ★★★★★ (枯れた標準) | ★★★ (大規模事業者中心) |
とはいえ、サーバ・プリンタ・UPS・産業用機器などSNMP しか喋らない機器はまだ大量にあり、当面は両方共存が現実解です。
FAQ
Q: snmpwalk の応答が遅い・タイムアウトする
A: GETBULK が使える v2c 以降を使い、-Cr50 で取得行数を増やしてください。それでも遅い機器は、対象 OID をピンポイントの snmpget に絞る運用が良いです。
Q: 監視サーバから OID が取れるのに値が空になる
A: 取れた値が NULL なのか、表示側のフォーマット (Counter64 を 32bit で読んでいる) なのかを切り分けてください。snmpwalk -On で OID を数値表示し、snmptranslate -Td <OID> で型を確認できます。
Q: SNMPv3 の community 相当はどう設計する?
A: read-only ユーザ (監視用) と read-write ユーザ (設定変更用) を分け、authPriv 必須、認証鍵と暗号鍵は異なる値を使ってください。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?