squidGuardで利用しているURL更新スクリプトは、更新されたURL数をログに出力するので、そのURL数の情報を抽出して、Zabbixにてログ監視を行う。当然、squidGuard以外でも、ログに数値が出されるもの(例えばウイルススキャンの結果など)であれば、同様の方法で監視ができるようになる。
環境
今回の環境は以下の通りとなる。------------------------------
・Zabbix: 2.2.19
・Squid Cache: Version 3.5.20
・SquidGuard: 1.4 Berkeley DB 5.3.21: (May 11, 2012)
アイテムを作成
まずは、監視対象のホストにアイテムを追加する。監視対象のログは以下のような内容となる。2017-09-18 14:24:14 [1402] update: added 35 entries, deleted 0 entries
update: added XX entriesのXXの値を取り出して監視をすることにする。今回は以下のように設定した。
------------------------------
・名前:squidGuard
・タイプ:Zabbixエージェント (アクティブ)
・キー:
log[/var/log/squidGuard/squidGuard.log,"update: added ([0-9]+)",,,skip,\1]
・データ型:ログ ※「数値」でも問題ないと思われる
・更新間隔(秒):30
・ヒストリ保存期間(日):7
・アプリケーション:OS
------------------------------
「保存」ボタンを押して、想定通りアイテムが作成されていることを確認する。
「キー」の設定について、もう少し詳しく説明する。logの構文は以下の通りとなる。
log[/path/to/file/file_name,<regexp>,<encoding>,<maxlines>,<mode>,<output>]
第1引数には監視対象をログのフルパスを指定する。
第2引数<regexp>にはログに含まれる取得対象の文字列を記載する。ここで、数値として取り出したい箇所に「([0-9]+)」を記載する。これは正規表現で「1桁以上の連続する数字」を表している。()で囲んでいる意味は後述する。
第5引数<mode>はall (デフォルト)とskipが選べる。allの場合は、監視対象ログの過去のログも遡って取得する。skipを指定すると、過去のログは取得しない。Zabbixサーバが停止している時間の監視漏れを防止したいのであればallとした方がよいのだが、過去のログが大量にある場合は、多数のログ取得・トリガーの実行が発生してZabbixが高負荷になる恐れがあるので注意する。
第6引数<output>に「\1」を指定する。これは第2引数で()で囲んだ箇所をアイテムの値として抽出するという設定となる。
トリガーを作成
次に、先ほど作成したアイテムに対するトリガーを作成する。------------------------------
・名前:squidGuard
・条件式:
{t3023ce72:log[/var/log/squidGuard/squidGuard.log,
"update: added ([0-9]+)",,,skip,\1].last()}#0
・障害イベントを継続して生成:チェック
・深刻度:軽度の障害
------------------------------
条件式ビルダーで条件式を作成する場合は、以下のように設定する。
これでZabbix側の設定は完了となる。
監視テスト
試しに監視対象ログに文字列を書き込んで監視テストをしてみる。さくっとechoでログに文字列を書き込んでみる。# echo "2017-09-18 14:24:14 [1402] update: added 35 entries, deleted 0 entries" >> /var/log/squidGuard/squidGuard.log
ログを確認する。下線部の情報がZabbixにアイテムとして取り込まれる想定となる、
# tail /var/log/squidGuard/squidGuard.log
------------------------------
2017-09-18 14:24:14 [1402] update: added 35 entries, deleted 0 entries
------------------------------
Zabbix側で「監視データ」→「最新データ」を表示し、先ほど設定した「squidGuard」のアイテムのヒストリを確認する。
以下の通り、値のみが取得できている。
「監視データ」→「トリガー」を確認すると、こちらも想定通りsquidGuardのトリガーが動作していることが確認できる。
以上で、設定は完了となる。
参考
・Zabbix Documentation 2.2 - 6 ログファイル監視https://www.zabbix.com/documentation/2.2/jp/manual/config/items/itemtypes/log_items
0 件のコメント:
コメントを投稿