2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2015.12.29
インフラZabbix2.4でSNMP監視設定
こんにちは、新人のRSです。
業務でネットワーク機器を監視するため、zabbixにSNMP監視を設定をしました。
SNMPという用語自体わからず、調べてみたらMIB?OID?知らない用語ばかり…という感じだったので、簡単にではありますがまとめてみます。
ルータ、スイッチなどZabbixエージェントを導入することのできないネットワーク機器のトラフィック量、CPU使用率、メモリ使用率、インタフェースのアップダウン状態等を監視することができます。
SNMP監視には、MIBツリーで定義されているオブジェクト名(文字列)、または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。
システム情報、インタフェース情報等を取得できます。
iso.org.dod.internet.mgmt.mib-2(1.3.6.1.2.1)以下がプライベート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/
監視機器のインタフェースによって割り当てられている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の最後の数字が、インタフェースに割り当てられているインデックス番号となります。
# 対象のインデックス番号を調べる --------------------------- 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 ---------------------------
snmpwalkコマンドで取得したデータを、zabbixから定期的に監視する設定を行います。
監視対象ホストのアイテムを作成します。
・監視対象ホストの作成
[設定] -> [ホスト] -> ホストの作成 で、以下の画面が表示されます。
「SNMPインタフェース」を追加します。
「bulkリクエストを利用」項目について:
bulkリクエストとは、一度のコネクションで効率よく複数のSNMPデータを取得できる。
しかし、対応していないネットワーク機器があるため、確認してON/OFFの設定を行う必要があります。
http://www.zabbix.com/img/zabconf2014_jp/presentations/13_zabconf2014_fukushima.pdf
・アイテム作成を作成
[設定] -> [ホスト] -> 該当のホストのアイテム -> アイテムの作成 で、以下の画面が表示されます。
———–(設定例)—————-
名前:任意
タイプ: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エージェントアイコンが緑に変わります。
[監視データ] -> [最新データ] -> フィルターを指定
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つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索