原因と解決策:Zabbixサーバーが動作していません/Zabbixサーバーの起動がいいえ

結論:SELinuxを無効にする

SELinuxを無効化してOS再起動!

事象:Zabbixサーバーが動作していません/Zabbixサーバーの起動がいいえ

Zabbixサーバーが動作していません

Zabbix管理画面下部に「Zabbixサーバーが動作していません(画面のリフレッシュを行ってステータスを再確認してください)」と表示される。

「Zabbixサーバの起動」の値が「いいえ」

Zabbix管理画面上部の「システム情報」のパラメータの項目で、「Zabbixサーバの起動」の値が「いいえ」となっている。

「Zabbixサーバの起動」の値が「いいえ」

トラブルシューティング:原因調査

「Zabbixサーバの起動 いいえ」でググってみます。
以下のようなものが原因として考えられるようです。

  • zabbix_serverプロセスが正常に起動していない。
  • SELinuxが有効になっている。(/etc/sysconfig/selinux で SELINUX=enforcing)
  • zabbixの設定(/etc/zabbix/web/zabbix.conf.phpで$ZBX_SERVER = ‘localhost’; となっている。)

zabbix_serverプロセスの確認

[root@zabbix]# systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Sun 2020-05-17 17:52:34 UTC; 291ms ago
  Process: 717 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=1/FAILURE)
  Process: 673 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 675 (code=exited, status=0/SUCCESS)
May 17 17:52:34 zabbix systemd[1]: zabbix-server.service: control process exited, code=exited status=1
May 17 17:52:34 zabbix systemd[1]: Unit zabbix-server.service entered failed state.
May 17 17:52:34 zabbix systemd[1]: zabbix-server.service failed.

 

FAILUREとかfailedとかあるので、どうやら失敗してます。

「zabbix-server.service failed.」でググってみます。

Qiitaとか「日本Zabbixユーザー会」のQ&Aなどを見てみました。
https://qiita.com/_BSmile_/items/61932e45de5330190027
http://www.zabbix.jp/node/4205

トラブルシューティングの方法としては、Zabbixのログを確認して原因調査する必要があるようです。

[root@zabbix]# less /var/log/zabbix/zabbix_server.log

が、自分のスキル的にログをよく見てもよく分からないので・・・、先人たちの解決策を試してみることにしました。

原因と解決方法

あれやこれやと調べたり試したりして、ようやく問題解決できました。

結論から言うと、SELinuxが有効になってたのが原因でした。

SELinuxは、Security-Enhanced-Linuxの略。カーネルの制御機能を付加するモジュールの名称。
Linuxのディストリビューションではない。

以下の操作をすることで問題解決できました。

SELinuxの無効化 → サーバー再起動  → zabbix-serverの起動

SELinuxを無効にする方法

SELinuxを無効にします。

[root@zabbix]# vi /etc/selinux/config

 

/etc/selinux/config のSELINUXをdisabledにすれば無効化になります。

#SELINUX=enforcing
SELINUX=disabled

サーバー再起動

変更した設定は再起動しなければ反映されないため、rebootで再起動します。

[root@zabbix]# reboot

 

再起動後、SELinuxが無効になっているか確認します。

[root@zabbix]# getenforce
Disabled

 

zabbixサーバーも再起動してstatusを確認してみたところ、無事にactiveになってます。

[root@zabbix]# systemctl stop zabbix-server
[root@zabbix]# systemctl start zabbix-server
[root@zabbix]# systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-05-17 20:56:09 UTC; 8min ago
  Process: 1138 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 1147 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 1149 (zabbix_server)
   CGroup: /system.slice/zabbix-server.service
           tq1149 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

問題解決後のZabbix動作確認

Zabbix管理画面の確認

Zabbixの管理画面を確認してみます。

無事にZabbixサーバーの起動が「はい」になりました!

「Zabbixサーバの起動」の値が「はい」

まとめ

  • Zabbixサーバーが起動中なのに、Zabbix管理画面の「Zabbixサーバの起動」の値が「いいえ」になっている場合は、SELinuxの無効化をしてみる。
  • トラブルシューティングの方法としては、Zabbixサーバーを起動した時のログを調査する。
  • SELinuxはカーネル制御機能のモジュールであり、Linuxディストリビューションではない。