ログ監視におけるnodataの挙動
はじめまして、nodataの挙動について、質問させていだきます。
Red Hat Enterprise Linux Server release 7.2 (Maipo)
(Zabbix) 4.0.7
zabbixにてログのアラートが上がった場合に自動で復旧させる為、nodataの使用を考えています。
色々とテストを実施してみたのですが、思った挙動にならなかったため、質問をさせてください。
やりたい事
1./var/log/messagesにkernelのerrorが出たらアラートを出す(メール送信)
2.一定時間ログがでなれば復旧
設定したこと
アイテム:log[/var/log/messages,@messages_error] 監視間隔:30秒
正規表現:@messages_error
→error|fail|fatal|ERROR|FAIL|FATAL[結果が真]
---------------------
トリガー:
{log[/var/log/messages,@messages_error].iregexp(kernel}=1 →(アイテム:messagesにerrorが出ている)その中で、kernelという文字がある
and
{log[/var/log/messages,@messages_error].nodata(60)}=0 →60秒間の間アイテムが新しく更新される
障害イベント生成モード:単一
正常時のイベントクローズ:全ての障害
手動クローズを許可:チェック
有効:チェック
----------------
上記の状態で、以下書き込みましたが、アラートがあがりませんでした。
echo "kernel error" >> /var/log/messages
最新データで、アイテム:log[/var/log/messages,@messages_error]を見ると、「kernel error」のデータがありました。
---------------------
試しにnodataだけでトリガーを作成しましたが、アラートがあがりませんでした。
トリガー:
{log[/var/log/messages,@messages_error].nodata(60)}=0 →60秒間の間アイテムが新しく更新される(error)
echo "kernel error2" >> /var/log/messages
最新データで、アイテム:log[/var/log/messages,@messages_error]を見ると、「kernel error2」のデータがありました。
--------------
何か認識間違いをしている点などあれば、教えていただけないでしょうか。
Yasumi - 投稿数: 373
文字コードに問題の可能性がありますので、アイテムで文字コードを指定してみてください。
なお、nodataだけではトリガーは発報しません。
gomagomagoma - 投稿数: 5
ありがとうございます。
以下アイテムに文字コードを設定しましたが、トリガーは発動しませんでした。
{log[/var/log/messages,@messages_error"UTF-8"].iregexp(kernel}=1
and
{log[/var/log/messages,@messages_error,"UTF-8"].nodata(60)}=0
nodataがない場合はトリガーが発動しています。
{log[/var/log/messages,@messages_error"UTF-8"].iregexp(kernel}=1
文字コード以外で何か設定が必要な部分はありますでしょうか。
障害イベント生成モード:単一など
gomagomagoma - 投稿数: 5
又、nodataの使用以外で、以下実現する方法があれば教えていただけないでしょうか
やりたい事
1./var/log/messagesにkernelのerrorが出たらアラートを出す(メール送信)
2.一定時間ログがでなれば自動復旧
Yasumi - 投稿数: 373
{log[/var/log/messages,@messages_error"UTF-8"].iregexp(kernel}=1
と記載いただいていますが
{log[/var/log/messages,@messages_error,"UTF-8"].iregexp(kernel)}=1
の間違いでよかったでしょうか。
gomagomagoma - 投稿数: 5
失礼しました。
{log[/var/log/messages,@messages_error,"UTF-8"].iregexp(kernel)}=1の間違いです。
Yasumi - 投稿数: 373
現時点で考えられることとしては、他にはトリガーがすでに「障害」状態であったために検知しなかった可能性です。
テスト時にトリガーは正常状態でしたでしょうか。
あとは差分テストとして、トリガーから「kernel」を抜いて同様のテストをしてみてください(通常であれば検知するはず)。
gomagomagoma - 投稿数: 5
トリガーが発動しました。
{log[/var/log/messages,@messages_error].iregexp(kernel}=1
and
{log[/var/log/messages,@messages_error].nodata(300)}=0 →1分→5分に変更
アイテムの取得間隔は30秒に設定しています。
色々nodataの間隔を試しましたが、以下の結果でした。
60→×
120→×
180→×
240→○
300→○
サーバーのスペックなど関係あるのでしょうか。
ひとまず設定はできたので、nodataの値を大きくすることで対応したいと思います。
ありがとうございました。