Enterprise 技術情報 Enterprise Technical information
外部との連携 snmptrapをKompiraで受信する
snmptrapは、snmpプロトコルでネットワーク上の危機を監視する際に、監視対象になっている機器から管理用コンピュータにむけての通知機能です。主にネットワーク機器などの監視エージェントをインストールできないアラートを検知するのに使います。snmptrapが発行されるのは、あらかじめ指定した異常状態が発生した場合や、機器の状態を表すパラメータが設定された閾値を越えた場合等があります。
snmpとの違いは、snmpの場合は機器に向けて問い合わせや要求を行い、それに対する応答を得るという手順となります。snmptrapの場合は機器からの一方的な通知(トラップ)となります。
トラップの受信はzabbixなどのツールを使うことも多いですが、ここではKompiraサーバーで受信を行う方法をご紹介します。
大まかには以下のような流れとなります。
1. snmptrapdで受信
2. kompira_sendevtを使って、kompiraのチャネルに転送
3. チャネルで受信した情報をジョブフローで処理
環境情報
本記事は、以下の環境で検証しております。
kompira_sendevtコマンドのインストール
チャネルにデータを送信するユーティリティー kompira_sendevtをインストールします。手順については、別記事
「チャネルを利用した外部システムからのデータ受信」を参照してください。
snmptrapdのインストール
snmptrapdは”net-snmp”というパッケージによって提供されます。関連ユーティリティーを含めて、Kompiraサーバーにyumコマンドでインストールして下さい。
snmptrapdが起動していても上手くいかない場合には、ブロックされている可能性が考えられます。snmptrapはUDP162を使うため、ポートの制限をかけている場合にはUDP162を開放してください。
以上のようにして、snmpトラップの受信をすることができます。実際にはMIBの解決やコミュニティーの設定を入れるなどの必要がありますが、お使いになるネットワーク等の設定に合わせて適宜行ってください。受信したトラップについては今回は単にコンソールに表示するにとどめていますが、受信トラップの内容に応じてメールでの通知、情報収集、一次対応などをジョブフローで記述する事が出来ます。こちらも必要に応じて別記事を参照してご利用ください。
項目 | バージョン |
OS | CentOS Linux release 7.7.1908 |
Kompira | ver.1.5.5.post8 |
snmptrap | 5.7.2 |
# yum install net-snmp net-snmp-utils次に/etc/snmp/snmptrapd.confを編集して、トラップの受信条件を設定します。ここでは簡易的に以下のようにしました。 トラップを受信したらtraphandleディレクティブで指定されたkompira_sendevtを実行するようにします。
# cat /etc/snmp/snmptrapd.conf authCommunity log,execute,net public traphandle default /opt/kompira/bin/kompira_sendevtインストールが完了したら、以下のコマンドでsnmptrapdを起動させます。
# systemctl enable snmptrapd # systemctl start snmptrapdアラート受信のジョブフロー ここではトラップの受信確認を行うため、下記のような簡易なジョブフローを作成して実行します。
</system/channels/Alert> -> [message = $RESULT] -> print('${message}を受信しました') -> self()「self()」を追加して、トラップを受信した表示後に繰り返し、受信待機状態に戻るようにしています。 トラップの送信テスト 上記のジョブフローを実行すると、ステータスが「待ち」の状態になり、チャネルを通じたトラップ情報の受信待機となります。 ここで実際にトラップを送ってみましょう。Kompiraサーバーにインストールしたユーティリティー”snmptrap”を使って、下記コマンドを実行することでsnmptrapを送信することができます。
$ snmptrap -v 2c -c public localhost '' systemStats 1 s "This is test"実行後、Kompira側のコンソールは以下のようになり、受信確認が出来ました。

スタートガイド
Kompiraジョブフローの基礎
ジョブフローの簡単な例
Kompiraの機能
-
- フィールド修飾子でフィールドの入力内容に制約を設ける
- Kompiraでの文字列のパターンマッチング
- Kompira上でWikiページを作成する
- スケジューラを使って定期的にジョブを実行する
- ジョブフローを実行するフォームを作成する
- テーブル内の情報を選択して処理を実行する
- ジョブフローに権限設定をする
- ジョブフロー画面の各種設定
- Pythonで記述された処理をKompiraから呼び出す
- Kompiraオブジェクトのプロパティ,メソッド,フィールドを扱う
- Windowsでリモートスクリプトを実行する(その1)
- Windowsでリモートスクリプトを実行する(その2)
- Kompira上のデータをバックアップする(その1)
- Kompira上のデータをバックアップする(その2)
- Kompira上のデータをバックアップする(その3)
外部との連携
-
- Prometheusからの通知をKompiraで受信する
- Kompira cloud Pigeonを利用した通知電話の利用
- ネットワーク機器へのコマンド投入
- KompiraからWindowsGUIアプリケーションを操作する (1/2)
- メールを送信する
- メール受信をトリガーにしてジョブフローを実行する
- アラートメールをフィルタリングして転送する
- チャネルを利用して外部システムからデータを受信する
- Webページから内容を取得する
- Redmineへ新規チケットを登録する
- Redmineでのチケット作成をKompiraに通知する
- Kompira REST APIを利用して外部からジョブフローを実行する
- Kompira REST APIを利用して外部からオブジェクト情報を取得する
- KompiraからSlackに通知する
- Slackでの投稿をKompiraに通知する
- KompiraからTwilioで電話をかける
- Zabbixからの通知をKompiraで受信する
- syslogをKompiraで受信する
- snmptrapをKompiraで受信する
- KompiraでExcelファイルの読み書きをする
- KompiraでGoogle SpreadSheetの読み書きをする
- Active Directoryから情報を取得する
- Active Directoryにユーザーを登録する