zabbix agentログ監視

お世話になっております。

質問させていただきます。

zabbixのバージョンは2.0となります。
zabbixのagentのログ監視について、例えば、syslogの監視をしようと思います。

zabbix agent:
zabbix_agentd.conf

Server=10.0.0.247
ServerActive=10.0.0.247
Hostname=Zabbixserver

10.0.0.247はzabbix serverのIPです。

zabbix agent側でsyslogの監視項目を設定しましたが、エラーログが検知できておりません。
zabbix server側でsyslogの監視項目を設定しましたら、zabbix serverとzabbix agent両方のsyslogが検知できております。

これは正しいでしょうか?
分けて監視したいと思いますが、どうすればいいでしょうか?

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

zabbix agent側でsyslogの監視項目を設定しましたが、エラーログが検知できておりません。
zabbix server側でsyslogの監視項目を設定しましたら、zabbix serverとzabbix agent両方のsyslogが検知できております。

これは正しいでしょうか?
分けて監視したいと思いますが、どうすればいいでしょうか?

何がどう検知できていないのかが、ご提示頂いた内容だけではわか
りません。
両方のsyslogが検知できているというのは、どのようにそれぞれの
syslogが見えているのでしょうか?
Zabbixサーバと監視対象とがどのような構成になっているのかもお
教えください。

ログに何か出力されているのであれば、それをお教えください。
Webインターフェース上に何か表示されているのであれば、それを
お教えください。

Zabbixサーバ上にインストールしたZabbixエージェントを利用して
syslog(/var/log/messages)を監視できているのであれば、問題は
無いとは思いますが、

 ・監視対象のサーバ上のzabbix_agentd.conf内のHostnameと
  ZabbixのWebインターフェースで登録したホストの名前との
  大文字小文字を含めた文字列の一致
 ・ログ監視の対象のファイルのパーミッション
 ・ネットワーク上の通信制限(Firewall、iptablesなど)

などもご確認ください。

ユーザー katsuhi@hotmail.co.jp の写真

ご返信いただき、ありがとうございました。

質問を整理させていただき、再度ご確認いただけないでしょうか?

zabbix server側の設定

zabbix_server.conf:
[root@ip-10-0-0-247 ~]# cat /etc/zabbix/zabbix_server.conf | grep -v "#"
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=xxxxxx
DBSocket=/var/lib/mysql/mysql.sock
SNMPTrapperFile=/var/log/snmptt/snmptt.log
Timeout=30
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts

zabbix_agentd.conf
[root@ip-10-0-0-247 ~]# cat /etc/zabbix/zabbix_agentd.conf | grep -v "#"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbixserver
AllowRoot=1
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/

zabbix agent側の設定

zabbix_agentd.conf
[root@ip-10-0-100-159 zabbix]# cat /etc/zabbix/zabbix_agentd.conf | grep -v "#"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.247
ServerActive=10.0.0.247
Hostname=Zabbixserver
AllowRoot=1
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/

ログ監視アイテムは下記となります。

ホスト:Zabbixserver
名前:syslog
タイプ:Zabbixエージェント(アクティブ)
キー:log[/var/log/messages]
データ型:ログ
更新間隔(秒):30
ヒストリの保存期間(日):90
ログの時間の形式:
アプリケーションの作成:
アプリケーション:なし

試したのは下記の二つバータンです。
1)上記の監視アイテムをzabbix agent側に追加しても、ログファイルの監視ができておりません。

2)上記の管理アイテムをzabbix server側に追加したら、agentとserver側でもログ監視ができております。
下記のようになります。

アイテムのリスト Zabbixserver: syslog

2014/07/07 11:57:36 - Jul 7 10:48:53 ip-10-0-0-247 dhclient[1322]: bound to 10.0.0.247 -- renewal in 1441 seconds.
2014/07/07 11:57:36 - Jul 7 10:48:51 ip-10-0-0-247 dhclient[1322]: DHCPACK from 10.0.0.1 (xid=0x6e94b9cd)
2014/07/07 11:57:36 - Jul 7 10:48:51 ip-10-0-0-247 dhclient[1322]: DHCPREQUEST on eth0 to 10.0.0.1 port 67 (xid=0x6e94b9cd)
2014/07/07 11:57:36 - Jul 7 10:43:02 ip-10-0-0-247 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1383" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
2014/07/07 11:54:50 - Jul 7 11:54:32 ip-10-0-100-159 dhclient[665]: bound to 10.0.100.159 -- renewal in 1770 seconds.
2014/07/07 11:54:50 - Jul 7 11:54:30 ip-10-0-100-159 dhclient[665]: DHCPACK from 10.0.100.1 (xid=0x4d768cbd)
2014/07/07 11:54:50 - Jul 7 11:54:30 ip-10-0-100-159 dhclient[665]: DHCPREQUEST on eth0 to 10.0.100.1 port 67 (xid=0x4d768cbd)
2014/07/07 11:54:20 - Jul 7 11:54:05 ip-10-0-100-159 root: error 20140705-7

※zabbixの管理画面の最新データからみれば、Zabbixserverのアイテムしかありません。

これによって、確かにserver側で集約されているように見えますが、agent側での独自のアプリログもありますので、
agentとserverを分けてそれぞれ監視したいと思いますので、どうすればいいでしょうか?

ユーザー katsuhi@hotmail.co.jp の写真

ご返信いただき、ありがとうございました。

質問を整理させていただき、再度ご確認いただけないでしょうか?

zabbix server側の設定

zabbix_server.conf:
[root@ip-10-0-0-247 ~]# cat /etc/zabbix/zabbix_server.conf | grep -v "#"
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=xxxxxx
DBSocket=/var/lib/mysql/mysql.sock
SNMPTrapperFile=/var/log/snmptt/snmptt.log
Timeout=30
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts

zabbix_agentd.conf
[root@ip-10-0-0-247 ~]# cat /etc/zabbix/zabbix_agentd.conf | grep -v "#"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbixserver
AllowRoot=1
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/

zabbix agent側の設定

zabbix_agentd.conf
[root@ip-10-0-100-159 zabbix]# cat /etc/zabbix/zabbix_agentd.conf | grep -v "#"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.247
ServerActive=10.0.0.247
Hostname=Zabbixserver
AllowRoot=1
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/

ログ監視アイテムは下記となります。

ホスト:Zabbixserver
名前:syslog
タイプ:Zabbixエージェント(アクティブ)
キー:log[/var/log/messages]
データ型:ログ
更新間隔(秒):30
ヒストリの保存期間(日):90
ログの時間の形式:
アプリケーションの作成:
アプリケーション:なし

試したのは下記の二つバータンです。
1)上記の監視アイテムをzabbix agent側に追加しても、ログファイルの監視ができておりません。

2)上記の管理アイテムをzabbix server側に追加したら、agentとserver側でもログ監視ができております。
下記のようになります。

アイテムのリスト Zabbixserver: syslog

2014/07/07 11:57:36 - Jul 7 10:48:53 ip-10-0-0-247 dhclient[1322]: bound to 10.0.0.247 -- renewal in 1441 seconds.
2014/07/07 11:57:36 - Jul 7 10:48:51 ip-10-0-0-247 dhclient[1322]: DHCPACK from 10.0.0.1 (xid=0x6e94b9cd)
2014/07/07 11:57:36 - Jul 7 10:48:51 ip-10-0-0-247 dhclient[1322]: DHCPREQUEST on eth0 to 10.0.0.1 port 67 (xid=0x6e94b9cd)
2014/07/07 11:57:36 - Jul 7 10:43:02 ip-10-0-0-247 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1383" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
2014/07/07 11:54:50 - Jul 7 11:54:32 ip-10-0-100-159 dhclient[665]: bound to 10.0.100.159 -- renewal in 1770 seconds.
2014/07/07 11:54:50 - Jul 7 11:54:30 ip-10-0-100-159 dhclient[665]: DHCPACK from 10.0.100.1 (xid=0x4d768cbd)
2014/07/07 11:54:50 - Jul 7 11:54:30 ip-10-0-100-159 dhclient[665]: DHCPREQUEST on eth0 to 10.0.100.1 port 67 (xid=0x4d768cbd)
2014/07/07 11:54:20 - Jul 7 11:54:05 ip-10-0-100-159 root: error 20140705-7

※zabbixの管理画面の最新データからみれば、Zabbixserverのアイテムしかありません。

これによって、確かにserver側で集約されているように見えますが、agent側での独自のアプリログもありますので、
agentとserverを分けてそれぞれ監視したいと思いますので、どうすればいいでしょうか?

ユーザー TNK の写真

監視対象のホストの名称は、「Zabbixserver」ではなく他の名称で
登録されているのではありませんか?

ip-10-0-100-159のzabbix_agentd.conf内のHostname

Hostname=Zabbixserver

となってしまっているようですので、ip-10-0-100-159のZabbixの
Webインターフェース上で登録したホスト名に変更してエージェン
トを再起動してください。

ユーザー katsuhi@hotmail.co.jp の写真

ご指摘いただき、ありがとうございました。

いただいた方法でちゃんとagentにsyslogのアイテムが表示されるようになりました。

ちなみに、知っていれば、教えていただきたいと思いますが、
AWSのautoscallingを利用しております。
新規で立ち上げられたインスタンスを自動的に監視インスタンスに追加されるような
仕組みを作っております。

ですので、新規で立ち上げられたインスタンスのhostnameが変わってしまいます。
動的にzabbix_agentd.confにhostnameを取得して設定したいと思います。

例えば、Hostname=${HOSTNAME}みたいな感じでzabbix側で実現可能でしょうか?

たびたび質問をさせていただき、大変申し訳ありません。

ユーザー TNK の写真

そのような利用法であれば、Hostnameではなく、HostnameItemを利
用されてみてはいかがでしょうか。
Hostnameの設定はコメントアウトして、

HostnameItem=system.hostname

という設定を有効にすれば、Zabbixエージェントからの自動登録時
にシステムのホスト名を利用したと思います。

このあたりは、九龍さんの「全自動Zabbix ver2」もご参照くださ
い。(P.22など)
http://www.slideshare.net/qryuu/zabbix-var2

ユーザー katsuhi@hotmail.co.jp の写真

大変助かりました。ありがとうございました。

いただいた方法でうまくホスト名が取得できました。

また何かありましたら、質問させていただきます。
以上、よろしくお願い致します。