よくばりすなシステムエンジニアのブログ

サーバー・ネットワークエンジニア向けに発信しますっ!

【Zabbix6.4】インストールと初期設定(AlmaLinux8.7(CentOS8,RHEL8)+nginx+php+MySQL)

【Zabbix6.4】インストールと初期設定(AlmaLinux8.7(CentOS8,RHEL8)+nginx+php+MySQL)

こんにちは!

インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE )です。

今回は、「【Zabbix 6.4】Zabbix インストールと初期設定(AlmaLinux8.7(CentOS8,RHEL8)+nginx+php+MySQL)」について紹介したいと思います。

私自身いろいろと躓きましたため、上から順番に実施することで「Zabbix」にログインできるような構成になっております。

AlmaLinux8.7(CentOS8,RHEL8)は、「最小のインストール」でインストールした状態です。

「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。


Zabbix インストール環境


名称

Ver

OS

CentOS8.7 or Linux8.7 or RHEL8.7

PHP

7.4.30-1.module_el8.7.0+3286+227f3cf0

PHP-FPM

7.4.30-1.module_el8.7.0+3286+227f3cf0

zabbix

6.4.0-rc4.release1.el8

nginx

1.14.1-9.module_el8.3.0+2165+af250afe.alma

MySQL

8.0.30-1.module_el8.6.0+3340+d764b636





Zabbix インストール時のパラメーター


設定項目

設定値

Zabbixサーバーのホスト名

zabbix01

zabbixデータベース名

zabbix

zabbix管理用のMySQLのユーザー名

zabbixadmin

zabbix管理用のMySQLユーザーのパスワード

zabbixpass

zabbixアクセス時のポート番号

8080





Linuxの初期設定

SELinuxの設定

SELINUXというセキュリティ機能の無効化+ログ取得可能にする設定です。RedHatの推奨設定です。

/etc/selinux/config

Firewallの無効化(ファイアウォールの無効化)

基本的には、サーバー単位のファイアウォールは無効化するで良いと思います。

●「firewalld」のサービスを停止します

systemctl stop firewalld

●「firewalld」のサービスがOSを再起動した後も自動で起動しないようにします。

systemctl disable firewalld

その他の設定

必須ではないですが、そのほかの初期設定は以下も見てもらえると嬉しいです!!

www.kayura-se.com





Zabbixに必要なパッケージのインストール

①「Zabbixのリポジトリ」をインストールします。

rpm -Uvh https://repo.zabbix.com/zabbix/6.3/rhel/8/x86_64/zabbix-release-6.3-1.el8.noarch.rpm

②dnfをクリーンします。

dnf clean all

③「PHP」をインストールします。

dnf -y module switch-to php:7.4

③「Zabbixサーバーの関連サービス」をまとめてインストールします。

dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent zabbix-web-japanese

④「MySQL」をインストールします。

以下のコマンドで最新のVerを確認します。

yum info mysql
バージョン : 8.0.30

最新のVerでインストールします。

yum install -y @mysql:8.0





MySQLの設定

MySQLの初期設定

①「mysqld」のサービスを起動し、自動起動を有効化します。

systemctl start mysqld
systemctl enable mysqld

②MySQLの初期設定用のコマンドを実行します。

 mysql_secure_installation
 ■対話形式の応答:
Press y|Y for Yes, any other key for No: y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
New password:(rootユーザーのパスワードを入力)
Re-enter new password:(rootユーザーのパスワードを再入力)
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

③MySQLに「root」ユーザーでログインします。

mysql -u root -p
Enter password:(rootユーザーに設定したパスワード)





Zabbix用のMySQLデータベースの作成

「zabbix」というデータベースを文字セットを「UTF8」で作成します。

mysql>create database zabbix character set utf8mb4 collate utf8mb4_bin;

Zabbix用のMySQLユーザーの作成

Zabbix管理用のMySQLのユーザーを作成します。

(例)create user zabbixadmin@localhost identified by 'zabbixpass';

mysql>CREATE USER 'ユーザー名@localhost' IDENTIFIED BY 'パスワード';

Zabbix管理用のMySQLのユーザーにデータベースの操作権限を設定します。

(例)grant all privileges on zabbix.* to zabbixadmin@localhost;

mysql>grant all privileges on zabbix.* to ユーザー名@localhost;

「log_bin_trust_function_creators」を有効にします。※あとで無効にします。

mysql>set global log_bin_trust_function_creators = 1;

MySQLからログアウトします。

mysql>quit;





初期スキーマとデータをインポートします。

Zabbix サーバー ホストで、初期スキーマとデータをインポートします。

(例)zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u zabbixadmin -p zabbix

mysql>zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u Zabbix管理ユーザー名 -p Zabbix用データベース名;
Enter password:(zabbix管理用ユーザーに設定したパスワード)

処理が終わりまでに少し時間がかかります。





「log_bin_trust_function_creators」の無効化

①MySQLに「root」ユーザーでログインします。

mysql -u root -p
Enter password:(rootユーザーに設定したパスワード)

log_bin_trust_function_creators」を無効にします。

mysql>set global log_bin_trust_function_creators = 0;

MySQLからログアウトします。

mysql>quit;





Zabbixサーバーの設定

ZabbixサーバーとMySQLの連携設定

「Zabbixサーバー」の設定
vim /etc/zabbix/zabbix_server.conf

■変更前

↓↓↓↓↓↓変更後↓↓↓↓↓↓

■変更後

Zabbixサーバーとnginxの連携設定

「nginx」の設定
vim /etc/nginx/conf.d/zabbix.conf

■変更前

↓↓↓↓↓↓変更後↓↓↓↓↓↓

■変更後

「server_name」にはご自身の環境のサーバーのDNS名またはIPアドレスを設定します。

例:192.168.1.1、KANSHISV01など※私の環境はzabbix01です。

複数を定義する場合は、「半角スペース」で区切ってください。





Zabbix関連サービスの再起動と自動起動有効化

Zabbix関連サービスの再起動

①「nginx」のサービスを再起動します。

systemctl restart nginx

②「php-fpm」のサービスを再起動します。

systemctl restart php-fpm

③「zabbix-server」のサービスを再起動します。

systemctl restart zabbix-server

④「zabbix-agent」のサービスを再起動します。

systemctl restart zabbix-agent

Zabbix関連サービスの自動起動有効化

①「nginx」のサービスの自動起動を有効にします。

systemctl enable nginx

②「php-fpm」のサービスの自動起動を有効にします。

systemctl enable php-fpm

③「zabbix-server」のサービスの自動起動を有効にします。

systemctl enable zabbix-server

④「zabbix-agent」のサービスの自動起動を有効にします。

systemctl enable zabbix-agent





Webでの初期設定ウィザード

①Chromeなどのブラウザで以下のURLに接続します。

http://zabbix01:8080/ ※zabbix01は私の環境の場合です。

※ご自身の環境のDNS名またはIPアドレスでお願いします。

http://★IPアドレスまたはDNS名★:8080/

※もし、繋がらない場合は、以下もお試しください。

「★IPアドレスまたはDNS名★」は、/etc/nginx/conf.d/zabbix.confで定義した「server_name」の項目の値と統一する必要があります。

http://★IPアドレスまたはDNS名★:8080/setup.php

http://★IPアドレスまたはDNS名★:8080/index.php

zabbix6.4初期設定1
zabbix6.4初期設定1

②言語を「日本語(ja_JP)」に変更して、「次のステップ」をクリックします。

zabbix6.4初期設定2
zabbix6.4初期設定2

③前提条件のチェックがすべて「OK」であることを確認して、「次のステップ」をクリックします。

zabbix6.4初期設定3
zabbix6.4初期設定3

④以下を設定して、「次のステップ」をクリックします。

データベース名 ←MySQLのデータベース名
ユーザー ←MySQLのZabbix管理用のユーザー名
パスワード ←MySQLのZabbix管理用のユーザーのパスワード

zabbix6.4初期設定4
zabbix6.4初期設定4





⑤以下を設定して、「次のステップ」をクリックします。

Zabbixサーバー名 ←Zabbixサーバーのホスト名
デフォルトのタイムゾーン ←Asia/Tokyo

zabbix6.4初期設定5
zabbix6.4初期設定5

⑥設定内容を確認して、「次のステップ」をクリックします。

zabbix6.4初期設定6
zabbix6.4 初期設定6

⑦以下のメッセージが表示されることを確認して、「終了」をクリックします。

zabbix6.4初期設定7
zabbix6.4初期設定7

⑧以下のとおり、Zabbixの初期ユーザー名と初期パスワードを設定して、「サインイン」をクリックします。

ユーザー名:Admin
パスワード:zabbix

※大文字と小文字にご注意ください!!!

zabbix6.4初期設定9
zabbix6.4初期設定9





⑨以下の画面が表示されれば、Zabbixサーバーの構築は完了です。

10
zabbix6.4初期設定10

【Zabbix 6.4】Zabbix インストールと初期設定(AlmaLinux8.7(CentOS8,RHEL8)+nginx+php+MySQL)の手順は以上となります。

次回はZabbixの活用方法について説明したいと思います。

ZabbixでエージェントレスでPing監視(ICMP)する方法の手順が出来たので、ご覧いただけると嬉しいです!

www.kayura-se.com

現在悩んでいる方はTwitterでご連絡ください。

私も辛い日々を経験したのであなたの助けになりたいです。

カユラ(@kayura_SE )