設定は以下のようにしています。 Windowエベントのチェックの場合は
アイテム :
タイプ:Zabbixエージェント(アクティブ)
データー型:ログ
キー:eventlog[Application] OR eventlog[Application,,Warning,,100]
更新間隔:1
トリガー :
条件式:{Template_Window_Log_Monitor:eventlog[Application].iregexp(@messages)}=1
OR
条件式:{Template_Window_Log_Monitor:eventlog[Application].logseverity(0)}=1
OR
条件式:{Template_Window_Log_Monitor:eventlog[Application].iregexp(Error)}=1
OR
条件式:{Template_Window_Log_Monitor:eventlog[Application,,Warning,,100].logsource(@messages)}=0
TNK - 投稿数: 4740
サービスの状態を取得することは可能です。
ただし、Windowsが正しい値を返さない場合があるかもしれません。
https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/z...
それ以外にポート番号を指定して接続可能かどうかなどのチェック
もした方が良いかもしれません。
Zabbix 3.4を使用されているのであれば、テンプレートの「Template
OS Windows」でサービス監視の設定が用意されているので、その設定
も参考にしてみてください。
pramod1301 - 投稿数: 24
情報ありがとうございます。
ただ、Windowログ(エベントビューアー)
....Application
....Security
....XXXX
上記のレベルがエラー又は警告の時判断したいです。
エベントビューアーの全般に表示されているメッセージを取得して、ZABBIXの方で表示したいです。
TNK - 投稿数: 4740
ご紹介したURLのページをご覧になられましたか?
イベントログを監視したいのであれば、eventlog[]を使用してください。
pramod1301 - 投稿数: 24
ウインドエベントの検知が出来ていないです。
Zabbixサーバ :3.4
検知Window :Window Server 2012 R2
上記のリンクを参考にて、アイテムを作成しました。
アイテム :
タイプ:Zabbixエージェント(アクティブ)
データー型:ログ
キー:eventlog[Application]
更新間隔:1
トリガー :
条件式:{Template_Window_Log_Monitor:eventlog[Application].iregexp(@messages)}=1
@messages は正規表現で設定されています。
messages 結果が真 error|Error|warning|Warning
どこで間違っているかよくわかりません。
※@messages の代わりにError書いても確認しました。
{Template_Window_Log_Monitor:eventlog[Application].iregexp(Error)}=1
ウインドエベントエラー作成:
eventcreate /t error /id 100 /l application /d "Zabbix Test Application log"
TNK - 投稿数: 4740
eventcreateの/tでErrorを指定して、そのイベントログを検知した
いのであれば、iregexp()ではなくlogseverity()を使用してみてく
ださい。
マニュアル:
https://www.zabbix.com/documentation/3.4/manual/appendix/triggers/functions
pramod1301 - 投稿数: 24
返事ありがとうございました。
Warning、Error 複数対応したい場合は?
pramod1301 - 投稿数: 24
logseverity()を設定して、確認したんですが、エラーログが表示されていません。
fripper - 投稿数: 495
pramod1301 さん
今一度、現時点で、どのようなアイテム設定としているのか?(キーに設定している値やデータ型など、各種設定項目)や
ZabbixのWebUIのどの画面・どの部分でどのような選択肢を選択して、動作を確認しているのか?
その画面で、どのような表示となっているのか?どのような表示になることを期待しているのか?など
サンプルとしてイベントログ情報を生成して投げ込んだうえで動作を確認されているご様子ですが
どのようなコマンド列で確認されているのか?
といった部分を、順序だてて記載をお願いできませんでしょうか?
「キー設定では「〇〇××‥」のように記載していて
Windows側のコマンドプロンプト上にて「〇〇××‥」といった形でコマンド実行してみているが
Zabbix画面の「最新データ」にて当該Windowsホストを選択しても
イベントログを示すような項目・選択肢が出てこない」
など
そもそも項目がリストに出てこないようであれば、ホスト側やアイテム側の設定に問題があるのかもしれず
もしそういった状況であれば、トリガー等の設定をいくら弄っても、状況は良くならないためです
よろしくお願いいたします
pramod1301 - 投稿数: 24
Friiperさん返事ありがとうございました。
環境 :
Zabbix Server: 3.4 (RHEL7.3にインストール)
検知OS :Window Server 2012 R2
RHEL7.3
設定は以下のようにしています。
Windowエベントのチェックの場合は
アイテム :
タイプ:Zabbixエージェント(アクティブ)
データー型:ログ
キー:eventlog[Application] OR eventlog[Application,,Warning,,100]
更新間隔:1
トリガー :
条件式:{Template_Window_Log_Monitor:eventlog[Application].iregexp(@messages)}=1
OR
条件式:{Template_Window_Log_Monitor:eventlog[Application].logseverity(0)}=1
OR
条件式:{Template_Window_Log_Monitor:eventlog[Application].iregexp(Error)}=1
OR
条件式:{Template_Window_Log_Monitor:eventlog[Application,,Warning,,100].logsource(@messages)}=0
@messages は正規表現で設定されています。
messages 結果が真 error|warning|fail|fatal
Linuxログ監視チェックの場合は
アイテム :
タイプ:Zabbixエージェント(アクティブ)
データー型:ログ
キー:log[/var/log/messages,@messages] OR log[/var/log/messages,Error]
更新間隔:1
トリガー :
条件式:{Template_Linux_Log_Monitor:log[/var/log/messages,@messages].iregexp()}=1 and {Template_Linux_Log_Monitor:log[/var/log/messages,@messages].nodata(300000)}=0
@messages は正規表現で設定されています。
messages 結果が真 error|warning|fail|fatal
テスト :
ウインドの場合は
eventcreate /t error /id 100 /l Application /d "Zabbix Test Application log"
Zabbix 画面で監視データ→最新データとしてチェックしています。追加で監視データ→概要 一覧には表示している
Application_Logアイテムにクリックして「最新の値」でもチェックしました。
ウインドとLinuxの監視チェックで何を間違っているか、よく知りません。
正しやり方又は方法を教えて頂くと助かります。
よろしくお願いいたします。
fripper - 投稿数: 495
アイテム設定とトリガー設定の関係性による挙動差について
■Windows側
「eventlog[Application]」だと「アプリケーション」分類のイベントログすべてが収集され
「eventlog[Application,,Warning,,100]」だと
「アプリケーション」分類・かつ、レベル「警告」かつイベントIDが100に合致する行のみが収集されます
https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent/win_keys
https://www.zabbix.com/documentation/3.4/manual/appendix/triggers/functions
トリガー側設定で
「iregexp(@messages)=1」→アイテム収集値に、正規表現に合致する本文メッセージを含んでいた場合→1と判定されてトリガー発動
「logseverity(0)}=1」→logseverity関数は()内にパラメータ指定は無いようですので、設定誤りだと思います。想定通りの挙動をしないかもしれません
logserverity関数が正しく判定されていたとした場合には、レベル「情報」に合致するログだった場合に1となるので
2つ目のアイテム例のように「警告」のみ収集していた場合は全く発動しません
「logsource(@messages)=1」→ログの発生源アプリ名?(イベントソース)が、正規表現に合致した場合→1と判定されてトリガー発動
といった形となります
イベントビューアでの表示と、Zabbix側の「アイテム収集値履歴」とを見比べて、必要と思われるイベントログ行が、アイテム収集値として収集されているかどうか?
収集されていないのであれば、Zabbix側に収集されるようにアイテム側の設定を見直してからでないと
トリガー設定側は弄っても意味がありません
■Linux側
「log[/var/log/messages,@messages]」といった表記の場合、当該正規表現に合致した行「のみ」が
Zabbixエージェントによって監視アイテム値として収集されます
正規表現に合致しない行がログに出力されても、エージェントの段階で無視されて、サーバ側には通知されずスルーされます
トリガーの判定処理は「合致した行として新しい行データが格納されたとき」と「nodataが利用されているので30secおき」の
両方のタイミングでそれぞれ実施されます
そのうえで「log[/var/log/messages,@messages].iregexp()=1」といった設定がされているようですが、
iregexp関数への第1パラメータ(必須)となる正規表現文字列が空値となっているため
うまくトリガー評価できていないのだと思います
「log[/var/log/messages,@messages].iregexp(@messages)=1」
といった形で設定すれば挙動が変わるかと思います
#正規表現を2重に書くことになるので気持ち悪く感じるかもしれませんが
#正規表現を含むアイテムキーに対して、正規表現をパラメータとして与える評価関数を指定する‥ですので
https://www.zabbix.com/documentation/3.4/manual/appendix/triggers/functions
fripper - 投稿数: 495
ログ監視全般としては‥
正常ログ・異常を示すログの両方をアイテム値として収集させるような形にしたうえで
直近のアイテム値を基準とするようなトリガー設定で障害の発生を判定させて
障害を検知させ、続く正常ログの収集でトリガーが障害復旧するのを想定した挙動とする
といった設計とするのか
異常を示すようなログのみをアイテム値として収集するように、アイテム設定の段階でフィルタを掛けた設定として
nodata等の設定を含めたトリガー設定にして
新たなアイテム値が収集されたことに起因してトリガーに障害の発生を検知させ
一定時間、新たな収集値が存在しないこと(時間経過)を条件に、障害判定を復旧させるような挙動とする
の大きく2つのアプローチがあると思います
普段のログ発生量や、異常を示すログの頻度、Zabbix側に収集されるデータ量・負荷等や
障害発生を検知させるタイミングと障害復旧とさせるタイミング、といった利用者サイドの要件 などから
都合のよいアプローチを模索するほか無いと思います
pramod1301 - 投稿数: 24
Fripperさん
色々説明頂き、ありがとうございました。
大変助かりました。
問題はパラメータの設定でした。