メニューを閉じる

テクノデジタルグループ

メニューを開く

2015.12.29

インフラ

Zabbix2.4でSNMP監視設定

こんにちは、新人のRSです。

業務でネットワーク機器を監視するため、zabbixにSNMP監視を設定をしました。
SNMPという用語自体わからず、調べてみたらMIB?OID?知らない用語ばかり…という感じだったので、簡単にではありますがまとめてみます。

■ SNMP監視とは

ルータ、スイッチなどZabbixエージェントを導入することのできないネットワーク機器のトラフィック量、CPU使用率、メモリ使用率、インタフェースのアップダウン状態等を監視することができます。

SNMP監視には、MIBツリーで定義されているオブジェクト名(文字列)、またはOID(数字)を使用します。

例:インタフェース名を取得するオブジェクト名/OID
オブジェクト名(文字列):iso.org.dod.internet.mgmt.mib2.intreface.ifTable.ifEntry.ifDescr
OID(数字):1.3.6.1.2.1.2.2.1.2

ios=1, org=3, internet=6…というように文字列に数字が割り当てられています。

MIBには、標準MIBと拡張MIB(プライベートMIB)の2種類があります。
http://www.itbook.info/network/nwope10.html

・標準MIB

どの機器にも定義されている一般的なMIB。
システム情報、インタフェース情報等を取得できます。
iso.org.dod.internet.mgmt.mib-2(1.3.6.1.2.1)以下がプライベートMIB領域。

・拡張MIB(プライベートMIB)

機器によってベンダーが定義した独自のMIB。
電源/FANのアップダウン情報等など、機器によって取得できる情報が異なります。
iso.org.dod.internet.private.enterprises(1.3.6.1.4.1)以下がプライベートMIB領域。

enterprises以下のオブジェクト名を調べるためには:
ベンダーが提供しているMIBファイルを取得する必要があります。
取得したMIBファイルを[/usr/share/snmp/mibs/]に配置することで、
snmpwalkコマンドから拡張MIBを検出することができるようになります。
http://www.lesstep.jp/step_on_board/linux/23/

■ snmpwalkコマンドでOIDを調べる

監視機器のインタフェースによって割り当てられているOIDが異なるため、機器によって調べる必要があります。
監視したいアイテムのOIDは、snmpwalkコマンドを使って調べることができます。

# net-snmp net-snmp-utilsのインストール
yum install net-snmp net-snmp-utils

# snmpdの起動
service snmpd start

# MIBの取得
snmpwalk -v [SNMPバージョン] -c [コミュニティ名] [ホストIP] <OID>
  ---------------------------
  -v [SNMPバージョン]:対象機器によって、バージョン対応が異なる場合があります。
  -c [コミュニティ名]:監視対象機器に設定する必要がある場合があります。
             監視対象機器のSNMP設定を確認してください。
  [ホストIP]:監視対象機器のIPアドレス

  例:全OID情報を取得するコマンド
  snmpwalk -v 2c -c public 127.0.0.1 . # 「.」をつけると全OIDを取得できる
  ---------------------------

 

snmpwalkで取得したOIDの最後の数字が、インタフェースに割り当てられているインデックス番号となります。

例:eth0のトラフィック量を調べたい場合
# 対象のインデックス番号を調べる
---------------------------
snmpwalk -v 2c -c public 192.168.xxx.xxx ifDescr
snmpwalk -v 2c -c public 192.168.xxx.xxx .1.3.6.1.2.1.2.2.1.2
# IF-MIB::ifDescr.1 = STRING: lo
# IF-MIB::ifDescr.2 = STRING: eth0  # eth0のインデックス番号「2」
# IF-MIB::ifDescr.3 = STRING: eth1
# IF-MIB::ifDescr.4 = STRING: eth4
---------------------------

# 「eth0」の受信した総バイト数を調べる
---------------------------
snmpwalk -v 2c -c public 192.168.xxx.xxx ifInOctets.2  # 対象のインデックス番号を指定
snmpwalk -v 2c -c public 192.168.xxx.xxx .1.3.6.1.2.1.2.2.1.10.2
# IF-MIB::ifInOctets.2 = Counter32: 4665968
---------------------------

# 「eth0」の送信した総バイト数を調べる
---------------------------
snmpwalk -v 2c -c public 192.168.xxx.xxx ifOutOctets.2
snmpwalk -v 2c -c public 192.168.xxx.xxx .1.3.6.1.2.1.2.2.1.16.2
# IF-MIB::ifOutOctets.2 = Counter32: 304859394
---------------------------

■ zabbixでSNMP監視設定

snmpwalkコマンドで取得したデータを、zabbixから定期的に監視する設定を行います。

監視対象ホストのアイテムを作成します。

例:「eth0」の受信した総バイト数のSNMP監視設定

・監視対象ホストの作成
[設定] -> [ホスト] -> ホストの作成 で、以下の画面が表示されます。
zabbix-snmp02

「SNMPインタフェース」を追加します。

「bulkリクエストを利用」項目について:
bulkリクエストとは、一度のコネクションで効率よく複数のSNMPデータを取得できる。
しかし、対応していないネットワーク機器があるため、確認してON/OFFの設定を行う必要があります。
http://www.zabbix.com/img/zabconf2014_jp/presentations/13_zabconf2014_fukushima.pdf

・アイテム作成を作成
[設定] -> [ホスト] -> 該当のホストのアイテム -> アイテムの作成 で、以下の画面が表示されます。
zabbix-snmp01
———–(設定例)—————-
名前:任意
タイプ:SNMPv2エージェント
キー:ifInOctets.2(任意)
ホストインタフェース:[ホストIP]:161
SNMP OID:.1.3.6.1.2.1.2.2.1.10.2 もしくは IF-MIB::ifInOctets..2
SNMPコミュニティ:public(対象機器の設定による)
他の項目は任意で設定
————————————-

上記の設定を行ったあと、数分待つとSNMPエージェントアイコンが緑に変わります。
zabbix-snmp03

[監視データ] -> [最新データ] -> フィルターを指定
SNMPでデータが取得できていることが確認できます。

■ Template SNMP

Zabbixのテンプレートには、ローレベルディスカバリを用いたSNMP監視ができる便利なテンプレートが用意されています。
ローレベルディスカバリについては以下のサイトにとてもわかりやすく記述されています。
http://pocketstudio.jp/log3/2013/07/08/howto-zabbix-low-level-discovery/

・Template SNMP Interfaces:インタフェース監視
・Template SNMP Disks:ディスク監視
・Template SNMP Generic:システム監視

上記テンプレートを使えば、一つ一つアイテムを追加しなくても簡単に監視を行うことができます。

===
以上が、zabbixでSNMP監視設定方法でした。
はじめて技術ブログかいたので至らないところもあるかと思いますが、参考になればと思います。
来年もよろしくお願いします!


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事