UNIX/SNMP

コマンド

Solaris は /usr/sfw/binディレクトリ以下に格納されている。Linuxは net-snmp-utils パッケージをインストールすることで利用可能

コマンド説明
snmpbulkgetSNMP GETBULK要求を使ってネットワークエントリと通信
snmpbulkwalkSNMP GETBULK要求を使ってネットワークエントリと通信
snmpconfSNMP の設定ファイルを作成、修正
snmpgetSNMP GET要求を使ってネットワークエントリと通信
snmpgetnextSNMP GETNEXT要求を使ってネットワークエントリと通信
snmpwalkSNMP GETNEXT要求を使ってネットワークエントリと通信。
OIDを指定したツリー以下の情報を一括で取得可能
snmptrapSNMP trap を指定したホストへ送信
snmpset指定された値をオブジェクト ID に書き込む(snmpgetが読み取りに対してsetは書き込み)
snmpdfディスク使用量の一覧取得
snmpnetstatネットワークステータスの確認
snmpdelta整数値のOIDを監視し、時間経過による変化を報告
snmpstatusネットワークエントリから統計情報を取得
snmptableSNMPテーブルの情報を表形式で表示
snmptest任意のMIBオブジェクトに対してGet、GetNext、Setを実行
snmptranslateMIBシンボル名と、OIDの整数値表示を変換する

snmpget

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
オプション説明
-a 認証方式SNMPv3の認証方法(MD5またはSHA)を設定
-A パスワードSNMPv3における認証パスワード指定
-c コミュニティ名SNMPv1、SNMPv2cにおけるコミュニティ名を指定
-l セキュリティレベルSNMPv3において用いるセキュリティレベル。
noAuthNoPriv(認証も暗号化もしない)、authNoPriv(認証するが暗号化はしない)、authPriv(認証も暗号化もする)
-x 暗号化プロトコルセキュリティレベルがauthPrivである場合に用いる暗号化プロトコル(DESかAES)
-X 暗号化パスワードセキュリティレベルがauthPrivである場合に用いる暗号化パスワード
-v バージョン番号SNMPバーションを指定する。「1」「2c」「3」のいずれか
-O 表示オプション-On(OIDで出力する)や-Os(MIDシンボルで表示する)など

snmptrap

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

snmpset [オプション] ホスト名 { OID | MIBシンボル } 型 値

説明
uUNSIGNED
sSTRING
xHEX STRING
dDECIMAL STRING
nNULLOBJ
oOBJID
tTIMETICKS
aIPADDRESS
bBITS


MIB

MIB情報は、分野別に分けられたツリー構造となっているが、よく利用されるのは MIB-II と UCD-SNMP。

MIB-II(1.3.6.1.2.1)

名称OID説明
system1.3.6.1.2.1.1システム名、場所、提供するサービス、稼働時間など
interfaces1.3.6.1.2.1.2インタフェースの情報
at1.3.6.1.2.1.3アドレス変換情報
ip1.3.6.1.2.1.4IPに関する情報
icmp1.3.6.1.2.1.5ICMPに関する情報
tcp1.3.6.1.2.1.6TCPコネクションに関する情報
udp1.3.6.1.2.1.7UDPコネクションに関する情報
egp1.3.6.1.2.1.8EGP
transmission1.3.6.1.2.1.10変換タイプを定義するグループ
snmp1.3.6.1.2.1.11SNMP自身に関する情報

UCD-SNMP(1.3.6.1.4.1.2021)

名称OID説明
mem.XXX1.3.6.1.4.1.2021.4.xメモリに関する情報
ss.XXX1.3.6.1.4.1.2021.11.xCPUやI/Oなどのシステムステータス情報
version.XXX1.3.6.1.4.1.2021.100.xバージョン情報や再起動などの指示
snmperr.XXX1.3.6.1.4.1.2021.101.xSNMPエラー情報
prTable1.3.6.1.4.1.2021.2プロセス情報
extTable1.3.6.1.4.1.2021.8プロセスが異常を来したときに実行するコマンド一覧
dskTable1.3.6.1.4.1.2021.9パーティション単位のディスク情報
laTable1.3.6.1.4.1.2021.10ロードアベレージ情報
fileTable1.3.6.1.4.1.2021.15ファイルの監視情報
logMatchTable1.3.6.1.4.1.2021.16ログ監視情報
mrTable1.3.6.1.4.1.2021.102登録されているMIBモジュール名一覧


SNMP設定ファイル

/etc/sma/snmp/snmpd.conf

SNMPトラップ送信設定

trapsink 送信先サーバ  コミュニティ名  ポート番号(通常は162)
/etc/init.d/snmpd restart

SNMPv1/SNMPv2cのコミュニティ設定

rocommunity コミュニティ名 適用するネットワーク範囲 OID
rwcommunity コミュニティ名 適用するネットワーク範囲 OID
ネットワーク範囲は192.168.11.0/24 や localhostのように指定。
OIDを指定すると、指定したツリー以降にのみ適用するようになる。

SNMPv3でのユーザー設定

rouser ユーザー名 { noauth | auth | priv }
rwuser ユーザー名 { noauth | auth | priv }

オプション説明
noauth認証しなくてもよい。パスワードは不要でコミュニティ名が一致すれば使用可能
authパスワード認証するが暗号化しない
privパスワード認証及び暗号化を行う

パスワード設定

パスワードはUSMと呼ばれるMIB領域に別途作成する必要がある。
/var/net-snmp/smnpd.conf に以下を追加する。

createUser ユーザー名 認証種別 認証パスワード 暗号化種別 暗号化パスワード

閾値の判定

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定義ファイル

  • 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

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-08-31 (木) 22:33:04 (107d)