ログ監視の取得不可について
お世話になっております。
ログ(/usr/local/test/log/dmn.log)の監視を行いたいのですが、
ステータスがアイテムでは「取得不可」、トリガーでは「不明」となり、ログの監視ができておりません。
どのようにすればこれらが「有効」になるかのご教示いただきたいです。
また、zabbix-server.logでは「No such file or directory」と出力されております。
zabbix-agent.logにエラーとなるようなログは出力されておりません。
同サーバにて、syslog(/var/log/message)の監視も行っているのですが、こちらについては、アイテム、トリガーともに有効になっております。
過去の投稿にも似たような投稿があったのですが、そちらを参考にしても解決に至らなかったため、
この度、投稿させていただきました。
・参考にした投稿
ログファイル監視設定について:http://www.zabbix.jp/node/3248
ログ監視のアイテム取得不可:http://www.zabbix.jp/node/2781
下記に設定等について記述させていただきます。
利用OSは監視サーバ、監視対象サーバともに下記になります。
CentOS release 6.7 (Final)
利用しているzabbxiのバージョンは下記になります。
Zabbix server v2.4.7
Zabbix Agent (daemon) v2.4.7
zabbix_agentの設定
SourceIP=監視対象サーバのIP
Server=監視サーバのIP
ListenPort=10050
ListenIP=監視対象サーバのIP
ServerActive=監視サーバのIP
Hostname=監視対象サーバのホストネーム
AllowRoot=1
ログについては下記になります。
-rw-r--r-- 1 root root 339904 4月 19 17:42 2016 dmn.log
アイテムの設定は下記になります。
名前:errログ監視(/usr/local/test/log/dmn.log)
タイプ:Zabbixエージェント(アクティブ)
キー:log[/usr/local/test/log/dmn.log,ERROR]
データ型:ログ
更新間隔:30
ヒストリ保存期間(日):7
トリガーの設定は下記になります。
名前:{HOST.NAME} errログ監視(/usr/local/test/log/dmn.log)
条件式:{○○○(ホスト名は伏せさせていただきます):log[/usr/local/test/log/dmn.log,ERROR].nodata(300)}=0
深刻度:重度の障害
SElinuxはdisabled,iptablesはoffになっております。
以上、お手数おかけいたしますが、よろしくお願い致します。
heya - 投稿数: 319
/usr/local/test/log/ とか /usr/local/test/ のパーミッションはどうでしょうか。
ls -dl /usr/local/test/log/
ls -dl /usr/local/test/
を確認してみてください。
最後に x はありますか?(所有者でもグループでもない人が中に入る権限があるか?)
追記
書いた後で気づいたんですが、 AllowRoot=1 なんですか。それだと権限はあまり関係ないかも。
あとは、超基本的なところの確認ですが、ログファイルはエージェントが動いているホストにあるんですよね?(Zabbix サーバーではなく)
y.takayama - 投稿数: 3
heya様 返答ありがとうございます。
コマンドを実行しました。結果は下記になります。
下記から実行可能であると思われます。
ls -dl /usr/local/test/log/
drwxr-xr-x 2 root root 4096 5月 18 00:00 2016 /usr/local/test/log/
ls -dl /usr/local/test/
drwxr-xr-x 8 root root 4096 2月 9 18:02 2016 /usr/local/test/
追記につきまして、ログファイルはzabbix agentが動いているホストにあります。
そのホストでzabbix agentのサービスが起動していることも確認済みです。
加えて、現状、ステータス「取得不可」になっておりますが、ログファイルにERRORのメッセージが出力された場合、通知されるようです。
どのようにすれば、ステータス「有効」かつ通知がされるようになるのでしょうか・・・。
heya - 投稿数: 319
うーん、謎ですね。
>また、zabbix-server.logでは「No such file or directory」と出力されております。
なぜエージェントのログではなくサーバーのログなのか?
対象のログファイルが見つからないならエージェントのログに出そうなものですが。何が見つからないんだろう?
>加えて、現状、ステータス「取得不可」になっておりますが、ログファイルにERRORのメッセージが出力された場合、通知されるようです。
動作自体は望み通りのことができているんですよね?アイテムのステータスが「取得不可」と表示されるだけで。
ERROR のメッセージが出たあとも「取得不可」のままなんですか?
取得不可の横にある赤い × のアイコンにマウスカーソルを乗せると何かメッセージが出るはずですが、そこには何と書かれていますか?
#確か、アイテム登録直後は、最初に ERROR のログが出るまで「取得不可」だったはずです。
y.takayama - 投稿数: 3
haye様 ご返答ありがとうございます。
> なぜエージェントのログではなくサーバーのログなのか?
> 対象のログファイルが見つからないならエージェントのログに出そうなものですが。何が見つからないんだろう?
エージェントのログを確認しましたが、1行もログが吐かれておりませんでした。それもおかしな気がしますが・・・。
ログの場所は/var/log/zabbix_agentd.logです。
> 動作自体は望み通りのことができているんですよね?アイテムのステータスが「取得不可」と表示されるだけで。
> ERROR のメッセージが出たあとも「取得不可」のままなんですか?
> 取得不可の横にある赤い × のアイコンにマウスカーソルを乗せると何かメッセージが出るはずですが、そこには何と書かれていますか?
動作自体も望み通りとは言えないですね・・・。エラーがログに出力され、一度は通知されましたが、
その後、エラーメッセージがなければしばらくして回復するはずなのですが、現状、21日目でも回復しておりません。
dmn.logを確認しましたが、その後エラーログは出力されておりません。
これでは次エラーが発生した際に通知されないため、望み通りの動作とは言えません・・・。
ERRORメッセージが出た後も取得不可になっております。
×アイコンにマウスカーソルを合わせると下記のようなメッセージが出力されます。
「Cannot obtain information for file "/usr/local/test/log/dmn.log":[2]No such file or directory」
以上、お手数おかけいたしますが、よろしくお願い致します。
heya - 投稿数: 319
赤いアイコンでも同じエラーなんですね。そうなるともう私ではお手上げ・・・で終わってしまうのもどうかと思うので、"Cannot obtain information for file" で検索してみました。
https://www.zabbix.com/forum/showthread.php?t=48835
ここがよく似たような状況ですね。
ある人は「自分も同じような状況になったが、ログファイルへのシンボリックリンクを作って、それを監視するアイテムを作ったらなぜか取得できた」と書き、投稿者は「それではダメだった」と。結局、この投稿者は「エージェントの Hostname を間違えていただけだった、それを直したら取得できるようになった」と書いています。
https://support.zabbix.com/browse/ZBX-9295
ここはサーバーが 2.4 でエージェントが 2.2 だとログが取得できない、とありますが、y.takayama さんの場合はエージェントも 2.4 なので関係なさそうです。
https://www.zabbix.com/forum/showthread.php?t=49214
ここはホスト名部分にマクロを使っていますが、それ以外は似たような感じ?
一回アイテムを完全に削除して、ハウスキーパーが動くのを待って、それからまたアイテムを作ってみろと助言があります。それに対する返信はないので、うまくいったのかどうかは不明です。
というわけで、Hostname を確認してみてはどうでしょうか。それが問題なければシンボリックリンクを作ってみるとか。
あと、初歩的な話ですが、アイテムのファイルパスの部分に全角文字は含まれていませんよね?私は以前これでつまづいたことがあるので・・・。
あとは、DebugLevel=4 にして Zabbix サーバーのログを貼り付ければ、他の誰かが答えてくれるかもしれません。
※追記
エージェントの Hostname だけでなく、サーバー側のホスト設定で、エージェントのインターフェース(接続方法で選んでいるIPアドレスまたはDNS名)も確認してみてください。これが間違えていると、全然別のホストをチェックすることになってしまうので。