Zabbix Advent Calendar 2019の8日目の記事です。
先日の「Zabbix 4.4をCentOS 8にインストール(MySQL編)」では、Webサーバーとしてhttpdを使用しましたが、nginxを使用する場合をご紹介します。
システム構成
今回の構成は、以下のような構成になるようにします。
- Zabbix : Zabbix 4.4.3
- OS : CentOS 8 (バージョン 8.0.1905)
- Webサーバー : nginx 1.14.1 (CentOS 8標準)
- PHP : PHP 7.2.11 (CentOS 8標準)
- DBMS : MySQL 8.0.13 (CentOS 8標準)
インストール手順の異なる点
httpdを使用する場合、以下のコマンドラインでZabbixのWebインターフェースをインストールする際に、以下のコマンドラインでインストールしていたかと思います。
# dnf install zabbix-web-mysql zabbix-apache-conf zabbix-web-japanese
nginxを使用する場合は、「zabbix-apache-conf」の代わりに「zabbix-nginx-conf」をインストールします。
# dnf install zabbix-web-mysql zabbix-nginx-conf zabbix-web-japanese
追加の設定作業
PHPのtimezoneの設定に関しては、httpdを使用する場合と同様です。
/etc/php-fpm.d/zabbix.conf内の「php_value[date.timezone]」の値を「Asia/Tokyo」にします。
あと、現時点(2019/12/05)のパッケージでは、nginxの設定として、Zabbixのコンテンツへのアクセスが、サブディレクトリを指定しないような設定になっているようです。
この場合、デフォルトで用意されているserverの設定とぶつかってしまいますので、/etc/nginx/nginx.conf内のserverの設定をコメントアウトしておきます。
# vi /etc/nginx/nginx.conf
コメントアウトした箇所は以下の通りです。
--- nginx.conf.bak 2019-10-08 06:17:41.000000000 +0900
+++ nginx.conf 2019-12-05 16:39:38.611000000 +0900
@@ -35,26 +35,26 @@
# for more information.
include /etc/nginx/conf.d/*.conf;
- server {
- listen 80 default_server;
- listen [::]:80 default_server;
- server_name _;
- root /usr/share/nginx/html;
-
- # Load configuration files for the default server block.
- include /etc/nginx/default.d/*.conf;
-
- location / {
- }
-
- error_page 404 /404.html;
- location = /40x.html {
- }
-
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- }
- }
+# server {
+# listen 80 default_server;
+# listen [::]:80 default_server;
+# server_name _;
+# root /usr/share/nginx/html;
+#
+# # Load configuration files for the default server block.
+# include /etc/nginx/default.d/*.conf;
+#
+# location / {
+# }
+#
+# error_page 404 /404.html;
+# location = /40x.html {
+# }
+#
+# error_page 500 502 503 504 /50x.html;
+# location = /50x.html {
+# }
+# }
# Settings for a TLS enabled server.
#
/etc/nginx/conf.d/zabbix.conf内の「listen」や「server_name」は必要に応じて設定してください。
Zabbix用の各サービスの起動
サービスの起動時には、httpdではなくnginxを使用するので、起動や自動起動設定は以下のように実行します。
# systemctl start zabbix-agent zabbix-server php-fpm nginx
# systemctl enable zabbix-agent zabbix-server php-fpm nginx
Webインターフェースへのアクセス
ブラウザを利用して、
http://ZabbixサーバーのIPアドレス/
にアクセスします。httpdの使用時につけていた後ろの「/zabbix/」が不要となるような設定になっています。「/zabbix/」をつけるのであれば、/etc/nginx/conf.d/zabbix.conf内の「location」の設定を変更する必要があります。
最初のアクセス時は、Zabbix設定のウィザードが実行されるので、DBへのアクセス情報などを入力して次へ次へと進めてください。
「Configure DB connection」では、データベース作成時に指定したUserとPasswordを必ず入力してください。
設定が終わるとログイン画面になります。アカウント「Admin」、パスワード「zabbix」でログインしてください。
ログイン後、まずは日本語画面に切り替えます。
右上の人型のアイコンをクリックしてUser Profileを開き、LanguageとしてJapaneseを選択してSaveボタンを押してください。
最後に
これまでのバージョンでは、Webインターフェースで使用するWebサーバーとしてhttpdに限定するようなパッケージの依存関係が指定されていました。そのため、これまでも、nginxを使用して環境構築はできたのですが、パッケージの依存関係を生かしてZabbixのWebインターフェースをインストールすると、httpdが必ずインストールされてしまっていました。
RHEL 8(CentOS 8)からは、nginxも標準のパッケージとして用意されたので、httpd用とnginx用とを明確に切り分けてインストールできるようなパッケージの構成と依存関係の設定になっています。
つまり、Zabbix 4.4とRHEL 8(CentOS 8)の組み合わせでは、「zabbix-web-mysql」というパッケージと一緒に、httpdを使用するときは「zabbix-apache-conf」というパッケージ、nginxを使用するときは「zabbix-nginx-conf」というパッケージを一緒にインストールすることで、それぞれのWebサーバーに合わせた環境構築ができるようになりました。
明日は、誰でしょう?
どなたかよろしくお願いします。