概要
Zabbix Proxy で監視設定をしている際にタイトルのエラーがずっと発生していつまで経ってもホストの監視が有効にならなかった
環境
- CentOS 6.6 64bit
- Zabbix Server 2.0.5
- Zabbix Proxy 2.0.14
- Zabbix Agent 2.0.14
エラーの詳細
エージェント側とプロキシ側で以下のログがずっと出続けいる状態が発生しました
- プロキシ側
cannot send list of active checks to … - エージェント側
no active checks on server …
監視対象のZabbix Agentの設定、分散監視するZabbix Proxyの設定はすでに完了しているものとします
設定とは具体的にはzabbix_agentd.confやzabbix_proxy.confの記載が完了していてプロセスも起動している状態です
またACL等も問題なく設定されている状態です
この状態で当該エラーが発生してホストの監視がずっと行われていませんでした
原因調査
Zabbix Agent側の設定やZabbix Proxy側の設定を散々変更してみたのですが、一向に解消されませんでした
原点に立ち返って再度ログを眺めてみると/var/log/zabbix/zabbix_proxy.log
に以下のようなログが出ていました
failed to update local proxy configuration copy: invalid field name "items.filter"
このログを頼りに調査を続けるとどうやらZabbix Proxyに必要なMySQLのスキーマがおかしいことがわかりました
Zabbix ProxyはZabbix Serverとデータの同期を行っています
具体的にはホストの監視設定(アイテム等)になります
このときにZabbix Proxy側のスキーマがZabbix Server側のスキーマとあわずにうまくのデータが同期できていなかったようです
ここまで来てピンと来たのですが、Zabbix Serverは古くから使われているサーバでバージョンが古く「2.0.5」でした
対してZabbix ProxyとZabbix Agentは最近構築したサーバでここには最新のZabbix ProxyとZabbix Agentをインストールしていました
最新バージョンは2.4.5になります
対応方法
結論は
2.4.5のZabbix ProxyとZabbix Agentを一旦アンインストールして2.0.14のProxyとAgentを再インストールしました
になります
すべてyumで管理していたので
yum erase zabbix_proxy
yum erase zabbix_agent
yum erase zabbix
で最新バージョンのパッケージを削除し
rpm -ivh http://repo.zabbix.com/zabbix/2.0/rhel/6/x86_64/zabbix-release-2.0-1.el6.noarch.rpm
yum clean all
yum install zabbix-proxy
yum install zabbix-agent
で再度インストールしたあとに
mysql -u user -p zabbix < /usr/share/doc/zabbix-proxy-mysql-2.0.14/create/schema.sql
という感じで2.0系のDBスキーマをZabbix Proxy用に当ててあげれば問題なく動作しました
最後に
今回学んだ教訓は
Zabbix Serverのバージョンに合わせてZabbix ProxyとZabbix Agentのバージョンも合わせよう
そうしないとDBのスキーマが異なりうまく監視データをZabbix Proxy上に登録することができない
ということです
本当はセキュリティの関係とかもあって最新版を使いたいところなのですが、どうやらDBのスキーマの関係で無理なようです
マイナーバージョンは異なっていても問題ないようです
- Zabbix Server 2.0.5 <–> Zabbix Proxy 2.0.14 の組み合わせでは問題なく動作した
新規でZabbix Serverも構築する場合は今回のような問題に遭遇することは少ないと思いますが
Zabbix Proxyを使って監視対象の新規サービスを増やす場合などに陥りそうです
0 件のコメント:
コメントを投稿