ZabbixにてL2スイッチのポート毎にlinkup/linkdownを検知する設定方法を記載します。
やりたいこと
特定のポートのlinkdownで障害を検知、linkupで障害検知後60秒でダッシュボード上から消えるようにする。
また、GigabitEthernet x/0/xx
のポートのみ監視する。
(loopbackやBluetooth等は監視しない)
linkup/linkdown以外のsnmptrapについては、アイテムとして収集はするが、アラート検知はしない。
例
- Gi1/0/1でlinkdownを検知する
→Gi1/0/1としてinkdown検知
- Gi1/0/2でlinkdownを検知する
→Gi1/0/2としてlinkdown検知(Gi1/0/1のlinkdownとは別の障害)
- Gi1/0/1でlinkupを検知する
→Gi1/0/1でlinkupを検知、Gi1/0/1のlinkdown障害はダッシュボードから消える
- Gi1/0/1で障害が起きないまま60秒が経過
→Gi1/0/1のlinkup障害がダッシュボードから消える
- [一般設定]の[マクロ]にSNMPコミュニティのマクロを作成する
- 監視対象ホストを作成する
- テンプレートを作成する
- テンプレートのアイテムにて、snmptrapを全て収集するように設定する
- ディスカバリルールにて、ポートの一覧情報を取ってくるように設定する
- アイテムのプロトタイプにて、ポート毎にアイテムを収集するように設定する
- トリガーのプロトタイプにて、linkup/downを検知するように設定する
- Zabbixサーバ:Zabbix 3.0.30
- 監視対象:Catalyst9200L
- Zabbix Webインターフェースにログインする
- [管理] > [一般設定] > [マクロ]をクリックする
- 以下の項目を入力し、[更新]をクリックする
- マクロ:
{$SNMP_COMMUNITY}
- 値:
public
(※監視対象のSNMPコミュニティ名)
- [設定] > [ホスト]をクリックする
- [ホストの作成]をクリックする
- 以下の項目を入力・選択し、[追加]をクリックする
- ホスト名:TEST-C9200L(※任意の文字列)
- 表示名:空白(※デフォルト値)
- グループ or 新規グループ作成:TEST(※任意の文字列)
- エージェントのインターフェース:使用しない場合は[削除]をクリック
- SNMPインターフェース:[追加]をクリックし、以下項目を入力する
- IPアドレス:192.168.1.2(※監視対象のIPアドレス)
- DNS名:空白(※デフォルト値)
- 接続方法:IPアドレス(※デフォルト値)
- ポート:161(※デフォルト値)
- 標準:チェック
- 説明:空白(※デフォルト値)
- プロキシによる監視:(プロキシなし)(デフォルト値)
- 有効:☑
- Zabbix Webインターフェースにログインする
- [設定] > [テンプレート] をクリックする
- [テンプレートの作成] をクリックする
- 以下の項目を入力し、[追加]をクリックする
- テンプレート名:TEST-C9200L_TRAP(※任意の文字列)
- グループ or 新規グループ作成:TEST(※任意の文字列)
- 「TEST-C9200L_TRAP」の[アイテム]をクリックする
- [アイテムの作成]をクリックする
- 以下の項目を入力し、[追加]をクリックする
- 名前:TEST-C9200L_snmptrap(※任意の文字列)
- タイプ:SNMPトラップ
- キー:snmptrap[]
- データ型:ログ
- ヒストリ保存期間(日):90(※デフォルト値)
- ログの時間の形式:YYYY/MM/dd hh:mm:ss
- アプリケーションの作成 or アプリケーション:空白(※デフォルト値)
- 説明:空白(※デフォルト値)
- 有効:☑
「TEST-C9200L_TRAP」の[ディスカバリ]をクリックする
[ディスカバリルールの作成]をクリックする
以下の項目を入力・選択する
- 名前:Network Interfaces Discovery(※任意の文字列
- タイプ:SNMPv2エージェント
- キー:net.if.discovery
- SNMP OID:
discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]
- SNMPコミュニティ:
{$SNMP_COMMUNITY}
- ポート:空白
- 更新間隔(秒):60(※デフォルト値:3600)
- 存在しなくなったリソースの保持期間(日):30
- 説明:
Discovering interfaces from IF-MIB. Interfaces are not discovered:
- with down(2) Administrative status
- with notPresent(6) Operational status
- loopbacks(※任意)
- 有効:☑
※Zabbix 4.0の標準テンプレートの『 Template Module Interfaces SNMPv2』に設定されている ディスカバリルール『 Network Interfaces Discovery』と同一
- フィルターをクリックし、以下の項目を入力し、[追加]をクリックする
- 計算のタイプ:And/Or(※デフォルト値)
- And:すべての条件を満たす
- Or:いずれかの条件を満たす
- And/Or:同一マクロ名では
Or
、異なるマクロ名ではAnd
を使用する
- フィルタ:
{#IFDESCR}=GigabitEthernet[0-9]\/[0-9]\/(.|..)$
- 「Network Interfaces Discovery」の[アイテムのプロトタイプ]をクリックする
- [アイテムのプロトタイプの作成]をクリックする
- 以下項目を入力・選択し、[追加]をクリックする
- 名前:TEST-C9200L_{#IFNAME}_snmptrap(※任意の文字列)
- タイプ:SNMPトラップ
- キー:
snmptrap[{#IFDESCR}($|\s)]
- データ型:ログ
- ヒストリの保存期間(日):90
- ログの時間の形式:YYYY/MM/dd hh:mm:ss
- アプリケーションの作成 or アプリケーション:空白(※デフォルト値)
- アプリケーションプロトタイプの作成 or アプリケーションプロトタイプ:空白(※デフォルト値)
- 説明:空白(※デフォルト値)
- 有効:☑
- 「Network Interfaces Discovery」の[トリガーのプロトタイプ]をクリックする
- [トリガーのプロトタイプの作成]をクリックする
- 以下項目を入力し、[追加]をクリックする
- 名前:TEST-C9200L_{#IFNAME}_LinkDown(※任意の文字列)
- 条件式:
{TEST-C9200L_TRAP:snmptrap[{#IFDESCR}($|\s)].iregexp("Link Down")}<>0
- 障害イベントを継続して生成:☑
- 説明:空白(※デフォルト値)
- URL:空白(※デフォルト値)
- 深刻度:警告(※任意の深刻度)
- 3と同様に、以下項目を入力し、[追加]をクリックする
- 名前:TEST-C9200L_{#IFNAME#}_LinkUp(※任意の文字列)
- 条件式:
TEST-C9200L_TRAP:snmptrap[{#IFDESCR}($|\s)].nodata(60)}=0
and
{TEST-C9200L_TRAP:snmptrap[{#IFDESCR}($|\s)].iregexp("Link Up")}0
- 障害イベントを継続して生成:□
- 説明:空白(※デフォルト値)
- URL:空白(※デフォルト値)
- 深刻度:情報(※任意の深刻度)
- [設定] > [ホスト]をクリックする
- 「TEST-C9200L」をクリックする
- [テンプレート]をクリックする
- 「新規テンプレートをリンク」にて[選択]をクリックし、「TEST-C9200L_TRAP」を選択し、[追加]をクリックする
- [更新]をクリックする
- 「TEST-C9200L」の[アイテム]をクリックし、ポート毎のアイテム取得が正常に行われていることを確認する
- 「ディスカバリルールの作成」を参考に、更新間隔をデフォルトの「3600」に戻す
ではキーとして{#IFNAME}
を使用している。
しかし、検証環境ではポートの名称が省略しない形(GigabitEthernet1/0/1)で出力されたため、{#IFDESCR}
を用いる。
コメント