■はじめに
せっかく-前回-Apacheを入れたので、Zabbix7.0を構築していきます。Zabbixにログインが出来てWebフロント画面にたどり着くまでをやっていきます。
■Zabbix構築に必要なもの
・Webサーバー
⇒Apacheを使用。既にインストール済み。
・PHP
⇒インストールする。
・Mysqlサーバー
⇒MariaDBをインストールする。
※yum(dnf)でインストールしていくので、インターネットにつながっていることが前提。
■Centos側の設定
◆SELinuxの無効化
1.SELinuxの状態を調べる
# getenforce
Enforcing
⇒エラーとならないこと
2.有効になっていた場合、無効化する
(1)で有効となっていましたので、無効化します。今回は完全に無効化しますので、confファイルを書き換えていきます。
# cd /etc/selinux/
# ll
合計 8
-rw-r--r--. 1 root root 1263 11月 2 14:17 config
-rw-r--r--. 1 root root 2668 8月 17 07:08 semanage.conf
drwxr-xr-x. 5 root root 133 11月 2 14:17 targeted
/etc/selinux/配下にあるconfigファイルをviで編集します。
viでconfigファイルを開くと、
SELINUX=enforcing
と記述がありますので、# iでコマンドモードからインサートモードに移行して、これ↑を
SELINUX=disabled
に書き換え、:wqで保存します。
3.OS再起動
以下のコマンドを入力し、OSを再起動します。
# reboot
※再起動しないと設定は反映されません。
4.SELinuxが無効となったことの確認
# getenforce
Disabled
⇒「Disabled」となっていること
◆Zabbixの通信ポート開放
1.以下のコマンドを入力し、ポートを開放する
# firewall-cmd --permanent --add-port={10051/tcp,10050/tcp}
success
⇒「success」と表示されること
2.ファイアウォール設定ファイルを再起動する
# firewall-cmd --reload
success
⇒「success」と表示されること
3.ポートが開放されたことを確認する
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client http ssh
ports: 10051/tcp 10050/tcp
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
⇒ports:欄に「10051/tcp 10050/tcp」が反映されたこと
■PHPのインストール
1.以下のコマンドを入力し、phpのバージョンを確認する
# yum module list php
CentOS Stream 9 - AppStream
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
php 8.2 common [d], devel, minimal PHP scripting language
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
⇒エラーとならないこと
今回は「php8.2」をインストールしていきます。
2.以下のコマンドを入力し、php8.2をインストールする
# yum module -y install php:8.2/common
⇒エラーとならないこと
3.以下のコマンドを入力し、インストールされたphpのバージョンを確認する
# php -v
PHP 8.2.13 (cli) (built: Nov 21 2023 09:55:59) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.13, Copyright (c) Zend Technologies
⇒phpのバージョンを確認できたこと
4.phpの動作確認
Webサーバの/var/www/html配下にxxx.phpファイルを配置して、phpの動作テストをします。
以下のコマンドを入力し、コマンドの標準出力をファイルに出力します。
# echo '<?php phpinfo(); ?>' > /var/www/html/phpinfo.php
⇒エラーとならないこと
catコマンドで中身を見てみます。
# cat /var/www/html/phpinfo.php
<?php phpinfo(); ?>
⇒エラーとならないこと
初期設定では、phpを起動させる「php-fpmサービス」が起動していないので、これを起動させます。
# systemctl status php-fpm
○ php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; preset:>
Active: inactive (dead)
以下のコマンドを入力し、「php-fpmサービス」を起動する。
# systemctl start php-fpm
⇒エラーとならないこと
以下のコマンドを入力し、「php-fpmサービス」の状態を確認します。
# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; preset:>
Active: active (running) since Sun 2024-12-01 13:52:31 JST; 2s ago
Main PID: 1721 (php-fpm)
Status: "Ready to handle connections"
Tasks: 6 (limit: 11071)
Memory: 9.6M
CPU: 50ms
CGroup: /system.slice/php-fpm.service
tq1721 "php-fpm: master process (/etc/php-fpm.conf)"
tq1722 "php-fpm: pool www"
tq1723 "php-fpm: pool www"
tq1724 "php-fpm: pool www"
tq1725 "php-fpm: pool www"
mq1726 "php-fpm: pool www"
12月 01 13:52:31 www.testfuziiiiaki.com systemd[1]: Starting The PHP FastCGI Pr>
12月 01 13:52:31 www.testfuziiiiaki.com systemd[1]: Started The PHP FastCGI Pro
⇒Active:欄が緑文字で「active (running)」となっていること
5.Webサーバにアクセスする
Webブラウザに「http://[IPアドレス]/phpinfo.php」を入力し、以下の画面が表示されたら成功。
※上記画面が出ない場合、以下のコマンドを入力し、httpdを再起動してから、再度(5)を実施する。
# systemctl restart httpd.service
■MariaDBのインストール
◆インストール
1.以下のコマンドを入力し、MariaDBをインストールする
# yum install mariadb mariadb-server
⇒エラーとならないこと
2.以下のコマンドを入力し、インストールされたMariaDBのバージョンを確認する
# mariadb --version
mariadb Ver 15.1 Distrib 10.5.22-MariaDB, for Linux (x86_64) using EditLine wrapper
3.以下のコマンドを入力し、MariaDBを起動する
# systemctl start mariadb
⇒エラーとならないこと
4.以下のコマンドを入力し、MariaDBの状態を確認する
# systemctl status mariadb
⇒Active:欄が緑文字で「active (running)」となっていること
5.以下のコマンドを入力し、MariaDBの自動起動をオンにする
# systemctl enable mariadb
⇒エラーとならないこと
◆文字コードの変更
MariaDBの文字コードを変更するために、mariadb-server.cnfファイルの中の[mysqld]に以下3行を追記する。
character-set-server = utf8
collation-server = utf8_bin
skip-character-set-client-handshake
まずは、以下のコマンドを入力し、mariadb-server.cnfファイルを開く。
# vi /etc/my.cnf.d/mariadb-server.cnf
⇒エラーとならないこと
次に、# iでコマンドモードからインサートモードに変更し、[mysqld]に以下のように、上記3行を追記し、:wqで保存する。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
character-set-server = utf8 ★追記箇所
collation-server = utf8_bin ★追記箇所
skip-character-set-client-handshake ★追記箇所
⇒コマンドラインに戻ること
◆設定
1.以下のコマンドを入力し、対話形式で設定を進めていく
# mysql_secure_installation
⇒対話モードに移行すること
Enter current password for root (enter for none): ★ENTERを入力する。
Switch to unix_socket authentication [Y/n] ★nを入力する。
Change the root password? [Y/n] ★Yを入力する。
New password: ★DBのPW設定
Re-enter new password: ★↑で入れたPWを入力する。
Remove anonymous users? [Y/n] ★Yを入力する。
Disallow root login remotely? [Y/n] ★Yを入力する。
Remove test database and access to it? [Y/n] ★Yを入力する。
Reload privilege tables now? [Y/n] ★Yを入力する。
⇒コマンドラインに戻ること
2.設定反映のため、以下のコマンドを入力し、MariaDBを再起動する
# systemctl restart mariadb
⇒エラーとならないこと
■Zabbixのインストール
◆インストール
公式サイトの手順に従って、Zabbixをインストールします。
1.Zabbixリポジトリをインストールする
すでにEPELによって、Zabbixパッケージがインストールされている場合は、無効化する。
/etc/yum.repos.d/epel.repoを編集して、以下の記述を加える。
[epel]
...
excludepkgs=zabbix*
とりあえず、↑のファイルがあるか調べます。
ll /etc/yum.repos.d/ | grep e
8 -rw-r--r--. 1 root root 4245 2024/03/21 02:57:43 centos-addons.repo
4 -rw-r--r--. 1 root root 2600 2024/03/21 02:57:43 centos.repo
今回は、epeal.repoファイルがなかったので、本手順はスキップします。
以下のコマンドを入力し、Zabbixレポジトリをインストールする。
# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
⇒エラーとならないこと
# dnf clean all
⇒エラーとならないこと
2.Zabbixサーバ、フロントエンド、エージェントをインストールする
以下のコマンドを入力する。
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
⇒エラーとならないこと
◆Zabbix用ユーザの作成
1.対話モードにて設定を進める
以下のコマンドを入力する。
# mysql -uroot -p
Enter password: ★DBのrootのパスワードを入力する。
⇒対話モードに移行すること
以下のコマンドを入力し、設定を進める。
# create database zabbix character set utf8mb4 collate utf8mb4_bin;
# create user zabbix@localhost identified by 'XXXXXX'; ★XXXXXXはDBのZabbix用任意のパスワードを入力する。
# grant all privileges on zabbix.* to zabbix@localhost;
# set global log_bin_trust_function_creators = 1;
# quit;
⇒エラーとならず、対話モードが終了すること
2.Zabbix用のDBスキーマと初期データをインポートする
以下のコマンドを入力する。
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Enter password:
先ほどのZabbix用パスワードを入力し、[Enter]を押下する。
3.log_bin_trust_function_creators optionの無効化
以下のコマンドを入力する。
# mysql -uroot -p
Enter password: ★DBのrootのパスワードを入力する。
⇒対話モードに移行すること
# set global log_bin_trust_function_creators = 0;
quit;
⇒エラーとならず、対話モードが終了すること
4.Zabbixサーバのデータベースを設定する
以下のファイルをviで開き、
# vi /etc/zabbix/zabbix_server.conf
以下の記述箇所を編集し、(/DBで検索をかけて、nで下に進んでいくと見つかります。)
DBPassword=★DBのZabbix用パスワードを記述する。
:wqで保存する。
※初期設定だと、コメントアウトされているので、コメントアウトを外してからパスワードを記述すること。
◆Zabbixサーバとエージェントの起動
以下のコマンドを入力し、Zabbixサーバとエージェントを起動する。
# systemctl restart zabbix-server zabbix-agent httpd php-fpm
⇒エラーとならないこと
以下のコマンドを入力し、Zabbixサーバとエージェントの自動起動をオンにする。
# systemctl enable zabbix-server zabbix-agent httpd php-fpm
⇒エラーとならないこと
■ZabbixWeb管理画面の起動
以下をWebブラウザに入力し、ZabbixWeb管理画面にログインする。
http://[IPアドレス]/zabbix
機会があれば、Zabbixを使って色々実験をしてみたいですね。
■参考URL