0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CentOS9にZabbix7.0を構築

Last updated at Posted at 2024-11-30

■はじめに

せっかく-前回-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」を入力し、以下の画面が表示されたら成功。

スクリーンショット 2024-12-01 141722.png

※上記画面が出ない場合、以下のコマンドを入力し、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

スクリーンショット 2024-12-15 104121.png

image.png

image.png

image.png

image.png

image.png

機会があれば、Zabbixを使って色々実験をしてみたいですね。

■参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?