はじめに
ホワイトボックススイッチといえばOSSの活用ですね。今回ご紹介するのは、OSSのZabbixを活用したホワイトボックススイッチの監視です。Cumulus Linuxは、ホワイトボックススイッチ上で動作するDebian LinuxベースのネットワークOSで、好きなパッケージをインストールすることが可能です。CumulusにZabbix Agentをインストールし、監視してみます。使用するZabbixの環境は下記です。
- OS:CentOS Linux release 7.7.1908 (Core)
- Zabbix server:4.4
- Cumulus Linuxの監視
- Zabbix Agentのインストール
- Cumulus LinuxのSNMP設定
- 監視ホストの設定
- テンプレートの設定(標準テンプレート)
- テンプレートの設定(カスタム)
- Trapの監視設定
Cumulus Linuxの監視
CumulusにZabbix Agentをインストールし、Agentによる監視とSNMPによる監視を組み合わせて使用します。

-
Zabbix Agentによる監視
- Zabbixで標準で用意されているテンプレートし、各種監視項目を一括設定します。
-
SNMPによる監視
- テンプレートを作成し、性能監視したいSNMP OIDを監視アイテムとして登録します。
Zabbix Agentのインストール
リポジトリ設定パッケージのインストール
$ wget http://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+jessie_all.deb
$ sudo dpkg -i zabbix-release_3.4-1+jessie_all.deb
$ sudo apt-get update
インストールsudo apt-get install zabbix-agent
設定ファイル編集(/etc/zabbix/zabbix_agentd.conf)$ vi /etc/zabbix/zabbix_agentd.conf
Server=(ZabbixサーバのIPアドレス)
Hostname=(Zabbixエージェントのホスト名) *Zabbixサーバ上のホスト設定と合わせる必要があります
ServerActive=(ZabbixサーバのIPアドレス)
サービス起動&自動起動設定$ sudo systemctl start zabbix-agent
$ sudo systemctl enable zabbix-agent
Cumulus LinuxのSNMP設定
SNMPコミュニティ、Trap設定を行います。
$ net add snmp-server readonly-community public access any
$ net add snmp-server trap-destination 192.168.100.81 community-password public version 2c
$ net add snmp-server trap-link-down check-frequency 10
$ net add snmp-server trap-link-up check-frequency 10
$ net add snmp-server trap-snmp-auth-failures
$ net commit
監視ホストの設定
ZabbixのWEB UIから、監視対象として先ほどZabbix Agentをインストールした機器を登録します。[設定] > [ホスト] > [ホストの作成]をクリックします。
ホスト名、グループ、エージェントのインターフェースアドレス、SNMPインターフェースアドレスを設定し、追加をクリックします。

テンプレートの設定(標準テンプレート)
Zabbixでは、監視項目、障害定義、グラフ設定などをテンプレート化し、複数の監視対象にまとめて同一の設定を適用することが可能です。今回はZabbixで標準で用意されているテンプレート(Template OS Linux by Zabbix agent active)を使用し、監視項目を一括設定します。[設定] > [ホスト]から先ほど作成したホストをクリックし、[テンプレート]タブをクリックします。[選択]から対象のテンプレートを選択し、[更新]クリックします。

対象ホストを確認すると、監視アイテム、トリガー、グラフ設定が一括設定されているのが分かります。

[監視データ] > [最新データ]をクリックし、対象ホストの取得データを確認すると、CPU、メモリ、ディスク、プロセス、インターフェースなどの各種情報を取得できています。


Zabbix Agentを使用し、また標準テンプレートを設定するだけで、全インターフェースのトラフィックカウンター(In/Out/discard/error)の監視が一括設定できました。非常に簡単ですね。
試しにこの取得したデータを使用して、スクリーンにて任意のグラフを設定してみます。[監視データ] > [スクリーン] > [スクリーンの作成]をクリックします。任意の名前、また列、行を入力し、追加をクリックします。

作成したスクリーンをクリックし、[スクリーンの変更]をクリックします。その後、下記[変更]をクリックし、グラフを追加していきます。

[選択]をクリックし、グラフ表示する監視対象を選択し、追加をクリックします。この例では、swp49(ポート49)のトラフィックカウンターを選択しています。

同手順で右側には、swp50のトラフィックカウンターを追加します。以下のとおり、簡単にカスタムグラフの作成まで出来ました。

テンプレートの設定(カスタム)
ここではSNMPで監視するカスタムテンプレートを作成します。[設定] > [テンプレート] > [テンプレートの作成]をクリックし、テンプレート名、グループを入力し、テンプレートを追加します。

Entity-Sensor MIBのentPhySensorOperStatus(PSU1Temp1の動作ステータス)を試しに監視アイテムとして設定してみます。先ほど作成したテンプレートをクリックし、[アイテム] > [アイテムの作成]をクリックします。赤枠のところを入力し、[追加]をクリックします。

トリガーなどのその他の設定は省略します。カスタムテンプレートの設定が完了したので、監視対象のホストにテンプレートを適用します。[設定] > [ホスト]から対象ホストを選択し、[テンプレート]タブをクリックします。[選択]をクリックし、先ほど作成したテンプレート(cumulus_sample_template)を選択し、[更新]をクリックします。

[監視データ] > [最新データ]をクリックし、下記のとおりデータが取得出来ていれば設定OKです。ok(1), unavailable(2), nonoperational(3)です。

同じ流れでテンプレートに性能監視したいSNMP OIDをアイテムとして複数登録し、ユーザー環境にあわせた監視設定が可能です。また、後から監視項目を追加したい場合でも、テンプレートへアイテムを追加するだけで、リンクされているホストへも自動で適用されます。
Trapの監視設定
Zabbixでは、Trapを直接受信することができないため、Zabbix宛てに送信されたTrapをsnmptrapd(Net-SNMP)で受信し、SNMPTTがデータ書式を整形してログファイルに出力し、Zabbixはそのログを監視することで、Trap監視を実現しています。SNMPTT、snmptrapdのインストールや環境設定については省略します。ネット上に沢山関連の記事があるのでそちらをご参考下さい。
Zabbixに表示するTrapのフォーマットの設定ファイルは、/etc/snmp/snmptt.confですが、今回SNMP Authentication Failure Trapでテストするので下記のように設定しました。
/etc/snmp/snmptt.conf
EVENT authenticationFailure .1.3.6.1.6.3.1.1.5.5 "Status Events" Normal
FORMAT ZBXTRAP $aA SNMP authentication failure
上述のSNMPの監視と同様にまずテンプレートを作成し、Trapを監視するアイテムを追加します。テンプレート作成の手順は省略します。ここでは、cumulus_trap_allという名前のテンプレートを作成しました。次にアイテムの作成では、タイプ:SNMPトラップを選択し、キー:snmptrap[](正規表現は省略し、全てのTrapを対象とする)としています。

ここでは、トリガーも設定してみます。[設定] > [テンプレート]から対象のテンプレートをクリックします。[トリガー]タブをクリックし、[トリガーの作成]をクリックします。[条件式]では、一旦全てのTrapを対象とする設定とし、[深刻度]を一律で[警告]に設定しています。当然条件式でフィルターすることで、Trap毎に深刻度を設定することも可能です。

作成したテンプレートをホストに適用します。手順は、上述のSNMP監視と同様なので省略します。下記がテンプレート(cumulus_trap)を適用した状態です。

Cumulusにログインし、試しにAuthentication FailureのSNMPトラップをZabbixサーバ宛てに送信してみます。
$ sudo snmptrap -v 2c -c public 192.168.100.81 '' .1.3.6.1.6.3.1.1.5.5
Zabbixのダッシュボードを確認すると、警告として表示されました。

ヒストリで確認すると、下記のようにメッセージが確認できます。

以上がZabbixを活用したホワイトボックススイッチの監視編でした。いかがでしたでしょうか。複数のホストに共通で適用したいアイテムやトリガーをテンプレート化することで、監視設定を効率化することが出来ました。今後もホワイトボックススイッチに関するお役立ち情報をブログで適宜公開していきます。製品にご興味ある方は、是非お気軽に下記サイトからお問合せ下さい。
ホワイトボックススイッチに興味ある方はこちらへ
ホワイトボックススイッチに関するお問合せはこちらへ