Widowsサーバのログを監視したい
いつもお世話になっております。
Windows機のログ監視を行ないたく
サーバ側にアイテム等の作成や設定を実施したのですが、
うまく検知してくれません。
どこか直す箇所等ありましたら
ご教示お願いいたします。
名前:Win_Message
アイテムキー:eventlog[Application,@win_message]
更新間隔: 30s
ヒストリ: 90d
タイプ:Zabbixエージェント(アクティブ)
正規表現(win_message):1 ≫ error | warnig | ERROR | WARNING [文字列が含まれる]
サーバOS:CentOS 6.3 64bit(Zabbix:3.0.2)
監視対象機OS:WindowsServer2008 R2 SP1 64bit (Zabbix:2.4.7)
やりたいこと状態
先日Linux機の件で問い合わせしたように、
Windows機でもログ監視を行ないたいと思っています。
上記の設定を行なっているのですが、
条件にマッチすると思っているログについて検知してくれません。
(対象機のイベントビューア→「Windowsログ」→アプリケーションのイベントに
エラーと警告が出力されたときに検知したい。)
2つだけ気になっていることがあります。、
イベントビューアで「レベル」を確認すると「警告」といった
漢字表記になっていることです。
これは、Zabbixサーバ側でアイテムや正規表現の作成時に
漢字表記にしなくてはならないでしょうか。
エージェントやサーバ側のせっていについて、
監視対象がWindows機であった場合のLinux機のものと
異なる(注意すべき)箇所はございますでしょうか。
お手数お掛けして
大変申し訳ありませんが
ご対応のほどよろしくお願いいたします。
TNK - 投稿数: 4769
eventlog[]の2つ目の引数は、イベントビューアで見たときの下の
方に表示されるメッセージ(全般)の部分に対する正規表現を指定す
るようになっていたはずです。
イベントビューアの一覧のレベルの所に表示されるものに対する正
規表現ではありません。
レベルを判別されたいのであれば、3つ目の引数を指定してみてく
ださい。
エラーと警告なら、以下のような設定になると思います。
例:
eventlog[Application,,"Warning|Error"]
上記の通り、レベルでの振り分けであれば漢字で指定する必要はあ
りません。
ホスト名の一致やServerActiveの設定、アイテムのタイプをZabbix
エージェント(アクティブ)にするなど、Linuxと同様です。
ただし、通常のテキストログファイルの監視を行う場合は、監視す
るログファイル内の文字コードに注意してください。
nora - 投稿数: 31
TNK さん
いつもありがとうございます。
また返答が遅くなってしまい申し訳ありません。
先ずは、ご教示いただいた内容を設定して確認してみます。
nora - 投稿数: 31
皆様
いつもお世話になっております。
先日TNKさんからコメントいただいた
内容をもとに確認してみましたが
うまく検知できておりません。
(Zabbixエージェントの設定についてWindows,Linux同様の設定しています。
(両方とも検知できていない))
アイテム:eventlog[Application,,@win_message]
正規表現(@win_message):error | warnig | ERROR | WARNING
修正すべき箇所、他に確認すべき箇所について
ご教示お願いいたします。
TNK - 投稿数: 4769
正規表現として、具体的にどう設定したのか、条件式の形式や大文
字小文字の区別の有無も詳細にお教えください。
あと気になるのが正規表現内の文字列です。
大文字小文字を区別しないなら、「error」と「warnig」だけで良
いでしょうし、大文字小文字を区別するのであれば、「Warning」
と「Error」を指定するのではないでしょうか?
正規表現を設定する時は、テストタブでどういう文字列が来たらあ
てはまるのかもチェックしながら設定してみてください。
nora - 投稿数: 31
TNKさん
いつもありがとうございます。
正規表現の設定について
現状、"1 » error | warnig | ERROR | WARNING [文字列が含まれる] "
となっています。
ご確認お願いいたします。
TNK - 投稿数: 4769
大文字小文字の判別はどうなっていますか?
テストタブでテストしてみましたか?
TNK - 投稿数: 4769
Windowsで試せる環境が無いのですが、正規表現としては、大文字
小文字を判別しなくても良いので、
1 > ^(Warning|Error)$ [結果が真]
か
1 > Warning [文字列が含まれる]
2 > Error [文字列が含まれる]
のどちらかのパターンの方が良いと思います。
nora - 投稿数: 31
TNKさん
いつもありがとうございます。
大文字小文字を区別 ON
と設定しています。
コマンドプロンプトを起動して
下記コマンドで試してみましたが
検知できませんでした。
C:\Users\Administrator.WINGATE>eventcreate /l Application /t Error /so test /id
123 /d test
成功: 種類が 'Error' のイベントが、'Application' ログ内に、'test' をソースとして
作成されました
テストタブは、"偽"の表示です。
nora - 投稿数: 31
現在、Error | Warning です。
TNK - 投稿数: 4769
どうして私が提案した設定内容を試されないのですか?
nora - 投稿数: 31
すみません、確認します。
nora - 投稿数: 31
TNKさん
いつもありがとうございます。
ご提案をいただいた
2案の確認いたしましたが
どちらも検知できませんでした。
設定ファイルの問題であったりしますでしょうか。
nora - 投稿数: 31
監視対象のサーバですが、仮想・物理で何か
特別意識すべきことはありますでしょうか。
特に意識することは無いとの認識で
これまで確認しています。
heya - 投稿数: 319
横から失礼します。
>1 > ^(Warning|Error)$ [結果が真]
この場合、 | の前後に空白は不要です。nora さんの書き込みだと毎回 | の前後に空白が入っているようですが、これを試したときにも空白を入れた状態で試しませんでしたか?
>1 > Warning [文字列が含まれる]
>2 > Error [文字列が含まれる]
これだと、Warning を含む、かつ、Error を含む、という条件になりませんかね?>TNKさん
TNK - 投稿数: 4769
heyaさんへ
失礼しました。
テストしなおしたらその通りでした。
nora - 投稿数: 31
heyaさん、TNKさん
いつもありがとうございます。
先ほど、heyaさんからご指摘いただきました件、
昨日の設定を確認しました。
現状は、右のとおりです。 : ^(Warning|Error)$
今朝も検知できないかテストしてみましたが
状況は変わらずでした。
nora - 投稿数: 31
昨日設定をしたときから
>1 > ^(Warning|Error)$ [結果が真]
としており、heyaさんからご指摘をいただいた"|"のスペースは無い
状態になっています。
heya - 投稿数: 319
そういえば、トリガーについては何も書かれていませんが、「検知しない」とは「イベント画面に出てこない」ということでしょうか?
もしそうなら、トリガーを設定しないとイベント画面には出てきませんし、アクションも実行できません。
最新データで見て、ログ自体は取得できていますか?
ログ自体が取得できているならアイテムの設定(と正規表現の設定)は問題ありません。
nora - 投稿数: 31
heyaさん、皆様
いつもありがとうございます。
heyaさんからコメントいただいております
「検知しない」は、「イベント画面に表示されてこない」ことです。
こちらで質問している「WIndows」とはちがうのですが、
「Linux」の方で、検知できメールが受信できるようになりました。
(原因は、通信環境の設定にありました。エージェント機のFWのout側へ10051の設定追加で解消)
メール通知が穴を開けたことで堰を切ったように届く状態であるのですが、
これは、出し切るまで続いてしまいますでしょうか。(トリガやアクションの設定変更でとめられますか。)
本題ずれてしまっていますが、ご教示お願いいたします。
nora - 投稿数: 31
すみません、もう1点
heyaさんからの「トリガ」について
下記の設定です。
{eventlog[Application,,@win_message].regexp(@win_message)}=1
正規表現(@win_message):1 » ^(Warning|Error)$ [結果が真]
としてあります。
heya - 投稿数: 319
>{eventlog[Application,,@win_message].regexp(@win_message)}=1
たぶん大丈夫とは思いますが、実際は eventlog の前に ホスト名: が入っているんですよね?
それだとトリガーも問題なさそうに見えます。
Linux の FW で思い出したのですが、Windows のファイアウォールも同様に穴を開けていますか?
あとはこういうログの場合、トリガーの「障害イベントを継続して生成」にチェックが入っていないと、最初だけイベントが発生しますが、次からはイベントが発生しなくなるので、そこも確認してみてください。
>メール通知が穴を開けたことで堰を切ったように届く状態であるのですが、
>これは、出し切るまで続いてしまいますでしょうか。(トリガやアクションの設定変更でとめられますか。)
アクションやトリガーを無効にすれば、それ以降に出るものは無視できますが、すでに出てしまったものは Web からの設定変更ではどうにもなりません。メールを全部出す(or失敗する)まで続きます。
あまりお薦めはできませんが、大量すぎてどうにも困る場合、裏技的に、データベースを直接いじるという方法もあります。
http://www.zabbix.jp/node/3148
http://www.zabbix.jp/node/1905
http://www.zabbix.jp/node/1066
delete from alerts; と delete from escalations; のどちらがいいのかはよく分かりませんが・・・。
kaeru - 投稿数: 264
※heya様が回答済みだったため、削除しようと思いましたが、
コメント削除方法が分からなかったため、本返信は無視してください。
>>nora様
念の為ご確認させて頂きたいのですが、
現在の問題としては、設定したアイテム(eventlog)が取得出来ない…ではなく、
アイテムは取れるがトリガーが意図した通りに動かないという質問になりますでしょうか?
>メール通知が穴を開けたことで堰を切ったように届く状態であるのですが、
>これは、出し切るまで続いてしまいますでしょうか。
今まで送信できていなかった過去ログが全て送られてきていると想定されます。
トリガ、アクションを無効化すれば送信はされなくなりますが、
すでに動作済みのアクションについてはZabbix側で取り消せませんので
あまりにも送信数が莫大な場合は、
私であればメールサーバを停止して送信キューを取り消します。
nora - 投稿数: 31
heyaさん、kaeruさん
ご回答ありがとうございます。
heyaさん
ご確認いただきありがとうございます。
ホストに設定済みのトリガは、
”eventlog の前に ホスト名:”となっています。
WindowsのFWの送信側(out)も
ZabbixサーバIPアドレスと10051の設定をしています。
(Windowsは、今現在も解消できていないです...。)
heyaさん、kaeruさん
通知の件もありがとうございます。
もう少しご教示いただきたいのですが、
今回ログ監視をする対象のホストが複数(約40台)あります。
Zabbixサーバ側でのアイテムやトリガ、アクションの設定、
エージェントのFWの開放を行なって
通知可能な条件が整ったときは
また大量のメール受信が想定されますでしょうか。
メールボックスの容量とか必要なメールが埋もれてしまわないか
を気にしています。
何か回避策等ご教示いただけないでしょうか。
kaeruさんからの「メールキュー削除」も非常に有効であると思いますが、
監視用のメールサーバを用意できていなくて。
DBの操作になりますか。
(勘違いしている部分がありましたら申し訳ありません。)
お手数をお掛けして申し訳ありません。
引き続き、ご対応のほどよろしくお願いいたします。
nora - 投稿数: 31
メールキュー削除か
自分だけで対応できそうなのは、
DBでレコードのupdateかdeleteですかね...。
heya - 投稿数: 319
>最新データで見て、ログ自体は取得できていますか?
これはどうですか?
そもそもアイテムの値が取得できてなければトリガーとか以前の話になるので。
>Zabbixサーバ側でのアイテムやトリガ、アクションの設定、
>エージェントのFWの開放を行なって
>通知可能な条件が整ったときは
>また大量のメール受信が想定されますでしょうか。
そうなるでしょうね。ただ、この場合は自分の好きなタイミングで通知可能な状態にできるわけで、その前にアクションを一時的に無効にしておいて、ファイアウォールなどの設定を済ませ(イベントは大量発生するがアクションは起こらない)、イベントが落ち着いてからアクションを有効にすればいいと思います。
イベント画面に大量に出るのが嫌なら、アクションではなくトリガーを無効にしておけばイベントは発生しないので、溜まっていたログが全部届いてからトリガーを有効にすればいいでしょう。
>kaeruさんからの「メールキュー削除」も非常に有効であると思いますが、
>監視用のメールサーバを用意できていなくて。
メールサーバーが自分の管理下にないのであれば、キュー削除はできませんね。
nora - 投稿数: 31
heyaさん、皆様
ご回答ありがとうございます。
>最新データで見て、ログ自体は取得できていますか?
これはどうですか?
そもそもアイテムの値が取得できてなければトリガーとか以前の話になるので。
こちらについて、Windows機は全くできていないです...。
通知の件もありがとうございます。
キュー削除は、難しいなと感じていました。
DBのレコードのupdateかトリガ、アクションの設定操作で対応したいと
思います。
引き続き、よろしくお願いいたします。
TNK - 投稿数: 4769
最新データに値が入ってきていないのであれば、まずは、最初に
私が書いた、
eventlog[Application,,"Warning|Error"]
というアイテムのキーであれば実績があるので、それで試してみて
ください。
それで入ってきていないなら、Firewallなどでのネットワーク的な
接続制限があるか、zabbix_agentd.conf内のHostnameとZabbixサー
バ側で登録されている名前が大文字小文字も含めて一致していない
か、ServerActiveの値が正しくないのでしょう。
nora - 投稿数: 31
TNKさん
いつもお世話になっております。
ご提案をいただいております
アイテムキーの設定と「zabbix_agentd.conf」の設定
通信制限見直しましたが、
解消されませんでした。
以前、書いたかもしれませんが
下記コマンドを使用してテストしています。
・eventcreate /l Application /t Error /so test /id 123 /d test
こちらのコマンドについては、問題ないものとの認識で
よいでしょうか。
すみません。
ご確認お願いいたします。
nora - 投稿数: 31
皆様
いつもお世話になっております。
先日書き込みました下記コマンド
・eventcreate /l Application /t Error /so test /id 123 /d test
こちらでは検知してくれず
イベントビューアで出力済みであるものを見て
下記のとおり変更してみました。
C:\Users\Administrator>eventcreate /l Application /t Error /so MetaFrameEvents /id 789 /d test
エラーが出力されていました。
エラー: インストールされているアプリケーションではなく、カスタム アプリケーショ
ンまたはスクリプトを識別するためだけに、ソース パラメーターが使用されます。
上記エラーの内容は、テスト用のコマンドでは検証ができないことになりますでしょうか。
(警告やエラーがでないと、テストできない。ということでしょうか。)
こちらで質問する内容ではないかもしれませんが、
ご教示いただければ幸いです。
よろしくお願いいたします。
nora - 投稿数: 31
TNKさん、皆様
いつもお世話になっております。
本件、解決できました。
アイテムキーについて
・eventlog[Application,,"Warning|Error"]
のご提案をいただきましたが、
eventlog[Application,,Warning|Error]
と設定することで解消できました。
長い間ありがとうございました。