読者です 読者をやめる 読者になる 読者になる

【CentOS7.2】【ZABBIX3.2.0】zabbix-agentdが起動しない

さすがに更新さぼりすぎだろということで更新。

 

仕事でAzureを触る機会があり、かつZABBIX導入を検討しなければいけないということで弄っていたのですが、zabbix-agentdが起動しないという問題があったので、メモとして残しておきます。

しかしこれいいなぁ。自宅に構築しよう。

 

1.ZABBIXとは?

・・・を記載すると長くなるのでググってください。まぁ、Web‐UIでシステムリソースを監視できるOSSです。

 

2.で、何が起こったの?

ZABBIXというのは、管理サーバにインストールするzabbix-serverと管理(監視)される側にインストールするzabbix-agentdがあります。

管理サーバ自身も監視したいため、管理サーバには基本両方入れます。

↓こちらがとても分かりやすかったです!

今回インストールしたのは3.2.0ですが、上記ブログのバージョンを読みかえれば基本的にはOK。

さて、ここでおそらく躓きやすいのは、ZABBIXサーバは動いて、ブラウザでもアクセスできた、でもなぜか、「Zabbixサーバーの起動」の状態が「いいえ」になっている。という問題があります(これ自体は今回の主題ではない)。

対策法も上記ブログに記載してあるため、おそらくこれも問題ないかと思います。

要はSELinuxの設定をちゃんとしなければいけない。

 

問題はzabbix-agentdが起動しないということ。これもSELinuxが原因だった。

 

3.何故か情報が見つからない

zabbix-agentdを起動するようにするには以下のようにコマンド打ちます。が、エラーも出ました。

# sudo systemcrl service zabbix-agent.service

Job for zabbix-agent.service failed. See 'systemctl status zabbix-agent.service' and 'journalctl -xn' for details.

 ※Azure上のCentOSはroot権限のものはすべてsudoで動かす

 

/var/log/zabbix/zabbix_agentd.logを見ると、どうも権限がなくてPIDファイルが/var/run/zabbixディレクトリに作成できないというエラーでした。

これに関していろいろ調べましたが、分かったことは、SELinuxをPermissive(アクセス許可)にすると動き、Enforcing(アクセス拒否)と動かないということ。また、zabbix-serverに関しての対応は結構見つかるのに、zabbix-agentdについては何故か情報が見つからず(いくつか関連しそうなのはあるが、解決には結びつかず)。

 

記載によっては # setenforce 0でPermissiveにすればよいと書いてあったり、SELinuxのコンフィグファイルを変更して止めればいいとか書いてあったりでいやそれはさすがに(セキュリティ的に)ダメだろ・・・と。

 

4.で、どうなった

で、対策見つかりました。

まぁ、最初に取り上げた方のブログなんですが。

SELinuxの設定」のところに記載されている内容がまさしくドンピシャで、同じ方法をzabbix-agentdでも行えばよい。

 

# sudo grep zabbix_agent /var/log/audit/audit.log | audit2allow
#=============zabbix_agent_t==============
allow zabbix_agent_t self:process setrlimit;
#

という感じで、grepに引っかかるはずなので、これをこう。

# sudo grep zabbix_agent /var/log/audit/audit.log | audit2allow -M zabbix-limit
******************** IMPORTANT ***********************
To make this policy package active, execute:semodule -i zabbix-limit.pp

zabbix-limit.ppファイルが実行したディレクトリに作成されているはずなので、メッセージの通りに実行する。

# sudo semodule -i zabbix-limit.pp

SELinuxのポリシーに追加されたはずなので、zabbbix-agentdを実行するだけ!

# sudo systemcrl service zabbix-agent.service 

 ※実行成功の時は特に何も出ない。# sudo systemcrl status zabbix-agent.serviceで確認!