こんにちは、LinuCエバンジェリストこと、鯨井貴博@opensourcetechです。
事象内容
Zabbix 4.0 LTSでログイン後、画面下部に「Zabbixサーバーが動作していません(画面のリフレッシュを行ってステータスを再確認してください)」と出ることがあります。
また、Zabbixサーバーの起動も、「いいえ」となっています。
UIが英語の場合、「Zabbix server is not running: the information displayed may not be current.」です。
原因
原因は2つあり、
1つは/etc/zabbix/web/zabbix.conf.phpの15行目で、
$ZBX_SERVER = 'localhost'; となっていることにあります。
※ディストリビューションやバージョンによっては、/etc/zabbix/zabbix.conf.phpかもしれません。
もう一つは、SELinuxによりプロセスに権限が不足しているものとなります。
1 <?php
2 // Zabbix GUI configuration file.
3 global $DB;
4
5 $DB['TYPE'] = 'MYSQL';
6 $DB['SERVER'] = 'localhost';
7 $DB['PORT'] = '0';
8 $DB['DATABASE'] = 'zabbix';
9 $DB['USER'] = 'zabbix';
10 $DB['PASSWORD'] = 'password';
11
12 // Schema name. Used for IBM DB2 and PostgreSQL.
13 $DB['SCHEMA'] = '';
14
15 $ZBX_SERVER = 'localhost';
16 $ZBX_SERVER_PORT = '10051';
17 $ZBX_SERVER_NAME = 'Zabbix 4.0 LTS First';
18
19 $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
対応方法
①SELinuxのルールを追加
以下の記事にある方法で対応が出来ます。
また、とりあえず無効化したいという方は、以下でもいいかと思います。
※セキュリティ的には、ルールを追加することを推奨します。
[root@localhost ~]# cat -n /etc/sysconfig/selinux
1
2 # This file controls the state of SELinux on the system.
3 # SELINUX= can take one of these three values:
4 # enforcing - SELinux security policy is enforced.
5 # permissive - SELinux prints warnings instead of enforcing.
6 # disabled - No SELinux policy is loaded.
7 #SELINUX=enforcing
8 SELINUX=permissive
9 # SELINUXTYPE= can take one of three two values:
10 # targeted - Targeted processes are protected,
11 # minimum - Modification of targeted policy. Only selected processes are protected.
12 # mls - Multi Level Security protection.
13 SELINUXTYPE=targeted
14
15
②変数の値を、「'localhost'」から「'127.0.0.1'」に変更し、設定を反映させるためにzabbix-serverを再起動します。
変更前:$ZBX_SERVER = 'localhost';
変更後:$ZBX_SERVER = '127.0.0.1';
※「//」はコメント。
[root@localhost ~]# cat -n /etc/zabbix/web/zabbix.conf.php
1 <?php
2 // Zabbix GUI configuration file.
3 global $DB;
4
5 $DB['TYPE'] = 'MYSQL';
6 $DB['SERVER'] = 'localhost';
7 $DB['PORT'] = '0';
8 $DB['DATABASE'] = 'zabbix';
9 $DB['USER'] = 'zabbix';
10 $DB['PASSWORD'] = 'password';
11
12 // Schema name. Used for IBM DB2 and PostgreSQL.
13 $DB['SCHEMA'] = '';
14
15 // $ZBX_SERVER = 'localhost';
16 $ZBX_SERVER = '127.0.0.1';
17 $ZBX_SERVER_PORT = '10051';
18 $ZBX_SERVER_NAME = 'Zabbix 4.0 LTS First';
19
20 $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
これで、無事にメッセージは消え、Zabbixサーバーの起動も「はい」となりました。