Advanced Trap Receiver のトラップデータ(トラップ受信イベント)はオープンソースの総合監視ソフトウエア Zabbix のヒストリデータに登録することができます。この機能は Advanced Trap Receiver に含まれるアプリケーション連携用の Pythonスクリプト を利用して簡単に実現することができます。Advanced Trap Receiver のフィルタリング機能(エージェント、トラップOID、バインド変数のフィルタ、重複管理や破棄設定)を活用して、監視を行いたいトラップのみを登録することができます。
ヒストリデータには、トラップの基本情報(エージェント稼働時間、トラップOID、バインドデータ)とトラップの説明(description)が登録されるため、トラップの内容を手間なくスピーディーに把握することができます。
設定方法の概要は以下の通りです。
- (Zabbix) トラップ登録用のテンプレートをインポート
- (Zabbix) トラップを登録するホストにトラップ登録用のテンプレートを追加
- (Zabbix) 登録されていない SNMPエージェント のトラップをまとめて登録するホスト設定をインポート
- (Python) Advanced Trap Receiver のトラップデータを Zabbix に登録するスクリプトのパラメータ設定
- (Systemd) 指定した間隔(周期)でトラップデータの登録を行うための設定
* Zabbix は Zabbix SIA のラトビアおよびその他の国における登録商標または商標です。
* 本ページの内容に関するご質問等は、株式会社アド・コムにお問い合わせください。
(補足)
- Zabbix のバージョンは 3.0 LTS, 4.0 LTS および 5.0 LTS、 データベース は MySQL(MariaDB) と PostgreSQL に対応します。
- Python のバージョンは 3.6 に対応します。
- systemd が動作する環境に対応するものとします。
- RPMパッケージ(EL8 x86-64用)でのインストールも可能です。
- (Zabbix) トラップ登録用のテンプレートをインポート
テンプレートファイル zbx_export_templates_App_ATR_Trap.xml(テンプレート名 Template App ATR Trap)をインポートします。
- (Zabbix) トラップを登録するホストにトラップ登録用のテンプレートを追加
トラップを登録するホストに、1.で登録したテンプレート(Template App ATR Trap)を追加します。
- (Zabbix) 登録されていない SNMPエージェント のトラップをまとめて登録するホスト設定をインポート
ホスト設定ファイル zbx_export_hosts_Unknown_Trap_Agents.xml(ホスト名 Unknown Trap Agents)をインポートします。
このホスト設定は、Zabbix のホストに登録されていない複数の SNMPエージェント のトラップをまとめて登録する Unknown Trap Agents として登録されます。
- (Python) Advanced Trap Receiver のトラップデータを Zabbix に登録するスクリプトのパラメータ設定
Zabbixサーバの任意のディレクトリに上記ファイルを配置し、環境に合わせて config.ini を編集します。
# Advanced Trap Receiver Import Event Parameters # (config.ini) ######## Advanced Trap Receiver(ATR) [db_atr] host = localhost port = 3306 name = atr user = atr pswd = atr [loopback] # zabbix host item name of ATR loopback address(127.0.0.1, ::1 and localhost) zbx_host = Zabbix server ######## ZABBIX [db_zbx] # type values: mysql or postgres type = mysql host = localhost # default port values: 3306(mysql) or 5432(postgres) port = 3306 name = zabbix user = zabbix pswd = zabbix # priority values: ip or dns(case exist both data) priority = ip [sender] bin = /usr/bin/zabbix_sender server = localhost port = 10051 key = atr.snmptrap # unknown host item name(case zabbix host item of trap agent is not set) unknown = Unknown Trap Agents ######## LOG [log] dir = /var/log/import_atr format = import_atr-%%Y%%m display = 0 debug = 0
Advanced Trap Receiver のトラップエージェント情報(ホスト名、IPアドレス)と Zabbix のホスト設定のインタフェース情報(IPアドレス、DNS名)を利用して、トラップデータに対する Zabbix の登録ホストを選定するため、Zabbix の登録ホスト毎の設定等は不要です。
- (Systemd) 指定した間隔(周期)でトラップデータの登録を行うための設定
Zabbixサーバの /etc/systemd/system ディレクトリに上記ファイルを配置し、トラップデータを登録する間隔(周期)を import-atr.timer の OnUnitInactiveSec パラメータで指定します(前回の登録処理が完了したときからの相対的な時間を指定します)。
[Unit] Description=Advanced Trap Receiver Import Event Timer [Timer] OnBootSec=1min OnUnitInactiveSec=1min [Install] WantedBy=timers.target
systemdタイマーに import-atr.timer を追加して、Advanced Trap Receiver のトラップデータを Zabbix のヒストリデータに登録する機能を開始します。
# systemctl enable import-atr.timer # systemctl start import-atr.timer
トラップ登録用のテンプレート(Template App ATR Trap)を追加したホストのアイテム(snmptrap)として、トラップの基本情報(エージェント稼働時間、トラップOID、バインドデータ)とトラップの説明(description)のヒストリデータが登録されます。トラップの説明は Advanced Trap Receiver の MIBオブジェクトデータ を利用して登録されます。
ホスト名 Unknown Trap Agents のアイテム(snmptrap)は、複数の SNMPエージェント のトラップが登録されるため、trapAgent の情報が追加されたヒストリデータが登録されます。
Zabbixへのトラップの登録は zabbix_sender の機能を利用するため、一度に最大250件のトラップデータをヒストリデータに登録することができ(250件以上は複数回に分けて登録)、少ない負荷で効率的にトラップデータを登録することができます。
さらに詳しい情報の提供を希望される場合は、こちらよりお申し込みください