*[[UNIX]]/SNMP [#b6dc3703] #contents **コマンド [#s5d04329] Solaris は /usr/sfw/binディレクトリ以下に格納されている。Linuxは net-snmp-utils パッケージをインストールすることで利用可能 |BGCOLOR(#f0f8ff):コマンド|BGCOLOR(#f0f8ff):説明| |snmpbulkget|SNMP GETBULK要求を使ってネットワークエントリと通信| |snmpbulkwalk|SNMP GETBULK要求を使ってネットワークエントリと通信| |snmpconf|SNMP の設定ファイルを作成、修正| |[[snmpget>#mb6d4058]]|SNMP GET要求を使ってネットワークエントリと通信| |snmpgetnext|SNMP GETNEXT要求を使ってネットワークエントリと通信| |snmpwalk|SNMP GETNEXT要求を使ってネットワークエントリと通信。&br;OIDを指定したツリー以下の情報を一括で取得可能| |[[snmptrap>#s8a8ef3c]]|SNMP trap を指定したホストへ送信| |[[snmpset>#ccfcd98f]]|指定された値をオブジェクト ID に書き込む(snmpgetが読み取りに対してsetは書き込み)| |snmpdf|ディスク使用量の一覧取得| |snmpnetstat|ネットワークステータスの確認| |snmpdelta|整数値のOIDを監視し、時間経過による変化を報告| |snmpstatus|ネットワークエントリから統計情報を取得| |snmptable|SNMPテーブルの情報を表形式で表示| |snmptest|任意のMIBオブジェクトに対してGet、GetNext、Setを実行| |snmptranslate|MIBシンボル名と、OIDの整数値表示を変換する| ***snmpget [#mb6d4058] snmpget [オプション] ホスト名 { OID | MIBシンボル } # /usr/sfw/bin/snmpget -v 1 -c public localhost .1.3.6.1.2.1.1.1 SNMPv2-MIB::sysDescr.0 = STRING: SunOS Solaris10 5.10 Generic_137138-09 i86pc |BGCOLOR(#f0f8ff):オプション|BGCOLOR(#f0f8ff):説明| |-a 認証方式|SNMPv3の認証方法(MD5またはSHA)を設定| |-A パスワード|SNMPv3における認証パスワード指定| |-c コミュニティ名|SNMPv1、SNMPv2cにおけるコミュニティ名を指定| |-l セキュリティレベル|SNMPv3において用いるセキュリティレベル。&br;noAuthNoPriv(認証も暗号化もしない)、authNoPriv(認証するが暗号化はしない)、authPriv(認証も暗号化もする)| |-x 暗号化プロトコル|セキュリティレベルがauthPrivである場合に用いる暗号化プロトコル(DESかAES)| |-X 暗号化パスワード|セキュリティレベルがauthPrivである場合に用いる暗号化パスワード| |-v バージョン番号|SNMPバーションを指定する。「1」「2c」「3」のいずれか| |-O 表示オプション|-On(OIDで出力する)や-Os(MIDシンボルで表示する)など| ***snmptrap [#s8a8ef3c] snmptrap -v 1 -c public <送信先IP> '' <送信元IP> 0 9 '' netSnmpExperimental.1 s "TEST" メッセージ:coldStart netSnmpExperimental.1 = STRING: "TEST" snmptrap -v {2c|3} -c public 192.168.11.2 '' .1.3.6.1.6.3.1.1.5.3 1.3.6.1.4.1.3.1.1 s "TEST" メッセージ:OID: linkDown linkUp = STRING: "TEST" -- シングルクォート2つはuptimeが入る。空にすると現在時刻がそのまま入る -- 1.3.6.1.4.1.3.1.1 は DESCRIPTION で s は STRING型 で文字列も一緒に飛ばしている ***snmpset [#ccfcd98f] snmpset [オプション] ホスト名 { OID | MIBシンボル } 型 値 |BGCOLOR(#f0f8ff):型|BGCOLOR(#f0f8ff):説明| |u|UNSIGNED| |s|STRING| |x|HEX STRING| |d|DECIMAL STRING| |n|NULLOBJ| |o|OBJID| |t|TIMETICKS| |a|IPADDRESS| |b|BITS| ~ **MIB [#lb7a115f] MIB情報は、分野別に分けられたツリー構造となっているが、よく利用されるのは [[MIB-II>http://tools.ietf.org/html/rfc1213]] と UCD-SNMP。 ***MIB-II(1.3.6.1.2.1) [#gceabf8d] |BGCOLOR(#f0f8ff):名称|BGCOLOR(#f0f8ff):OID|BGCOLOR(#f0f8ff):説明| |system|1.3.6.1.2.1.1|システム名、場所、提供するサービス、稼働時間など| |interfaces|1.3.6.1.2.1.2|インタフェースの情報| |at|1.3.6.1.2.1.3|アドレス変換情報| |ip|1.3.6.1.2.1.4|IPに関する情報| |icmp|1.3.6.1.2.1.5|ICMPに関する情報| |tcp|1.3.6.1.2.1.6|TCPコネクションに関する情報| |udp|1.3.6.1.2.1.7|UDPコネクションに関する情報| |egp|1.3.6.1.2.1.8|EGP| |transmission|1.3.6.1.2.1.10|変換タイプを定義するグループ| |snmp|1.3.6.1.2.1.11|SNMP自身に関する情報| ***UCD-SNMP(1.3.6.1.4.1.2021) [#gceabf8d] |BGCOLOR(#f0f8ff):名称|BGCOLOR(#f0f8ff):OID|BGCOLOR(#f0f8ff):説明| |mem.XXX|1.3.6.1.4.1.2021.4.x|メモリに関する情報| |ss.XXX|1.3.6.1.4.1.2021.11.x|CPUやI/Oなどのシステムステータス情報| |version.XXX|1.3.6.1.4.1.2021.100.x|バージョン情報や再起動などの指示| |snmperr.XXX|1.3.6.1.4.1.2021.101.x|SNMPエラー情報| |prTable|1.3.6.1.4.1.2021.2|プロセス情報| |extTable|1.3.6.1.4.1.2021.8|プロセスが異常を来したときに実行するコマンド一覧| |dskTable|1.3.6.1.4.1.2021.9|パーティション単位のディスク情報| |laTable|1.3.6.1.4.1.2021.10|ロードアベレージ情報| |fileTable|1.3.6.1.4.1.2021.15|ファイルの監視情報| |logMatchTable|1.3.6.1.4.1.2021.16|ログ監視情報| |mrTable|1.3.6.1.4.1.2021.102|登録されているMIBモジュール名一覧| ~ **SNMP設定ファイル [#p0d2a01e] /etc/sma/snmp/snmpd.conf /etc/snmp/snmpd.conf ***SNMPトラップ送信設定 [#b496112f] trapsink 送信先サーバ コミュニティ名 ポート番号(通常は162) /etc/init.d/snmpd restart ***SNMPv1/SNMPv2cのコミュニティ設定 [#nf365b4f] rocommunity コミュニティ名 適用するネットワーク範囲 OID~ rwcommunity コミュニティ名 適用するネットワーク範囲 OID~ ネットワーク範囲は192.168.11.0/24 や localhostのように指定。~ OIDを指定すると、指定したツリー以降にのみ適用するようになる。 ~ ***SNMPv3でのユーザー設定 [#i370492f] rouser ユーザー名 { noauth | auth | priv }~ rwuser ユーザー名 { noauth | auth | priv }~ |BGCOLOR(#f0f8ff):オプション|BGCOLOR(#f0f8ff):説明| |noauth|認証しなくてもよい。パスワードは不要でコミュニティ名が一致すれば使用可能| |auth|パスワード認証するが暗号化しない| |priv|パスワード認証及び暗号化を行う| ***パスワード設定 [#i9a5fda7] パスワードはUSMと呼ばれるMIB領域に別途作成する必要がある。~ /var/net-snmp/smnpd.conf に以下を追加する。~ createUser ユーザー名 認証種別 認証パスワード 暗号化種別 暗号化パスワード ***閾値の判定 [#e51bf443] proc プロセス名 [最小値] [最大値] 監視するプロセスが最小値を下回った、または最大値を上回った場合、~ prTableの「procErrorFlag.INDEX番号」が1になる。 procfix プロセス名 コマンド 引数 SNMP経由で値が設定された時に呼び出したいコマンドを記述する disk マウントディレクトリ [最小値(KB or %)] 最小値(省略時は100kb)を下回った時、dskTableの「dskErrorFlag.INDEX番号」が1になる。 load 1分の閾値 [5分] [15分] 閾値を超えた時、laTableの「laErrorFlag.n」が1になる。~ nは1〜3でそれぞれ1分、5分、15分の閾値。 ~ **MIB定義ファイル [#oa938ace] -v2の定義 MIB名 DEFINTIONS ::= BEGIN IMPORTS 定義1, 定義2 FROM 定義1,2が定義されてる拡張MIB名 定義名 MODULE-IDENTITY ::= { enterprises 999 } -- enterprises は 1.3.6.1.4.1 なので、ここで定義したものは、1.3.6.1.4.1.999 定義名 NOTIFICATION-TYPE -- SNMPトラップ通知を定義。v1の場合は、TRAP-TYPE OBJECTS { -- OBJECTS を定義すると、追加で定義されたSNMPトラップも送信される 定義名, 定義名 } STATUS current DESCRIPTION "説明" :: = { OID } END -v1の定義 定義名 TRAP-TYPE ENTERPRISE 親のOID VARIABLES { 定義名,[定義名] } -- v2のOBJECTSと同じ DESCRIPTION "説明" ::= OID -参考URL~ --[[SNMPv2形式の拡張MIBファイルの基本的な文法>http://software.fujitsu.com/jp/manual/manualfiles/M090045/J2X12071/05Z200/J2071-00-07-10-00.html]] --[[Global OID reference database>http://oidref.com/]]