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

この記事にたどり着いた方は、Zabbixサーバの構築後に、Zabbix管理画面を確認して、管理画面下部に「Zabbixサーバーが動作していません(画面のリフレッシュを行ってステータスを再確認してください)」と表示されてしまい、困ってしまっているのではないでしょうか。

今回は、上記のようなケースが発生する場合の原因と解決策について解説します。

【解決策】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の使用方法を基本から実践まで解説した書籍です。よくある監視例から大規模な監視例まで、さまざまなな事例を挙げてシステム監視の設定例について解説されてます。Zabbixを初めて使う人から、さらに使いこなしたい人まで、インフラ管理の効率化を求める全てのインフラエンジニアにおすすめです。

まとめ

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