個人用ツール

Pandora:Documentation ja:SNMP traps Monitoring

提供: Pandora FMS Wiki JP

移動先: 案内, 検索

Pandora FMS ドキュメント一覧に戻る

目次

SNMP トラップの操作

概要

Network devices that support SNMP, such as switches, routers, servers, printers, or APs can send alarms (or SNMP traps) when certain events take place, such as interface failure, too hight CPU or network load, a UPS changing status or a filled up disk partition. Each device has its own "collection" of possible events, which is reflected in a collection, called MIB, in this case, different from the MIB used to query the device.

スイッチ、ルータ、サーバ、プリンタ、AP など、SNMP をサポートするネットワークデバイスは、インターフェイスの障害、CPU またはネットワークの負荷が高すぎたり、UPS の状態が変化したり、ディスクの障害が発生したときなどに、アラーム(SNMP トラップ)を送信することができます。各デバイスには、可能なイベントの独自のコレクションがあり、これは MIB と呼ばれます。この場合、デバイスのポーリングに使用する MIB とは異なります。

ファイル:Trap-example.png

Pandora FMS features a TRAP Reception Console which allows TRAPs that were sent by monitored objects to be displayed and add alerts to said traps. SNMP traps are received by the operating system's daemon which starts the SNMP Server of Pandora FMS at the same time of the server startup. This server stores received traps in a log file under

Pandora FMS には、モニタリング対象から送られてくるトラップを表示するトラップ受信コンソールがあり、また、トラップに対してアラートを設定することができます。SNMP トラップは、Pandora FMS の起動時に起動される、OS の SNMP サーバデーモンで受け取ります。このサーバは通常ログファイルを以下に保存します。

/var/log/pandora /pandora_snmptrap.log

Traps are usually received in RAW format. Regarding numerical OIDs, that means that unless an MIB is installed on the Operating System that is capable of resolving them, Pandora FMS Enterprise SNMP Console enables rule creation for renaming numeric OIDs to alphanumeric ones or simple descriptive text strings (e.g. 'interface is down'), in order to make working with TRAPs more intuitive. Pandora FMS allows loading trap MIBs of any sort in order to automatically define such rules.

トラップは、常に生データで受信されます。つまり、数値 OID で受信します。ただし、OS に MIB ファイルがインストールされている場合は、文字に変換することができます。エンタープライズ版の Pandora FMS の SNMP コンソールでは、トラップをより認識しやすいように、OID を数値や文字で表したり、何らかの説明をつけたりする ("インターフェースダウン" など) ためのルールを設定できます。このようなルールを自動的に定義するために、Pandora FMS はトラップのベンダ MIB を読み込むことができます。

First, modify the following parameter in /etc/pandora/pandora_server.conf to enable the SNMP Console:

最初に、SNMP コンソールを有効化するためには /etc/pandora/pandora_server.conf 内の以下のパラメータを編集する必要があります。

snmpconsole 1

If you want the traps to be translated (either the variable bindings or the Enterprise string), please enable the following options too (only Enterprise):

トラップを文字列変換したい場合(変数のバインディングまたは Enterprise 文字列のいずれか)は、次のオプションも有効化します(Enterpriase 版のみ)。

translate_variable_bindings 1
translate_enterprise_strings 1

Also, set up the /etc/snmp/snmptrapd.conf file with the appropriate parameters. For instance:

また、/etc/snmp/snmptrapd.conf ファイルを必要なパラメータで設定する必要があります。 例:

authCommunity log public
disableAuthorization yes

As for this configuration, traps will be created for the "public" community and will not need any authorization.

この設定では、コミュニティ "public"、認証無しでトラップを受け付けます。

SNMPv3

SNMPv3 traps are rejected unless the sending user is added to /etc/snmp/snmptrapd.conf using the createUser directive. For example:

SNMPv3 トラップは、送信ユーザが createUser ディレクティブを用いて /etc/snmp/snmptrapd.conf に追加されていないと受信を拒否します。例を以下に示します。

disableAuthorization yes
createUser -e 0x0102030405 snmpv3user SHA mypassword AES

Template warning.png

The engineID must be specified with the -e option. Otherwise, only SNMPv3 INFORMs will be received.


Template warning.png

engineID は、-e オプションと共に指定する必要があります。そうしないと、SNMPv3 INFORM のみを受信します。


トラップ受信コンソールへのアクセス

To use the trap reception console, please go to Monitoring > SNMP > SNMP Console, where you may take a look at the list of TRAPs which have been received so far. There is an eye-shaped icon which displays all the trap information. You're able to learn all detailed information regarding SNMP traps here.

トラップコンソールへアクセスするには、モニタリング(Monitoring) > SNMP > SNMP コンソール(SNMP Console) をクリックします。受信したトラップ一覧が表示されます。全トラップ情報を表示することができるアイコン(目)があります。ここで、SNMP トラップの詳細を見ることができます。



For each trap, the following columns are going to be displayed:

それぞれのトラップで、次のカラムが表示されます。

Status

状態(Status)

A green box appears if the trap is validated. It turns red if not.

承諾されたトラップは緑の四角で、そうでないものが赤の四角です。

SNMP Agent

SNMPエージェント(SNMP Agent)

The Agent which has sent the trap.

トラップを送信したエージェントです。

OID

OID

The OID of the sent trap. A trap can only send one piece of data in this field.

トラップの OID です。トラップは、このフィールドでは 1つのデータのみ送信できます。

Value

値(Value)

The value field of the sent trap. A trap can only send one piece of data in this field.

トラップの値です。トラップは、このフィールドでは 1つのデータのみ送信できます。

Custom OID, Custom Value

カスタム OID (Custom OID), カスタム値 (Custom Value)

The customized fields, sent within the trap. They sometimes consist of very complex data which bears a specific logic, which sends the trap. A trap is able to send several types of data in this field.

トラップで送信されるカスタムフィールドです。これは、トラップを送るデバイスに依存した特別なロジックで複雑なデータになることがあります。トラップはこのフィールドを使って複数のデータを送ることができます。

Time Stamp

タイムスタンプ(Time Stamp)

The elapsed time since the trap reception.

トラップを受信した時間です。

Alert

アラート(Alert)

A yellow box appears if any alert was launched by this trap. It's gray if no alert was launched.

アラート通知をしたトラップは黄色、そうでないものはグレーです。

Action

アクション(Action)

The field for deleting or validating the trap.

トラップを削除したり承諾するフィールドです。

Traps also bear the following colors, depending on the type:

トラップのタイプによって異なる色で表示されます。

  • Blue: Maintenance traps.
  • Purple: Information traps.
  • Green: 'normal' traps.
  • Yellow: 'warning' traps.
  • Red: 'critical' traps.
  • 青: メンテナンストラップ
  • 紫: 情報トラップ
  • 緑: 正常トラップ
  • 黄: 警告トラップ
  • 赤: 障害トラップ

In the upper part of the trap console, the option named 'Toggle Filter' is displayed. By clicking on that option, the trap's filtering field options appear or disappear.

トラップコンソールの上部に、'フィルタ設定(Toggle Filter)' というオプションが表示されています。これをクリックすると、トラップフィルタリングフィールドのオプションが表示されたり隠れたりします。


Alert.png


トラップの承諾

In order to effectively manage the traps it's possible to validate them, so the Administrator is able to distinguish between pending traps and the ones already seen.

効果的にトラップを管理するために、トラップを承諾する操作が可能です。これにより、管理者は、すでに確認したトラップであるのか、そうでないのかを識別することができます。

To validate a trap, click on the green circle to the left of the trap. It is also possible to validate multiple traps by marking them and clicking on the "validate" button. The procedure is similar to how events work in Pandora FMS.

トラップを承諾するためには、トラップの右にある緑の丸いボタンをクリックします。複数のトラップをマークして "承諾(validate)" ボタンをクリックすることにより、複数のトラップを承諾することもできます。Pandora FMS のイベントと似ています。



トラップの削除

It is possible to delete traps once they have been edited, either individually or by multiple selection and the "Delete"action. To prevent traps from accumulating, there is a default setting option that automatically deletes traps older than 10 days.

個別に、または複数の選択と「削除」アクションによって、編集後のトラップを削除することができます。 トラップが蓄積されないようにするため、10日以上経過したトラップを自動的に削除するデフォルト設定オプションがあります。



SNMP トラップアラート

概要

Pandora FMS also has an alert system for the SNMP traps that it receives. They are mainly based on filtering rules, searching for matches in all possible fields according to rules that we set up to trigger the alert. Before reading on, bear in mind you should can know more about Pandora's alerts [1]

Pandora FMS には、受信する SNMP トラップのアラートシステムもあります。 それらは主にフィルタリングルールに基づいており、アラートを発報するように設定したルールに従って、すべてのフィールドで条件に一致するものを検索します。 この章を読む前に、Pandora のアラートに関しても確認してください。[2]

アラートの作成

SNMP traps alerts have several fields that will be used to search for matches in SNMP traps received in the console. You can optionally use any fields you want to create more general or more specific rules as required:

SNMP トラップアラートには、コンソールで受信した SNMP トラップがアラート条件にマッチするかを検索するために使用されるいくつかのフィールドがあります。 オプションで、必要に応じて、より一般的なルールやより具体的なルールを作成するフィールドを使用することができます。



  • Description: A combo box for an alert description.
  • 説明(Description): アラートの説明です。
  • Enterprise String: The main OID of the trap. It will look for the presence of the string. For example, if you're looking for a piece of the OID, we can use 1.21.34.2.3 and every OID that contains that one will be filtered, in a similar way of *1.21.34.2.3.* But there is NO need to use the * character.
  • Enterprise 文字列(Enterprise String): トラップのメイン OID です。 文字列を検索します。 たとえば、OID の一部を検索するならば、1.21.34.2.3 という表現が利用でき、それを含むすべての OID をフィルタリングすることができます。同様に、*1.21.34.2.3.* も可能です。ただし、* 文字を使用する必要はありません。
  • Custom Value / OID: This element is going to search within the trap's 'value', 'custom OID', 'custom value' and in the rest of the TRAP fields. Regular expressions are also supported here. For example, if we have a trap that sends the "Testing TRAP 225" string, we can search for any trap with the subchain "Testing TRAP" with the regular expression "Testing. *TRAP.*"
  • カスタム値/OID(Custom Value/OID): トラップのその他フィールドである、"Value" フィールドおよび、"Custom OID"、"Custom Value" フィールドを検索します。たとえば、"Testing TRAP 225" という文字列を送信するトラップがある場合、"Testing.*TRAP.*" という正規表現で "Testing TRAP" を検索できます。
  • SNMP Agent: The agent's IP which has sent the trap. You're able to use a regular expression or a substring here, too.
  • SNMP エージェント(SNMP Agent):トラップを送信するエージェントの IP です。同様に、正規表現や文字列検索が使えます。
  • Trap type: The filter by trap type. Accepted values are 'cold start', 'warm start', 'link down', 'link up', 'authentication failure' or 'other'. Most of the generated traps are usually "Other" type; if we don't specify anything, it will look for any type of trap.
  • トラップタイプ(Trap type): Cold Start, Warm start, Link down, Link up, Authentication failuer, other などのトラップタイプによるフィルタです。何も指定しなければ、トラップは通常 "Other" タイプとなり、任意のタイプが検索されます。
  • Single value: It filters by trap value. In this example, it's .666. Please keep in mind this refers only to the MAIN OID value, not to any additional OIDs within the custom data section.
  • 単一値(Single value): トラップの値によるフィルタです。この例では、.666 で、MAIN OID の値のみ参照し、カスタムデータの追加 OID は参照しないことに注意してください。
  • Variable bindings/Data #1-20: These are regular expressions which try to match the binding variables from '1' to '20'. If there is a match, the alert is fired. The value of the variable is stored in the corresponding '_snmp_fx_' macro (e.g. _snmp_f1_, _snmp_f2_, etc.). Although only twenty binding variables are able to search for matches, the _snmp_fx_ macros are set for all of them (_snmp_f11_, _snmp_f12_, etc.).
  • バインド変数/データ #1-20(Variable bindings/Data #1-20): マッチする正規表現で、1 から 20 まであります。マッチすると、アラートが発報されます。設定した値は、_snmp_fx_ マクロ(_snmp_f1_, _snmp_f2_,...)で利用できます。マッチング対象として利用できるのは最初の 20変数のみですが、マクロにはいくつでも(_snmp_f11_, _snmp_f12_, ...)指定できます。



  • Field 1: Field to set the Field 1 alarm command parameter. This is the field that will be used in the case of choosing to generate an event, or the destination mail in the case of choosing an email action (if we want to overwrite the default email in the action). To fully understand how custom fields work in actions/alerts templates, read the documentation chapter that explains the alerts in Pandora FMS [3]
  • フィールド1(Field 1): アラートのコマンドパラメータに指定するフィールド1です。このフィールドは、イベントの生成を選択した場合に使用されるか、メールアクションを選択した場合の宛先に使われます(アクションのデフォルトのメールの宛先を上書きする場合)。 アクション/アラートテンプレートでのカスタムフィールドの動作を完全に理解するには、Pandora FMS のアラートについて説明している章を参照してください。[4]
  • Field 2: Field to set the command parameter of the Field 2 alarm. In the case of sending an email, e. g. will be the subject of the message. If left blank, it would use what it had defined in the action.
  • フィールド2(Field 2): アラートのコマンドパラメータに指定するフィールド2です。例えば、電子メールを送信する場合は件名の対象になります。 空白のままにするとアクションで定義した内容が使用されます。
  • Field 3: Field to set the command parameter of the Field 3 alarm. In the case of sending an email, it would be the text of the message. If left blank, it would use what it had defined in the action.
  • フィールド3(Field 3): アラートのコマンドパラメータに指定するフィールド3です。例えば、電子メールを送信する場合は本文の対象になります。 空白のままにするとアクションで定義した内容が使用されます。
  • Min. Number of Alerts: The field to define the min. amount of traps which have to be received to trigger the alarm.
  • 最小アラート数(Min. Number of Alerts): アラートを発生させるトラップの最小数を指定します。
  • Max. Number of Alerts: Field where the maximum number of times the action will be executed in the given interval (or time threshold).
  • 最大アラート数(Max. Number of Alerts): 指定された間隔(または時間しきい値)でアクションが実行される最大回数を指定します。
  • Time Threshold: The field for determining the time to elapse before resetting the alarm counter. This counter is the one which is getting used for the field named 'min. number of alerts'.
  • 再通知間隔(Time Threshold): アラートカウンタをリセットする時間を指定します。このカウントは、最小アラート数で利用されます。
  • Priority: Combo where the alarm priority is set. The priorities of the alerts are different and have nothing to do with the priority of the traps, nor with the Pandora FMS events.
  • 優先度(Priority): アラートの優先度を指定します。アラートの優先順位は、トラップの優先順位や Pandora FMS イベントとも何の関係もありません。
  • Alert Action: The combo box for selecting the action which is going to execute the alert. If you select an event, the normal event of an alert creation is not going to be created.
  • アラートアクション(Alert Action): アラート実行時のアクションを選択します。イベントを選択すると、通常のアラート作成イベントは生成されません。
  • Position: The alerts with a lower position are evaluated first. If several alerts match with a trap, all matched alerts with the same position will be triggered. Although lower position alerts match with the trap, they will not be triggered.
  • 位置(Position): 低位のアラートが最初に評価されます。複数のアラートが単一のトラップにマッチした場合は、マッチした同じ位置のすべてのアラートが発報されますが、低位のアラートがマッチしても発報されません。

アラートフィールドマクロ

The following macros can be used in any of the alert fileds:

アラート フィールド で以下のマクロを利用できます。

  • _data_: Full trap
  • _agent_: Agent name
  • _address_: IP Address
  • _timestamp_: Trap date
  • _snmp_oid_: Trap OID
  • _snmp_value_: Trap OID value
  • _data_: トラップ全体
  • _agent_: エージェント名
  • _address_: IP アドレス
  • _timestamp_: トラップ日時
  • _snmp_oid_: トラップ OID
  • _snmp_value_: トラップ OID の値

トラップアラートの例

Let's suppose we get a trap like the next one:

次のようなトラップを受信したと仮定します。

ファイル:Trap sample for alert.jpg

In this case, we have a main OID (. 1.3.6.1.4.1.2789.2005) that identifies a trap that can contain CPU overheating messages (we don't know if about anything else) but we know that in two variables it shows that the CPU heats up and the temperature of that CPU at that time, in variables 1 and 2 respectively. As we want to identify only the CPU heating traps, we match the Heat alert string in the first variable of the trap (remember that we have up to 20 for searching).

この場合、CPUオーバーヒートメッセージを含む可能性のあるトラップを識別するメインOID(1.3.6.1.4.1.2789.2005)がありますが(それ以外のものはわかりませんが)、1 と 2 の 2つの変数でその時の CPU のヒート状態と温度を表しています。 CPU のオーバーヒートトラップだけを識別したいので、トラップの最初の変数のヒートアラート文字列にマッチさせます(検索には最大20個まで設定できます)。

Defining the first part of the trap is simple, we only use the main OID to make the first and most important prefilter:

トラップの最初の部分を定義するのは簡単です。最初の最も重要なプレフィルタを作成するために、メイン OID のみを使用します。

ファイル:Trap alert definition 1.jpg

The second part of the trap definition is the one containing the essential part. In the first variable of the trap, we look for the "Heat alert" string if traps arrive with the main OID but in the first variable they do not contain that text string, the alert would not be triggered.

トラップ定義の 2番目は、必須部分を含みます。 トラップの最初の変数で "Heat alert" という文字列を探しますが、トラップをメインの OID で受信すると変数にはテキスト文字列が含まれていないため、アラートは発報されません。

ファイル:Trap alert definition 2.jpg

And finally, by choosing a "Pandora Event" type alert, we conform the message using the variables that contain the value of variables 1 and 2 of the trap received:

最後に、"Pandora Event" タイプのアラートを選択することで、受け取ったトラップので値を含む変数 1 と 2 を使用してメッセージをマッチさせます。

ファイル:Trap alert definition 3.jpg

This way, when the alert goes off, the generated event will look like this:

アラートがオフになると、生成されるイベントは次のようになります。

ファイル:Event result of alert.jpg

大量のトラップがある環境での動作

トラップストーム保護

There are a couple of parameters on the server which are designed to protect the system against the arrival of a Trap Storm, originating from a single location. We're going to use the following settings in the file 'pandora_server.conf' for this:

同一の発信元から来るトラップストームからシステムを守るために利用する 2つのサーバパラメータがあります。これは、pandora_server.conf にて行う次の設定です。

  • snmp_storm_protection: Max. number of SNMP traps processed from the same source IP in a given interval (see below).
  • snmp_storm_timeout: Interval, in seconds, for protection against SNMP Trap storm. During this interval, system will only process snmp_storm_protection traps from the same source (IP).
  • snmp_storm_protection: 同一の発信元 IP から指定した間隔(以下参照)内で処理する SNMP トラップの最大数です。
  • snmp_storm_timeout: SNMP トラップストームから守る秒単位の間隔です。ここで指定した時間の間は、同一発信元(IP)からは snmp_storm_protection で指定した数のトラップのみを処理します。

Trap storm protection combined with traps filtering (see below) allows that if we receive hundreds of thousands of traps per day, we work with only a few thousand traps to eliminate redundant or unhelpful traps.

トラップストーム保護は、トラップフィルタリングと合わせて、1日に何百、何千ものトラップを受け取っている場合に、不要なトラップを排除し一部のトラップのみを扱うことができます。

サーバにおけるトラップフィルタリング

Some systems receive a large number of traps from which only a small percentage is interesting to monitor. With Pandora FMS it is possible to filter the traps that the server receives in order to avoid unnecessary loading of the application.

あるシステムでは多数のトラップが受信されますが、監視に必要なのはわずかな割合でしかありません。 Pandora FMS では、アプリケーションの不要な読み込みを避けるために、サーバが受け取るトラップをフィルタリングすることが可能です。

From Administration>Manage SNMP Console>SNMP Filters you can define different filters. A trap that will marry any of them will be automatically discarded by the server:

管理メニューの SNMP コンソール管理 > SNMP フィルタ から、フィルタの定義ができます。フィルタに合致するトラップは、サーバによって自動的に破棄されます。

ファイル:Snmp filter editor new.png

The filter is applied as a regular expression on the trap entry in the SNMP log (default /var/log/pandora/pandora_snmptrap. log), which has the following fixed format:

SNMP ログ(デフォルトは /var/log/pandora/pandora_snmptrap.log) のトラップエントリーに対して正規表現が適用されています。それは、次のような固定フォーマットです。

%4y-%02.2m-%l[**]%02.2h:%02.2j:%02.2k[**]%a[**]%N[**]%w[**]%W[**]%q[**]%v\n

Them being:

それぞれ次の意味です。

  •  %y: current year.
  •  %m: current month (numerical).
  •  %l: current day of the month.
  •  %h: current hour.
  •  %j: current minute.
  •  %k: current second.
  •  %a: Origin address (traps version 1 only).
  •  %N: OID.
  •  %w: trap type (numerical).
  •  %W: trap description.
  •  %q: trap sub-type (numerical).
  •  %v: List of variables separated by tab (custom OID).
  •  %y: 現在の年。
  •  %m: 現在の月。(数値)
  •  %l: 現在の月における日付。
  •  %h: 現在の時間。
  •  %j: 現在の分。
  •  %k: 現在の秒。
  •  %a: 発信元アドレス。(トラップバージョン 1 のみ)
  •  %N: OID。
  •  %w: トラップタイプ。(数値)
  •  %W: トラップの説明。
  •  %q: トラップのサブタイプ。(数値)
  •  %v: タブで区切られた値のリスト。(カスタム OID)

For example, to filter all the traps from host 192.168.50.20 we could set the following filter:

例えば、192.168.50.20 からのすべてのトラップをフィルタするには、次のフィルタ設定をします。

ファイル:Snmp filter example.png

Since more than one filter can be created simultaneously, the search will take into account those traps that meet all filtering conditions.

複数のフィルタを同時に作成できるため、検索ではすべてのフィルタリング条件を満たすトラップが対象となります。

SNMP トラップ統計

This view allows you to see statistics of traps, both by origin (IP) and by OID, this allows an effective management of the filters, by identifying the IP's that generate more traps and the OIDs that repeat more. The system displays statistics of traps for the last 30 days.

このビューでは、トラップの統計情報を発信元(IP)と OID の両方で見ることができます。これにより、より多くのトラップを生成する IP とより多く繰り返す OID を特定し、フィルタの効果的な管理が可能になります。 過去 30日間のトラップ統計が表示されます。

750px

750px

トラップのカスタマイズ

In order to give the operator a better understanding of the traps sent by the monitored devices, it's possible to either load the manufacturer's MIBs into Pandora FMS or to edit the traps to your liking.

モニタ対象デバイスから送られるトラップをオペレータがわかりやすくするために、Pandora FMS にベンダー MIB をロードしたり、トラップを編集することができます。

Info.png

The functions mentioned so far are all features of the Pandora FMS Enterprise Version.


Info.png

ここで述べている機能のすべては、Pandora FMS Enterprise 版の機能です。


トラップのリネーム/カスタマイズ

We call the process "edit a trap" where it is allowed to "customize" the appearance of a trap in the console. If you look at the next capture, all your traps may be difficult to distinguish because of the cryptic information they contain.

私たちはこの処理を「トラップの編集」と呼びます。この処理では、コンソール内のトラップの外観を "カスタマイズ" することができます。次の画面キャプチャでは、暗号化されたような情報が含まれているため内容を把握するのが難しいかもしれません。

To edit a trap, go to Operation > SNMP Console. Click the edit icon for the trap you want to customize:

トラップを編集するには、操作(Operation) > SNMPコンソール(SNMP Console) へ行き、カスタマイズしたいトラップの編集アイコンをクリックします。



This way, when you find traps with the OID ". 1.3.6.6.1.4.1.2789.2005" you will see them as "Blue box sample". And it'll be easier to tell them apart. Its content (including the original OID) will remain unchanged.

これにより、OID ".1.3.6.1.4.1.2789.2005" を見たとき、"Bluebox sample" と表示されます。区別するのがより簡単になります。 その内容自体(元の OID を含む)は変更されません。

"Custom OID" is a Perl compatible regular expression that will be matched against the part of the trap string containing variable bindings. It is generally not needed to translate a trap.

カスタムOID には、変数バインディング文字列に部分マッチさせる Perl 互換の正規表現を記述します。一般的にはカスタムOID を使ったトラップの変換は必要ありません。

Template warning.png

"Custom OID" is not meant to be the whole variable binding string, which can be larger than its supported maximum length, but rather a regular expression that matches one or more variables.


Template warning.png

カスタムOIDに記述可能な文字数には制限があるため、この制限を超える可能性のある変数バインディング文字列全体ではなく、一部の変数にマッチするような正規表現を使用して下さい。


Keep in mind that all previous traps will not change their appearance, this will start working with the new traps that enter the system from now on.

古いトラップは変更されないことに注意してください。この機能は、有効にした時点以降新たに受信したトラップに対してのみ有効です。

Finally, this is what a user-defined trap would look like:

最終的に、ユーザ定義トラップは次のようになります。



ベンダー MIB のロード

This option is suitable for uploading traps MIBS (exclusively) and expanding Pandora's internal translation database, so that when a trap arrives, it will be automatically translated by its description.

このオプションによりトラップの MIB をアップロードすることができ、Pandora の内部変換データベースに展開されます。トラップを受信すると自動的に文字列に変換します。

To upload the Manufacturer's MIBs click on "Browse", choose the file that should be with txt extension and click on "Upload MIB".

ベンダー MIB をアップロードするには、"Examine" をクリックしてテキスト形式の MIB ファイルを選択し、"MIB のアップロード(Upload MIB)" をクリックします。

Cima6.png

Once uploaded, the system is going to incorporate it to its trap library.

アップロードが完了すると、システムはそれをトラップライブラリに取り込みます。

複雑な SNMP トラップへのアラート関連付け

The previously described alerts are only going to be used where the trap is appropriately defined. It's always the same and it doesn't bear any relevant data to recover.

前述のアラートは、トラップが適切に定義されている場合にのみ使用されます。復旧通知のための関連データはありません。

In certain situations, we however might find a trap which exhibits the following structure:

しかしながら、いくつかの場合、次のような構造のトラップが見られます。

OID: .1.3.6.1.4.1.2789.2005
Value: 666
Custom data: 1.3.6.1.4.1.2789.2005.1 = STRING: "ID-00342" .1.3.6.1.4.1.2789.2005.2 = STRING: "Automated check"  
.1.3.6.1.4.1.2789.2005.3 = STRING: "NIC Offline" .1.3.6.1.4.1.2789.2005.4 = STRING: "4897584AH/345"

This is a 'complex' trap which contains complex data alongside an OID and a value, based on many other OIDs and values. In its complex part, a trap can contain a completely randomized structure which is based on OIDs or value pairs (e.g. counters, numerical, alphanumerical, dates, etc.).

これは "複雑" なトラップで、OID および値の他に、他の OID や値を元にした複雑なデータを含んでいます。トラップは複雑なパートを含むことができ、OID/値のペア (カウンタ、数値、文字、データなど) を元にした完全にランダムな構造です。

Within the trap console, this trap would appear as in the picture below:

このトラップは、トラップコンソールでは次のように表示されます。



If you carefully read the extended info (Custom data), there might be some pieces of useful data. In the first field, bearing the OID ending of '2005.1' looks like an identifier. The third field, bearing the OID ending of '2005.3' looks like an error message. Fields 2 and 4 don't look pretty useful, since they seem to be of unknown code to us.

拡張情報 (Custom data) を見てみると、いくつかの有用なデータが含まれています。インスタンスでは、OID が 2005.1 で終わっている最初のフィールドは、識別子のように見えます。OID が 2005.3 で終わっている 3つ目のフィールドは、エラーメッセージのように見えます。フィールド 2 と 4 は、我々にとって不明なコードであり、使い道が無さそうです。

Let's assume for a moment we could create an event from a trap, moving specific parts from the trap data into the text. Let's suppose we intend to build an event which contains the following information:

トラップのテキストデータの特定の部分を使って、トラップからイベントを生成できるということを考えてみましょう。次のような情報を含むイベントを生成したいと仮定します。

Chassis Alert: <error message> in device <identifier>

The challenge is to make an alert which produces a 'match' in those fields, obtaining the piece of data and using it to create a message in the alert later. We're able to perform this task using Pandora FMS and advanced regular expressions and selectors. You can find more info about regular expressions here.

取得したデータにマッチさせてアラートを生成し、またデータを使ってアラート内のメッセージを生成します。 Pandora FMS では、セレクタを用いて、高度な正規表現にて実現することができます。正規表現に関する詳細はこちらを参照してください。 [5].

The selectors are using brackets (), allowing us to 'copy' information by utilizing a search expression.

() を使ったセレクタでは、検索の表現を使って情報のコピーができます。

The regular expression to obtain the identifier would be as follows:

識別子を取得するための正規表現は次のようになります。

.*.1.3.6.1.4.1.2789.2005.1 \= STRING\: \"([0-9\-\_A-Za-z]+)\"

The regular expression to obtain the error message would be as follows:

エラーメッセージを取得するための正規表現はつぎのようになります。

.*.1.3.6.1.4.1.2789.2005.3 \= STRING\: \"([\sA-Za-z]+)\".*

Once we've obtained the data fields, we're required to use them in the alert. For this purpose, the special macros '_snmp_f1_', '_snmp_f2_' and '_snmp_f3_' are used. Using these macros doesn't make any sense outside any SNMP trap alert.

データフィールドを取得したら、それをアラートで利用する必要があります。この目的のためには、特別なマクロ _snmp_f1_、 _snmp_f2_ および _snmp_f3_ を利用します。これらのマクロは、SNMP トラップアラート以外では無視されます。

To build the message, we're going to use the following string:

メッセージを生成するために、次のような文字列を使います。

Chassis Alert: _snmp_f2_ in device _snmp_f1_

The picture below shows how the complete alert is created.

以下の画像は、作成したアラートを表示しています。





In order to successfully create this type of alert, an extensive knowledge of regular expressions is required, since a simple blank space, a symbol or another character in the wrong location could make it work inappropriately. Please keep in mind that SNMP alerts imply the use of regular expressions. An easier way to establish an alert by regular expressions would be the following:

この種類のアラートをうまく作成するためには、正規表現の知識が必要です。不正な場所にスペースや記号、その他文字が入っていたりすると、正しく動作しません。SNMP アラートでは、正規表現を利用している意味を常に意識してください。 正規表現を使って簡単にアラートを生成するには、次のようにします。





追加の例

This additional example uses an email alert to send information about the interface name each time you receive a specific trap. You're going to produce an email containing a device name, IP and interface name as received in the trap.

別の例です。特定のトラップで受信するインタフェース名に関する情報を送信するメールアラートを利用します。トラップ受信時に、デバイス名、IP およびインタフェース名をメール送信します。

This is a trap, received from a switch:

以下は、スイッチから受信したトラップです。





This is the received mail.

これは、受信したメールです。






This is the trap definition.

以下がトラップの設定です。





Pandora アラートとトラップの関係 / SNMP エージェントのトラップ転送

The alerts defined on traps are completely independant from Pandora's alert engine, so correlations of kind “trigger an alarma if temperature reaches 29 degrees and the trap for secondary power supply is on” cannot be established. This kind of alerts can neither be displayed (since they are -eventually- not associated to any Pandora FMS module, and thus, trap console monitoring cannot be related to elements such as reports or maps.

トラップに定義されたアラートは、Pandora のアラートエンジンとは完全に独立しています。そのために、"温度が 29度に達したらアラート上げるといったことや、冗長化電源ダウンのトラップを受信したときにアラートを上げる" といったことがアラート管理からは設定できません。この種のアラートは、Pandora FMS のモジュールとは独立しており、トラップコンソールも、これらの要素に関連していません。

Special SNMPTrap module, containing the trap forwarded by SNMP console :

SNMP コンソールからフォワードされたトラップを含む、特殊な SNMP トラップモジュール:

Snmptrap agent.png

In order to achieve this, a method called "Agent SNMP Trap Forwarding" exists. This (server wide) option forwards the trap to a special agent's module named "SNMPTrap" as a text string, if and only if, the trap's origin IP address is defined as agent IP. Whenever this occurs, the trap arrives as a text line to the agent inside that module, which is a module that's only defined at arrival of the first trap.

これを解決するために、"エージェントへの SNMP トラップ転送(Agent SNMP Trap Forwarding)" という手法が存在します。このオプションは、トラップの発信元 IP アドレスが特定のエージェントのアドレスであった場合、トラップをそのエージェントの "SNMPTrap" という名前のモジュールへ文字列として転送します。この場合は常に、トラップはエージェントのモジュールにてテキストで受信します。モジュールは、最初のトラップを受信したときに定義されます。

Text alerts can be specified on that module, being these completely standard, just as any other module. This enables for customization of SNMP monitoring in order for certain traps from certain origins to be treated as yet another module, and thereby integrate it in the rest of the monitoring, including alert correlation.

テキストのアラートは、通常のモジュールにおける標準的な方法で定義できます。これにより、別の発信元からのトラップを、それぞれ別のモジュールで扱うための SNMP モニタリングのカスタマイズが可能です。それにより、アラートの設定もそれぞれ可能になります。

SNMPTrap data sample':

SNMPトラップデータサンプル:
Snmptrapforward2.png

This is a Enterprise feature, and could be activated in the main setup screen, as shown here:

これは、エンタープライズ版の機能です。次のように、メインの設定画面で有効にできます。

Configuration option to enable trap forwarding to agents:

エージェントへのトラップフォワーディンcグを有効にするオプション設定:

Snmptrap agent forwardsetup.png

If this setting is changed, Pandora FMS server needs to be restarted to enable it.

設定を変更したら、有効にするためには Pandora FMS サーバを再起動する必要があります。

Another solution is mounting an alert on the trap to activate an agent's module. For example, be the trap a "1" written in certain logfile, and theres's an agent reading that file ready to run when it finds a "1". This way, the module will be triggered when the desired trap arrives and the correlation can be established basing on the arrived trap.

ほかには、エージェントのモジュールに、トラップを関連付ける手段もあります。例えば、トラップ受信で何らかのログファイルに "1" を書くようにし、それを読むモジュールを定義します。この方法により、想定したトラップを受信したときにモジュールの状態が変化するようになり、トラップの受信と関連付けることができます。

外部 SNMP トラップハンドラ

The SNMP console is made for the sole purpose of obtaining traps. It only processes TRAPs as individual items. One trap is able to contain a lot of information. Sometimes, you have a situation when the only monitoring we're able to conduct is based on traps. For doing so, we might choose to post-process the obtained information of one trap by an external script working as a plug in.

SNMP コンソールは、トラップを取得する目的のためだけに作られています。トラップは個々のアイテムとしてのみ処理されます。 1つのトラップは多くの情報を含むことができます。 場合によっては、実行できる唯一の監視がトラップに基づいている場合があります。 そのために、取得した 1つのトラップの情報をプラグインとして動作する外部スクリプトで後処理することができます。

To process the data of one trap in detail, you may send all contained information to a script as an alert result. I have used the trap shown below for the example. It's the trap view as it would be in Pandora's SNMP console log:

トラップの詳細データを処理するために、アラートの結果としてトラップのすべてのデータをスクリプトへ渡すことができます。以下に例を示します。これは、Pandora の SNMP コンソールログで見ることができるトラップビューです。

2010-08-26 12:01:46 pandora 10.201.246.2 .1.3.6.1.4.1.1722 .1.3.6.1.4.1.1722.2.10.1.1.1 233 .1.3.6.1.4.1.1722.2.10.1.1.3 = STRING: 
AIX_Software_Failure .1.3.6.1.4.1.1722.2.10.1.1.2 = STRING: 08 25 2010 08:23:43:697685 .1.3.6.1.4.1.1722.2.10.1.1.8 = STRING: 1: A 
software error PERM with label CORE_DUMP, identifier C69F5C9B occurred at Wed Aug 2 5 10:22:28 DFT 2010 on dvs02 for resource 
SYSPROC. Cause is SOFTWARE PROGRAM ABNORMALLY TERMINATED. .1.3.6.1.4.1.1722.2.10.1.1.6 = STRING: 8 
.1.3.6.1.4.1.1722.2.10.1.1.11 = STRING: An application may not work properly .1.3.6.1.4.1.1722.2.10.1.1.10 = STRING: An application 
may not work properly .1.3.6.1.4.1.1722.2.10.1.1.12 = INTEGER: 4 .1.3.6.1.6.3.1.1.4.3.0 = OID: .1.3.6.1.4.1.1722





On the screen shots below, you can see how a special alert is created. It executes a script which contains the complete content of the trap (_data_) and shows how an SNMP type of alert is created. In such a case, it has been mapped for the specific OID (.1.3.6.1.4.1.1722.2.10.1.1.1), although it could have been more general, e.g. (.1.3.6.1.4.1.1722) to call the script when there would be any type of traps like these (.1.3.6.1.4.1.1722, I suppose it would be part of the AIX specific MIB).

スクリーンショットで、どのようにアラートを作成するかがわかると思います。トラップの内容 (_data_) に応じてスクリプトを実行します。また、SNMP アラートが作成されます。この場合、特定の OID (.1.3.6.1.4.1.1722.2.10.1.1.1) にマップされます。マップする OID の範囲を広くすることも可能で、例えば、(.1.3.6.1.4.1.1722) を指定すれば、この OID すべてのトラップ (AIX の特定 MIB の一部を想定) でスクリプトが呼び出されるようになります。

A script which processes this data is executed. It also 'analyzes' the trap to write data directly to Pandora FMS by creating an XML file, moving it to '/var/spool/pandora/data_in' as data, as if it had come from an agent. A basic script for this case would be one to generate complex information. We already possess enough information regarding this trap, which constitutes the following:

このデータを処理するスクリプトが実行されます。 また、エージェントからのデータであるかのように、XMLファイルを作成し、'/var/spool/pandora/data_in' に移動することによって、Pandora FMS に直接データを書き込み、トラップを分析できます。 この場合の基本的なスクリプトは、複雑な情報を生成するスクリプトです。 すでにこのトラップに関する十分な情報を処理する処理は、以下から構成されます。

  • The originating IP
  • The main event (cold start)
  • The secondary events (descriptives): AIX_Software_Failure, 1: A software error PERM with label CORE_DUMP, identifier C69F5C9B occurred at Wed Aug 2 5 10:22:28 DFT 2010 on dvs02 for resource SYSPROC. Cause is SOFTWARE PROGRAM ABNORMALLY TERMINATED, An application may not work properly
  • オリジナルIPアドレス
  • メインイベント (コールドスタート)
  • 2つ目のイベント(説明): AIX_Software_Failure, 1: A software error PERM with label CORE_DUMP, identifier C69F5C9B occurred at Wed Aug 2 5 10:22:28 DFT 2010 on dvs02 for resource SYSPROC. Cause is SOFTWARE PROGRAM ABNORMALLY TERMINATED, An application may not work properly, An application may not work properly.

When designing a script which 'parses' each of these data, e.g. 'miscript.pl' and storing it under '/var/spool/pandora/data_in' in the XML file along with a generic name and one random number, e.g. 'snmp_gateway.31415.data'.

これらのデータをパースするスクリプトを作る場合、例えば "miscript.pl" というスクリプトであれば、/var/spool/pandora/data_in にランダムな番号をつけたファイル名で XML ファイルを書くようにします。 例えば、snmp_gateway.31415.data です。

The generated XML is supposed to look like the one on the picture below.

生成した XML ファイルは次のようになります。

<?xml version='1.0' encoding='ISO-8859-1'?>
<agent_data description='' group='' os_name='aix' os_version='' interval='300' version='3.1(Build 100608)' timestamp='2010/08/26 12:20:26' agent_name='10.201.246.2'>
  <module>
    <name><![CDATA[Critical_Event]]></name>
    <description><![CDATA[]]></description>
    <type>async_proc</type>
    <data><![CDATA[1]]></data>
  </module>
<module>
    <name><![CDATA[events]]></name>
    <description><![CDATA[]]></description>
    <type>generic_string</type>
    <datalist>
      <data><value><![CDATA[AIX_Software_Failure]]></value></data>
      <data><value><![CDATA[A software error PERM with label CORE_DUMP, identifier C69F5C9B occurred at Wed Aug 2 5 10:22:28 DFT 2010 on dvs02 for resource SYSPROC.]]></value></data>
      <data><value><![CDATA[Cause is SOFTWARE PROGRAM ABNORMALLY TERMINATED, An application may not work properly, An application may not work properly.]]></value></data>
    </datalist>
  </module>
</agent_data>

The application is endless, but any script should be customized and it would have a very dynamic structure. Under a lot of systems, the information which gets received doesn't solely consist of text. It's also numerical and therefore able to feed numerical information to the modules in order to represent e.g. graphics, etc. Note that the data generated in XML should always be asynchronous.

アプリケーションは何でも実現できカスタマイズ可能です。とても強力な構造になっています。多くのシステムでは、情報はテキストだけではなく数値でも取得できます。グラフを書きたい場合等では、数値情報のモジュールを利用します。なお、全てのデータは常に非同期であることに注意してください。

実例: トラップを用いた ESX のモニタリング

One of the most problematic things to monitor is the monitoring of distributed infrastructure. It gets even harder if each version changes its implementation to gather information (like VMware or ESX). In this chapter, we're going to explain how to monitor ESX systems by using an external SNMP Trap Handler.

最も問題となりうるモニタリングの一つに、VMware ESX のようにバージョンによって情報の収集方法が異なるベンダが提供のシステムがあります。この章では、外部 SNMP トラップハンドラを使って、ESX システムをモニタする方法を説明します。

ESX traps consist of the following data:

ESX のトラップは次のようになっています。

.1.3.6.1.4.1.6876.4.3.301 = STRING: "host"  .1.3.6.1.4.1.6876.4.3.302 = STRING: "c7000-06-01.tsm.inet"      .1.3.6.1.4.1.6876.4.3.303 = ""  
.1.3.6.1.4.1.6876.4.3.304 = STRING: "Green" .1.3.6.1.4.1.6876.4.3.305 = STRING: "Yellow"    .1.3.6.1.4.1.6876.4.3.306 = STRING: "Host 
cpu usage - Metric Usage = 1%"
.1.3.6.1.4.1.6876.4.3.301 = STRING: "host"  .1.3.6.1.4.1.6876.4.3.302 = STRING: "dl360-00.tsm.inet" .1.3.6.1.4.1.6876.4.3.303 = ""  
.1.3.6.1.4.1.6876.4.3.304 = STRING: "Yellow".1.3.6.1.4.1.6876.4.3.305 = STRING: "Green"     .1.3.6.1.4.1.6876.4.3.306 = STRING: "Host 
memory usage - Metric Usage = 84%"
.1.3.6.1.4.1.6876.4.3.301 = STRING: "host"  .1.3.6.1.4.1.6876.4.3.302 = ""  .1.3.6.1.4.1.6876.4.3.303 = ""  .1.3.6.1.4.1.6876.4.3.304 = 
STRING: "Red"       .1.3.6.1.4.1.6876.4.3.305 = STRING: "Green" .1.3.6.1.4.1.6876.4.3.306 = STRING: "Datastore usage on disk - Metric 
Storage space actually used = 55%"

As you can see, traps could be used to gather information from the CPU, the hard drive or the memory. The general idea behind the trap handler is to write a small script which is able to 'understand' the trap and to create an XML file which emulates a software agent. It's recommended to write a trap handler for each technology. The process of doing so is pretty common and explained in four steps:

見ての通り、トラップに CPU、ディスク、メモリ の情報がまとめられています。トラップの内容を分析し、XML ファイルを作成する小さなスクリプトを書き、トラップハンドラにすることを考えます。トラップハンドラの書き方は共通です。手順は 4つのステップとなります。

  1. Please create the handler script. You may base your work on the script which is provided below.
  2. Please create an alert command.
  3. Please create an alert action using the previous command. You can add some custom options for each 'destination' agent you want (if you possess several farms of ESX, you're probably going to like to host the data on different agents).
  4. Please create an SNMP trap-alert which maps the enterprise OID (information trap contains for all kind of this specific technology) and / or the source trap IP address.
  1. ハンドラスクリプトを作成します。以下に示すスクリプトを参考にしてください。
  2. アラートコマンドを作成します。
  3. 上記のコマンドを使って、アラートアクションを作成します。必要に応じて適用先のエージェントを指定します。(複数の ESX がある場合は、それぞれ別のエージェントに適用したいような場合もあるかもしれません。)
  4. エンタープライズ OID (この手法でモニタする全トラップのもの) および発信元 IP アドレスにマップする SNMP トラップアラートを作成します。

Now we're going to show how to create the trap-handler script.

では、トラップハンドラを作成する、最初のステップを見てみましょう。

トラップハンドラ: esx_trap_manager.pl

#!/usr/bin/perl
# (c) Sancho Lerena 2010 <slerena@artica.es>
# Specific Pandora FMS trap collector for ESX 

use POSIX qw(setsid strftime);

sub show_help {
	print "\nSpecific Pandora FMS trap collector for ESX\n";
	print "(c) Sancho Lerena 2010 <slerena@artica.es>\n";
	print "Usage:\n\n";
	print "   esx_trap_manager.pl <destination_agent_name> <TRAP DATA>\n\n";
	exit;
}

sub writexml {
	my ($hostname, $xmlmessage ) = @_;
	my $file = "/var/spool/pandora/data_in/$hostname.".rand(1000).".data";

	open (FILE, ">> $file") or die "[FATAL] Cannot write to XML '$file'";
	print FILE $xmlmessage;
	close (FILE);
}

if ($#ARGV == -1){
	show_help();
}

$chunk = "";

# First parameter is always destination host for virtual server
$target_host = $ARGV[0];

foreach $argnum (1 .. $#ARGV) {
	if ($chunk ne ""){
		$chunk .= " ";
	}
	$chunk .= $ARGV[$argnum];
}

my $hostname = "";
my $now = strftime ("%Y-%m-%d %H:%M:%S", localtime());
my $xmldata = "<agent_data agent_name='$target_host' timestamp='$now' version='1.0' os='Other' os_version='ESX_Collectordime ' interval='9999999999'>";

if ($chunk =~ m/.1.3.6.1.4.1.6876.4.3.302 \= STRING\: ([A-Za-z0-9\-\.]*)\s\.1/){
	$hostname = "_".$1;
}

if ($chunk =~ m/Host cpu usage \- Metric Usage \= ([0-9]*)\z/){
	$value = $1;
	$module_name = "CPU_OCUPADA$hostname";
}

if ($chunk =~ m/Host memory usage \- Metric Usage = ([0-9\.]*)\z/){
	$value = $1;
	$module_name = "MEMORIA_OCUPADA$hostname";
}

if ($chunk =~ m/Datastore usage on disk \- Metric Storage space actually used \= ([0-9\.]*)\z/){
	$value = $1;
	$module_name = "DISCO_OCUPADO$hostname";
}

$xmldata .= "<module><name>$module_name</name><type>async_data</type><data>$value</data></module>\n";

$xmldata .= "</agent_data>\n";
writexml ($target_host, $xmldata);


ステップ 2: アラートコマンドの作成

In this example, I've put the command script in /tmp, put on a safer place, and be sure it's executable (chmod 755):

この例では、コマンドスクリプトを /tmp に置いています。(実際には、より安全な場所に置いてください。) そして、それに実行権限を与えます。(chmod 755)





ステップ 3: アラートアクションの作成

Create specific action to send all information to a specific agent traps. In this case information will be sent an agent named WINN1247VSR. The above command accepts as parameters the name of the agent that will go all the information (ESX Virtual Center), and "chunk" of data from the TRAP, which can be unlimited and includes all the information you send the trap.

特定のエージェントのトラップの情報を送信するアクションを作成します。この場合、情報は WINN1247VSR というエージェントに送られます。上記のコマンドは、エージェント名をパラメータとして受け取り、(ESX バーチャルセンターの) 全ての情報を処理し、トラップからのデータを分割します。特に制限はなく、トラップで送られる全ての情報を処理します。





ステップ 4: SNMP アラートの作成

You may set alert traps by using the action you've just created.

作成したアクションを使って、トラップのアラートを設定します。






In order to process all the traps the of ESX type by using the specific OID '.1.3.6.1.4.1.6876.4.3.301' to map the ESX type traps. You also have the option of filtering by source IP for each virtual center by filtering for the originating IP address (which is contained in the trap).

ESX の全てのトラップを処理するために、ESX のトラップにマップする OID である .1.3.6.1.4.1.6876.4.3.301 を指定します。IP アドレスフィルタリングにより、それぞれの VirtualCenter のソース IP アドレスでフィルタリングすることもできます。

データの表示

This is an example of how the information is going to look. You may manage them as standard modules by this data.

以下に情報の参照例を示します。これにより、通常のモジュールとして管理できます。




SNMP trap 転送 ( > v5.0 )

With Pandora FMS it is also possible to forward SNMP traps to an external host by enabling the snmp_forward_trap token in Pandora's server configuration file.

Pandora FMS では、Pandora サーバの設定ファイルでsnmp_forward_trapトークンを有効にすることにより、SNMP trap を外部のホストへ転送することができます。

SNMP v1 を使った trap 転送設定例

snmp_forward_trap 1
snmp_forward_ip 192.168.1.145
snmp_forward_version 1
snmp_forward_community public
snmp_forward_secName
snmp_forward_engineid
snmp_forward_authProtocol
snmp_forward_authPassword
snmp_forward_privProtocol
snmp_forward_privPassword
snmp_forward_secLevel

SNMP v2c を使った trap 転送設定例

snmp_forward_trap 1
snmp_forward_ip 192.168.1.145
snmp_forward_version 2c
snmp_forward_community public
snmp_forward_secName
snmp_forward_engineid
snmp_forward_authProtocol
snmp_forward_authPassword
snmp_forward_privProtocol
snmp_forward_privPassword
snmp_forward_secLevel

SNMP v3 を使った trap 転送設定例

This example is particularly challenging because of the knowledge in SNMP v3 traps. We are considering that the remote SNMP agent defined at snmp_forward_ip, does have the following entry in its /etc/snmp/snmptrapd.conf file:

この例は、SNMP v3 trap の知識が必要になるため特に難しいです。リモートの SNMP エージェントがsnmp_forward_ipで定義されており、次の設定が /etc/snmp/snmptrapd.conf ファイルに書かれていることを想定します。

createUser -e 0x0102030405 myuser MD5 mypassword DES myotherpassword

The Pandora's server configuration file should be like this:

Pandora サーバの設定ファイルは次のようになります。

snmp_forward_trap 1
snmp_forward_ip 192.168.1.145
snmp_forward_version 3
snmp_forward_secName myuser
snmp_forward_engineid 0x0102030405
snmp_forward_authProtocol MD5
snmp_forward_authPassword mypassword
snmp_forward_privProtocol DES
snmp_forward_privPassword myotherpassword
snmp_forward_secLevel authNoPriv

Find more information at NET-SNMP's v3 Traps

より詳細は、 NET-SNMP's v3 Trapsを参照してください。

snmptrapd デーモンの個別管理

If, for some reason, you would like to manage the snmptrapd daemon independently from Pandora FMS (stop or start it independently from the main Pandora FMS daemon) then you need to take into account several things:

何らかの理由により、snmptrapd デーモンを Pandora FMS から独立して管理したい場合(Pandora FMS デーモンとは独立して停止・起動をしたい場合)は、いくつか考慮すべきことがあります。

1. The snmpconsole parameter must be active for the pandora fms server.

1. snmpconsole パラメータは、Pandora FMS サーバに必須です。

2. The logs configured in the pandora fms server must be the same as the ones in the independent call to snmptrapd.

2. Pandora FMS サーバで設定されるログは、snmptrapd を独立して管理する場合でも同じでなければいけません。

3. The call to snmptrap must be in a specific format the standard system call can't be used. That call must be like the following (the parameter: -A is very important!):

3. snmptrap の呼び出しは特定のフォーマットである必要があり、標準的なシステムからの呼び出しは利用できません。呼び出しは次のようにする必要があります(パラメータ -A はとても重要です)。

/usr/sbin/snmptrapd -A -t -On -n -a -Lf /var/log/pandora/pandora_snmptrap.log -p /var/run/pandora_snmptrapd.pid --format1=SNMPv1[**]%4y-%02.2m-%l[**]%02.2h:%02.2j:%02.2k[**]%a[**]%N[**]%w[**]%W[**]%q[**]%v\n --format2=SNMPv2[**]%4y-%02.2m-%l[**]%02.2h:%02.2j:%02.2k[**]%b[**]%v\n

4. The snmptrapd token must be configured into the pandora fms configuration file:

4. snmptrapd トークンが、Pandora FMS 設定ファイル内に設定されている必要があります。

snmp_trapd manual

5. To enable this functionality you need to complete the following procedure::

5. この機能を有効化するには、次の手順を実施する必要があります。

  • Change the configuration in /etc/pandora/pandora_server.conf
  • Stop the Pandora FMS server.
  • Check that the snmptrapd process isn't running (if it is running you can wait till the process stops or kill it)
  • Start snmptrapd manually (with the format indicated above).
  • Start the Pandora FMS Server.
  • /etc/pandora/pandora_server.conf の設定を変更
  • Pandora FMS サーバを停止
  • snmptrapd プロセスが動作していないことを確認 (もし動いていたら、停止するまで待つか kill します)
  • snmptrapd を手動で起動 (上記のフォーマットにて)
  • Pandora FMS サーバを起動

トラップログファイルの管理

The snmptrapd process can be stopped and started without having to stop or start the pandora server process if the pandora_snmptrap.log.index and pandora_snmptrap.log haven't been modified. If those files where modified it is necessary to restart to restart the pandora server. If you need to rotate externally the traps log files then you should restart the ppandora server, after deleting the two files previously mentioned.

pandora_snmptrap.log.index および pandora_snmptrap.log が変更されていなければ、snmptrapd プロセスは、pandora サーバプロセスの停止および起動に依存せず、停止および起動することができます。これらのファイルに変更が加わっている場合は、pandora サーバの再起動が必要です。トラップのログファイルを外部でローテートする必要がある場合は、前述の 2つのファイルを削除したあとに pandora サーバを再起動する必要があります。

SNMP トラップバッファリング

If SNMP traps are sent to an external manager through an unreliable connection some information will be lost. Pandora FMS allows you to instead forward traps from a local snmptrapd to your Pandora FMS Server in a reliable way.

SNMPトラップが信頼できない接続を介して外部マネージャに送信されると、情報が失われます。Pandora FMS では、トラップをローカルの snmptrapd からの転送ではなく、信頼できる方法で Pandora FMS サーバに転送することができます。

アーキテクチャ

ファイル:Remote snmp trap schema.jpg

  • An SNMP agent sends traps to a local snmptrapd.
  • A local Pandora FMS agent reads traps from snmptrapd's log file and sends them to the designated Pandora FMS Server inside an XML data file, saving it to the XML buffer and retrying at a later time if necessary.
  • The Data Server reads traps from XML data files and dumps them to a plain text file.
  • The SNMP Console processes traps from the plain text file.
  • SNMP エージェントは、ローカルの snmptrapd にトラップを送信します。
  • ローカルの Pandora FMS エージェントが snmptrapd のログファイルからトラップを読み取り、XML データファイルを用いて指定の Pandora FMS サーバへ送信します。それは XML バッファに保存され必要に応じてリトライされます。
  • データサーバは、XML データファイルからトラップを読み込み、プレーンテキストファイルに展開します。
  • SNMP コンソールは、プレーンテキストファイルからトラップを処理します。

Template warning.png

Having the SNMP Console directly process traps from snmptrapd's log file is more efficient. This setup should only be used if direct connectivity or reliability are a concern.


Template warning.png

SNMPコンソールが snmptrapd のログファイルから直接トラップを処理する方が効率的です。この設定は、直接の接続や信頼性に不安がある場合にのみ利用します。


前提条件

  • A local snmptrapd that is receiving traps.
  • A local Pandora FMS Agent.
  • A Pandora FMS installation.
  • ローカルの snmptrapd がトラップを受信すること。
  • ローカルの Pandora FMS エージェントがあること。
  • Pandora FMS がインストールされていること。

設定

snmptrapd

Edit the file /etc/snmp/snmptrapd.conf and make sure it is logging to a file in a format compatible with Pandora FMS (you can change the name of the log file if necessary):

/etc/snmp/snmptrapd.conf を編集し、Pandora FMS と互換性があるフォーマットでログをファイルに記録する設定になっているか確認します。(必要に応じてログファイル名を変更することができます)

[snmp] logOption f /var/log/snmptrapd.log
format1 SNMPv1[**]%4y-%02.2m-%l[**]%02.2h:%02.2j:%02.2k[**]%a[**]%N[**]%w[**]%W[**]%q[**]%v\n
format2 SNMPv2[**]%4y-%02.2m-%l[**]%02.2h:%02.2j:%02.2k[**]%b[**]%v\n

Pandora FMS エージェント

We will use the grep_snmptrapd plugin that comes with the Pandora FMS agent to read data from snmptrapd's log file.

snmptrapd のログファイルからデータを読む Pandora FMS エージェントに付属の grep_snmptrapd プラグインを利用します。

Edit the local agent's configuration file, /etc/pandora/pandora_agent.conf, and add the following line, adjusting the path of snmptrad's log file if necessary:

ローカルのエージェント設定ファイル /etc/pandora/pandora_agent.conf を編集し、必要に応じて snmptrapd のログファイルのパスを指定する次の行を追加します。

module_plugin grep_snmptrapd /var/log/snmptrapd.log

Pandora FMS サーバ

We need to tell the SNMP Console to process traps from an external log file that will be written by the Data Server.

SNMP コンソールが、データサーバにて書かれた外部ログファイルからトラップを処理するよに設定する必要があります。

Edit the server's configuration file, /etc/pandora/pandora_server.conf and:

サーバ設定ファイル /etc/pandora/pandora_server.conf 編集し、次の設定をします。

  • Make sure the SNMP Console is enabled:
  • SNMP コンソールが有効であるか確認します。
snmpconsole 1
  • Make sure the Data Server is enabled:
  • データサーバが有効であるか確認します。
dataserver 1
  • Configure an external SNMP log file. If it does not exist, the SNMP Console will create it:
  • 外部 SNMP ログファイルを設定します。存在しない場合は、SNMP コンソールが作成します。
snmp_extlog /var/log/pandora/pandora_snmptrap.ext.log

Template warning.png

snmp_extlog can be any file writable by the Pandora FMS Server, but it must be different from snmp_logfile (defined in /etc/pandora/pandora_agent.conf too).


Template warning.png

snmp_extlog は、Pandora FMS サーバで書き込み可能な任意のファイルです。(同様に /etc/pandora/pandora_agent.conf で定義されている)snmp_logfile とは異なります。


トラップジェネレータ

With this tool you can generate custom traps that we can later see in the SNMP console.

このツールは、SNMP コンソールから参照できるトラップを生成します。

ファイル:Generador de traps.png


In order to be able to configure correctly the trap generator we will have to fill in the following fields:

トラップジェネレータを正しく設定するには、次のフィールドを入力する必要があります。

  • Host Address: This is the destination IP to which we are going to send the trap.
  • Community: Where we will set the password of the SNMP community we are trying to access with the trap generator.
  • Enterprise String: The OID (Object Identifier) of the trap must be configured here. For example: 1.3.6.1.2.1.2.2.1.8
  • Value: The value that we want to give the trap and that will then appear as Data.
  • SNMP Agent: We have to insert the agent where we are going to simulate the trap, putting obligatorily the IP of the same one.
  • SNMP Type: We will have to choose a SNMP type between the following options:
    • Cold Start: Indicates that the agent has been started or restarted.
    • Warm Start: Indicates that the agent configuration has been modified.
    • Link down: Indicates that the communication interface is out of service (inactive).
    • Link up: Indicates that a communication interface has been activated.
    • Authentication failure: Indicates that the agent received a request from an unauthorized NMS (community-controlled)
    • EGP neighbor loss: Indicates that on systems where routers using the EGP protocol, a nearby host is out of service.
    • Enterprise: In this category you will find all the new traps. Including traps from suppliers.
  • ホストアドレス(Host Address): トラップ送信先 IP アドレス。
  • コミュニティ(Community): トラップジェネレータでアクセスするときの SNMP コミュニティ。
  • エンタープライズ文字列(Enterprise String): トラップの OID です。例: 1.3.6.1.2.1.2.2.1.8
  • 値(Value): トラップで送信するデータであり、値です。
  • SNMP エージェント(SNMP Agent): トラップをシミュレートするエージェントです。
  • SNMP タイプ (SNMP Type): 以下から SNMP タイプを選択します。
    • Cold Start: エージェントが開始または再開されたことを意味します。
    • Warm Start: エージェント設定が変更されたことを意味します。
    • Link down: 通信インタフェースが利用できない状態になった(無効化)ことを意味します。
    • Linu up: 通信インタフェースが利用できる状態になったことを意味します。
    • Authentication failure: エージェントが(コミュニティによって)認証できない NMS を受信したことを意味します。
    • EGP neighbor loss: ルータが EGP プロトコルを使用しているシステムで、近くのホストが利用できない状態になったことを示します。
    • Enterprise: ベンダトラップを含む、すべての新規トラップです。

(OBSOLETE)

トラップフィルタリング

In the upper part of the trap console option “Toogle Filter” is displayed. Clicking on that option trap filtering fields appear or dissappear.

トラップコンソールの上に "Toggle Filter" というオプションが表示されています。このオプションをクリックすることにより、トラップフィルタフィールドを表示したり隠したりできます。

Alert.png

It is feasible in the trap console to filter by following fields:

次のフィールドにより、トラップコンソールのフィルタリングができます。

  • Agent: Combobox where Pandora agentes are displayed.
  • エージェント(Agent): Pandora エージェントが表示されるコンボボックスです。
  • OID: Combobox where OIDs are displayed.
  • OID: OID が表示されるコンボボックスです。
  • Alert: Combobox to select either triggered or non-triggered alerts.
  • アラート(Alert): 通知済もしくは非通知のアラートを選択するコンボボックスです。
  • Search value: Combobox to freely input any text.
  • 検索する値(Search value): 任意の検索文字列を入力するコンボボックスです。
  • Severity: Combobox where the different trap types are displayed: Maintance, Information, Severity, Warning y Critical.
  • 重要度(Severity): メンテナンス、情報、正常、警告、障害のトラップのタイプを選択するコンボボックスです。
  • Status: Combobox to select between alert SNMP validated, not validated or all.
  • 状態(Status): 承諾済 SNMP アラート、未承諾、または全ての選択です。
  • Free search: search by any alphanumeric field in the trap.
  • 検索語(Free search): トラップの文字フィールドの検索です。
  • Type: type filter in SNMP alerts. Could be: Cold start, Warm start, Link down, Link up, Authentication failure or Other.
  • タイプ(Type): SNMPアラートのフィルタタイプです。Cold start, Warm start, Link down, Link up, Authentication failure その他を選択できます。

On top of these search fields there is the option “Block size of pagination”, that allows to define the ammount of traps to be displayed per page.

検索フィールドにはまた、"ページ毎の表示件数(Block size of pagination)"というオプションがあります。これで、1ページに表示するトラップの数を設定します。