空のログを取得されてしまう。
お世話になっております。
ZabbixサーバからWindowsサーバのログを取得しようとおりますが、値が入っているのにも関わらずzabbix上では空に見えてしまいます。
対処法わかる方いらっしゃいましたた是非ご教示いただきたいです。
・バージョン:
zabbix 4.2
・itemの設定
Type:Zabbix Agent(active)
key:log[C:\log\CountLog.txt,"count ([0-9]+)",,,skip,\1]
type of information:Text
Update interval:30s
countのあとの続く値を取得しようとしております。
ログの中身は以下の形です。↓ですと「80」を取得したいです。
count 80 08/24/2019 15:04:34
Windows側のagent logやzabbix server上では特にエラーが出ておらず、
MonitoringのLatest Dataには、item名は出るのですが「Last Check」及び「Last Value」が空で表示され、
Historyをクリックしても「No Data Found」と表示されます。
情報が不足しておりましたらご指摘いただけますと幸いです。
よろしくお願いいたします。
TNK - 投稿数: 4729
log[]キーの第二引数は、取得する行を特定するための正規表現で
す。
行から正規表現を指定して値を切り出すためのものではありません。
アイテムの保存前処理で正規表現を指定して値を切り出すようにし
てみてください。
menma - 投稿数: 13
ご返信いただきありがとうございます。
>アイテムの保存前処理で正規表現を指定して値を切り出すようにし
てみてください。
すみません上記がよくわからなかったのですが、ログの保存形式を変えるという意味合いで解釈しました
ログの中身を以下のように変更してみました。
変更前;count 80 08/24/2019 15:04:34
↓変更後
変更前;80
ITEMの設定も一旦シンプルなものにしてみました。
変更前:key:log[C:\log\CountLog.txt,"count ([0-9]+)",,,skip,\1]
↓
変更後:key:log[C:\log\CountLog.txt]
上記にしてもLatest DataはITEM名は表示されますが、Last checkやLast Valueの値が取得できない状態です。
原因わかる方いらっしゃいますでしょうか
何卒よろしくお願いいたします。
TNK - 投稿数: 4729
ログの保存形式を変更する必要はありません。
以前のログと、変更後の数値だけのログとどちらの方がよいのです
か?
以前のログの形式であれば、アイテムとして以下のように設定しま
す。
タイプ:Zabbixエージェント(アクティブ)
キー :log[C:\log\CountLog.txt,,,,skip]
データ型:数値(整数)
保存前処理
正規表現
パターン count ([0-9]+)
出力 \1
変更後のログの形式であれば、アイテムとして以下のように設定す
ればよいでしょう。
タイプ:Zabbixエージェント(アクティブ)
キー :log[C:\log\CountLog.txt,,,,skip]
データ型:数値(整数)
18:01の投稿を見るとログに出力しているのは数値だけではないの
ですか?
具体的にどのようなフォーマットで出力しているのか正確に教えて
ください。
menma - 投稿数: 13
ご返信いただきありがとうございます。
ご指摘いただきました以下の設定を入れるとitemがエラーで表示されてしまい、ログの取得ができない状況です。
タイプ:Zabbixエージェント(アクティブ)
キー :log[C:\log\CountLog.txt,,,,skip]
データ型:数値(整数)
保存前処理
正規表現
パターン count ([0-9]+)
出力 \1
エラー内容
Preprocessing failed for:
1. Failed: cannot perform regular expression "count ([0-9]+)" match for value of type "string": pattern does not match
ログの中身
count 80 08/24/2019 15:04:34
お手数をおかけしてしまい申し訳ありませんが、ご教示いただけますと幸いです。
menma - 投稿数: 13
Last Valueには何も表示されないですが、暫くするとLast Checkに日付が入っていました。
Historyを見てみると、いくつか日付だけ入った行が追加されており、一番下には
??8
と値が入っていました。これを1行のみ80の値だけ取得したいです。
引き続きよろしくお願いいたします。
Yasumi - 投稿数: 380
現在アイテムに情報は取得できている状態ですか?
その場合、実際のログファイルに記録されている内容と、
Zabbixのアイテムに取得された内容とを両方記載してください。
menma - 投稿数: 13
ご連絡ありがとうございます。
現在は2019/08/26 - 16:35 (月)に別途投稿させて頂いたように、
エラーとなっておりItem(ログ取得)できない状況です。
よろしくお願いいたします。
Yasumi - 投稿数: 380
この場合は「Preprocessing failed」となり、保存前処理エラーを起こしています。
しかし、同じようなアイテムを運用しているので、
通常なら最初に記載していたような設定で情報を取得できるはずです。
===================================
タイプ:Zabbixエージェント(アクティブ)
キー :log["C:\log\CountLog.txt","count ([0-9]+)",,,skip,\1]
データ型:数値(整数)
===================================
■参考サイト「ログ監視 - Housekeepingの処理件数取り込み」
http://unam.hatenadiary.jp/entry/2018/02/14/201841
「値が入っているのにも関わらずzabbix上では空に見える」
「ITEM名は表示されますが、Last checkやLast Valueの値が取得できない状態」というのが気になります。
4.2の仕様を正確に把握していませんが、最新版でないのならZabbixのバグの可能性も考慮に入れる必要があるかもしれません。
よくあるのが、保存前処理に「差分」を入れていて、80-80=0が記録されてしまうようなパターン。
余分な保存前処理はない認識で良いでしょうか。
また、無いとは思いますが、ヒストリ/トレンドの保存期間が0dだと情報が保存されないです。
menma - 投稿数: 13
ご連絡頂きありがとうございます。
以下の設定にしてみましたが、やはり「ITEM名は表示されますが、Last checkやLast Valueの値が取得できない状態」となります。。。
===================================
タイプ:Zabbixエージェント(アクティブ)
キー :log["C:\log\CountLog.txt","count ([0-9]+)",,,skip,\1]
データ型:数値(整数)
===================================
zabbixのバージョンは[4.2.1] revision 92832でした。
>よくあるのが、保存前処理に「差分」を入れていて、80-80=0が記録されてしまうようなパターン。
→上記設定では保存前処理に何も入れていない状態です。
>また、無いとは思いますが、ヒストリ/トレンドの保存期間が0dだと情報が保存されないです。
→こちらはデフォルトです。(90d)
わからないですね。。。
TNK - 投稿数: 4729
ログのフォーマットが想定されているのと取り込めているのが異な
るのではないでしょうか?
記載されていた設定で取得できないのであれば、まずは、ログファ
イルからどのような文字列が取得できているのかというところから
確認してみてくださ。
あと、4.2.1だと色々と不具合があったと思うので、4.2.5にバージ
ョンアップした方が良いと思います。
menma - 投稿数: 13
解決しましたのでご報告いたします。
zabbix serverとagentのバージョンを4.2.6にしてみましたが、状況は変わりませんでした。
ところがログの出力時にencodingをUTF8にして出力してみたところ、
無事にログ取得できるようになりました。
貴重なお時間を頂戴し、相談に乗ってくださり誠にありがとうございました。