はじめに
今回はZabbixでログ監視を行う方法を紹介します。
前提
今回紹介するトリガーの作成は、以下の環境設定が設定済みであることが前提です。
↓今回の前提条件を構築する方法は、以下を参考にしてみてください。
環境設定
ネットワーク構成図は、以下の通りです。
環境
【Zabbix01】今回設定するZabbix serverがインストールされています。OSはCentOS8。
【PC01】Zabbix01をVMware上で構築しているホストOS。OSはWindows10。
【rt01】監視対象のルーター。機器はCiscoのCisco1921/K9。
【sw01】監視対象のスイッチ。機器はCiscoのCatalyst2960。
【sw02】監視対象のスイッチ。機器はCiscoのCatalyst2960。
アイテム設定
トリガーに使うアイテムは、以下の通りです。
rt01の設定
【名前】LogMonitoring_rt01
【タイプ】Zabbixエージェント(アクティブ)
【キー】log[/var/log/zabbix_logtest/rt01,,,,skip]
【データ型】ログ
sw01の設定
【名前】LogMonitoring_sw01
【タイプ】Zabbixエージェント(アクティブ)
【キー】log[/var/log/zabbix_logtest/sw01,,,,skip]
【データ型】ログ
sw02の設定
【名前】LogMonitoring_sw02
【タイプ】Zabbixエージェント(アクティブ)
【キー】log[/var/log/zabbix_logtest/sw02,,,,skip]
【データ型】ログ
トリガーの追加方法
トリガーの作成
テンプレート名「A_Test_log」のトリガーを選択します。(画像はすでに3つ登録されている状態ですが、何も登録していない場合は数字は表示されません。)
「A_Test_log」は、今回使いたいアイテムが設定されているオリジナルのテンプレートです。
次に、トリガー一覧画面の右上にある[トリガーの作成]を選択します。
トリガーの作成画面が表示されます。
トリガーの設定(書式)
トリガーを以下のように設定すると、rt01用のトリガーが作成できます。
rt01のトリガー
【名前】LogMonitoringTrigger_linkdown_rt01
【深刻度】重度の障害
【障害の条件式】{A_test_log:log[/var/log/zabbix_logtest/rt01,,,,skip].str(changed state to down)}=1
【復旧の条件式】{A_test_log:log[/var/log/zabbix_logtest/rt01,,,,skip].str(changed state to up)}=1
他の機器については、以下のように設定します。
sw01のトリガー
【名前】LogMonitoringTrigger_linkdown_sw01
【深刻度】重度の障害
【障害の条件式】{A_test_log:log[/var/log/zabbix_logtest/sw01,,,,skip].str(changed state to down)}=1
【復旧の条件式】{A_test_log:log[/var/log/zabbix_logtest/sw01,,,,skip].str(changed state to up)}=1
sw02のトリガー
【名前】LogMonitoringTrigger_linkdown_sw02
【深刻度】重度の障害
【障害の条件式】{A_test_log:log[/var/log/zabbix_logtest/sw02,,,,skip].str(changed state to down)}=1
【復旧の条件式】{A_test_log:log[/var/log/zabbix_logtest/sw02,,,,skip].str(changed state to up)}=1
トリガーの設定内容の説明
今回紹介している設定は、Zabbixサーバー内にある「/var/log/zabbix_logtest/rt01」というログファイルに「changed state to down」という文字列が現れたら「重度の障害」としてアラートを出すという設定になります。ちなみにchanged state to downはCisco機器のポートがリンクダウンした時に出すログの一部です。
また、復旧条件を「/var/log/zabbix_logtest/rt01」に、「changed state to up」が出現したら、出していた障害を解除するという設定になります。
ログ監視方法の補足
Zabbixのログ監視に指定しているログファイルのチェック方法は、「ログが新たに発生した場合に、そのログをチェックする」という方法が取られます。書き込まれるたびにそのログファイル内を全て参照するわけではないので、「changed state to up」が新たに発生した際にはそのログだけを参照して復旧という判断をしています。
以下は、rt01、sw01、sw02をそれぞれ設定したトリガー一覧の結果です。
Zabbixサーバーに設定
トリガーを作成した後は、Zabbix01(監視するZabbixサーバー)に、テンプレートを追加します。
これで設定は完了です。設定完了後、ログ監視は開始されます。
以下は、トリガーを実際に設定した結果です。「A_Test_log」がZabbixサーバーに登録されています。
ログ監視の設定をもっと簡単に(ZabbixAPIのすすめ)
今回はアイテム・トリガーの追加が3つずつでしたが、ホストが大量にあったら作業の手間も膨大です。
その時には「Zabbix API」を活用してみましょう!!登録したい情報をcsv形式で入力して、簡単に大量登録ができる方法があります!
以下に私が実際に試した記憶があるので、興味がある方は是非どうぞ!!