Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Syslog トラップ用のカスタマイズされた SNMP Mib

 

SNMP syslog トラップは、リモートの SNMP 対応デバイスから中央のコレクターに送信されるアラートメッセージで、コンポーネントに障害が発生した場合や、重要なリソースに構成できない制限がある場合に通知されます。この情報は、管理情報ベース (MIB) で取得されます。ジュニパーネットワークスのエンタープライズ固有のシステムログ MIB により、重要なシステムログメッセージが発生した場合に、SNMP トラップベースのアプリケーションの通知が可能になります。MIB は、syslog エントリを汎用の jnxSyslogTrap OID にマッピングするように定義されています。

JnxSyslogTrap OID は、syslog で生成されたログを基にしたトラップです。イベントプロセス (eventd) は、syslog を監視し、syslog のイベントraise-trapポリシー設定文に基づいて、すべての syslog イベントを1つの汎用的な syslog 定義トラップ MIB に送信します。これは、jnxSyslogTrap になります。

1つのジェネリック MIB OID は、同じ OID を持つアラームと区別することができないため、特定のイベントを検出するために syslog トラップ OID 値を処理したいと考えているお客様には不便です。しかし Junos OS リリース 18.3 R1 では、カスタム OID を特定のログにマッピングし、デバイス上に動的に読み込むことができます。

この機能のメリットは、さまざまなタイプの syslog イベントに特定の Oid を割り当てる方法があるため、さまざまな syslog イベントを効率的に監視できるようになったためです。

カスタム SNMP Mib の概要

Syslog トラップ用のカスタム SNMP MIB を作成するには、以下のタスクを完了する必要があります。

  • カスタム MIB を作成します。

  • MIB ファイルを YANG 形式に変換し、YANG ファイルをデバイスにコピーします。

  • YANG ファイルをデバイスにロードします。

以下のセクションでは、これらの手順の概要を説明します。

MIB ファイルを書き込む

特定のログとカスタム OID をマッピングする前に、カスタム MIB を作成する必要があります。コリジョンを回避するには、で表 1示されている予約ルートの下で、MIB オブジェクトとトラップのみを定義する必要があります。

表 1: カスタム MIB モジュール用のルートの MIB

ディレクトリ

説明

ドーナツ

.iso.org.dod.internet.private.enterprises.juniperMIB.jnxMibs.jnxCustomMibRoot

カスタム MIB モジュール

.1.3.6.1.4.1.2636.3.86

.iso.org.dod.internet.private.enterprises.juniperMIB.jnxTraps.jnxCustomSyslogNotifications

カスタムトラップ通知

.1.3.6.1.4.1.2636.4.30

YANG ファイルへの変換

MIB の定義をデバイスに読み込む前に、MIB ファイルを YANG 形式に変換する必要があります。MIB ファイルを YANG に変換するには、smidump v 0.5.0 ツールを使用することをお勧めします。Smidump ツールは、お使いのラップトップにインストールできるオープンソースアプリケーションです ( https://www.ibr.cs.tu-bs.de/projects/libsmi/smidump.htmlを参照)。

ファイルが YANG 形式になったら、デバイスにコピーする必要があります。その後、CLI コマンドを使用して、を SNMP プロセス (snmpd) に読み込みます。その後、対応する JSON ファイルが生成され、snmpd を解析して、OID 階層のデータベースを構築します。不明なタグが見つかった場合、snmpd は適切なエラーメッセージを返します。

YANG ファイルの管理に使用する CLI コマンド

YANG モジュールを snmpd にロードするには、 snmp次のrequest system yang addコマンドとともにオプションを使用します。

yang-filenameは、絶対パスが含まれています。

このrequest system yang addコマンドを実行するためには、スーパーユーザーアクセスが必要です。

デバイス上の YANG ファイルを管理するためのその他のコマンドは2つあります。show system yang packageand request system yang delete.

Syslog トラップ用のカスタム MIB の定義

この手順では、次の例のファイルを使用します。

本書に記載されている例を参照して YANG を手動で記述することもできますが、smidump ツール v 0.5.0 を使用して、MIB を YANG 形式に変換することをお勧めします。

Syslog トラップ用のカスタム MIB を定義するには、次のようにします。

  1. MIB をネットワーク管理システム (NMS) にロードし、エラーが発生していないかどうかを確認します。
  2. Smidump ツールは、以下のコマンドを使用しdependency-mibinput-custom-mib-file呼び出すことYANG-MODULE-NAMEができます。ここで、とは、特定のファイル名の変数です。

    たとえば、以下のように記述します。

    出力として、変換された YANG ファイルを取得します。JUNIPER-EXAMPLE-CUSTOM-SYSLOG-MIB.yang.

    入力カスタム MIB ファイルmib-jnx-example-custom-syslog.txtは、SNMPV2、ジュニパーネットワークス-smi、および IF MIB に依存していることに注意してください。しかし、SNMPv2 は標準の Mib であるため、その定義は smidump にすでに存在し MIB ています。そのため、唯一必要となる唯一のmib-jnx-smi.txt従属 MIB ファイルは、モジュールジュニパーネットワークスを定義しています。

  3. デバイスの任意JUNIPER-EXAMPLE-CUSTOM-SYSLOG-MIB.yangのパスにファイルをコピーし、以下のパスのデバイスにすべての依存 YANG ファイルをコピーします。/opt/lib/python2.7/site-packages/pyang/modules

    すべての依存する Mib を YANG ファイルに変換して、これらをデバイスにコピーする必要があります。

    以下は、YANG モジュールに変換された標準 Mib の一部と、上記のパスに記載さ IANAifType-MIB.yangietf-yang-types.yangietf-inet-types.yangいるIF-MIB.yangものJUNIPER-SMI.yangですSNMPv2-TC.yang。、、、、、、

  4. CLI を使用して、YANG モジュールを snmpd にロードするには、次のコマンドを使用します。

    たとえば、以下のように記述します。

    YANG モジュールは JSON 形式に変換され、内部データベースの解析と作成のために snmpd に向かいます。

  5. 新しく追加されたトラップ定義を使用して、syslog に基づいてトラップを検証するには、トラップをスプーフします (模倣します)。これは、CLI またはイベントポリシーを使用して実行できます。以下に、CLI を使用してトラップをスプーフィングする例を示します。イベントポリシーの使用例については、Example Custom Syslog Trapを参照してください。
    user@host> request snmp spoof-trap jnxExampleSyslogTrap?
    user@host> request snmp spoof-trap jnxExampleSyslogTrap1

mib-jnx-example-custom-syslog.txt

JUNIPER-EXAMPLE-CUSTOM-SYSLOG-MIB.yang

カスタム SNMP トラップを使用する際の制限事項

頻繁に発生する syslogs のためにトラップをトリガーし’ないように、イベントスクリプトを作成するように注意してください。この手法により、デバイスに負荷をかけることを回避できます。

アクセスタイプを持つオブジェクトを追加した場合 readonlyまたは readwritesnmpget や snmpwalk などの snmp ポーリング操作では、そのオブジェクトをポーリングすることはできません。アクセスタイプとして扱われます。 notifyonly。これは、この機能がデバイスに動的トラップ OID 定義を追加して、ユーザーが各 syslog 用のカスタムトラップを送信できるようにするためです。アクセスタイプ readonlyおよび readwriteは snmp ポーリング用です。 notifyonlyトラップ用です。

カスタム Mib では、カスタムテーブルの定義はサポートされていません。Varbind として table オブジェクトを持つトラップを送信する場合は、カスタム MIB にカスタムテーブルを定義するのではなく、Junos Mib で定義済みのテーブルを使用してください。

YANG ファイルは、すべてのシャーシノードとルーティングエンジンに個別に読み込む必要があります。このrequest system yang addコマンドを実行しても、バックアップルーティングエンジンに自動的にコピーされるわけではありません。

カスタム Syslog トラップの例

このカスタム syslog トラップの例は、以下のいずれかが発生した場合に、演算子がトラップを受信することを希望するユースケースを示しています。

  • ユーザーが CLI で設定モードに入ります (イベント定義 ui_dbase_login_event)まで

  • ユーザーがコミット (イベントとして定義 ui_commit)まで

カスタム syslog トラップ機能がサポートされていない場合、これを実現するには、jnxSyslogTrap を使用する必要があります。これには、両方のイベントに対して固定 OID が設定されています。カスタム syslog トラップ機能を使用すると、カスタム定義の Oid を備えたトラップを生成できます。

カスタム syslog トラップを定義するには、次のようにします。

  1. 用意されmib-jnx-example-custom-syslog-txtているサンプルファイルサンプル MIB ファイル(を参照) をJUNIPER-EXAMPLE-CUSTOM-SYSLOIG-MIB.yang使用しYANG 変換ファイルのサンプルて、変換します (を参照)。
  2. YANG ファイルをデバイスにコピーします。
  3. SNMP YANG ファイルをロードします。
    root@host> request system yang add snmp package p1 module ~/JUNIPER-EXAMPLE-CUSTOM-SYSLOG-MIB.yang
  4. Slax スクリプト (を参照slax 甘いスクリプト cutom_trap (/var/db/scripts/event)) を/var/db/scripts/eventコピーして、トラップをスプーフィングします。

    Ui_dbase_login_event については、username varbind を持つ enteredConfigMode トラップを構成します。

    Ui_commit では、configCommitted トラップを構成して、username コマンドに3つの varbinds というコメントを設定します。

  5. トラップの設定:
  6. Snmpd traceoptions を有効にし、トラップターゲットを使用して、送信されたトラップを検証します。
  7. トラップが動作していることを確認します。

サンプル MIB ファイル

YANG 変換ファイルのサンプル

slax 甘いスクリプト cutom_trap (/var/db/scripts/event)