CentOS7で構築済みのZabbix5を、Zabbix6がリリースされたのを機に、サポート期間の長いRocky Linux8のZabbix6へバージョンアップしてみた。
環境
- 旧:CentOS7, Apache, PHP7.2, MariaDB, Zabbix5
- 新:Rocky Linux8, Apache, PHP7.4, MariaDB10.5, Zabbix6
OS自体のバージョンアップを行うため、別途新サーバを用意する
作業の流れ
1.新サーバの構築(Zabbix5.0)
2.旧サーバからDBエクスポートと新サーバに転送
3.新サーバでDB dumpファイルインポート
4.Zabbix6.0へバージョンアップ
5.旧サーバのIPアドレスまたは、FQDNを新サーバに移行
1. 新サーバ(Rocky Linux 8サーバ)の構築
Rocky Linux 8よりMinimalでRocky Linux8をインストール
※インストール後、システム時間を確認すること。(時間が狂っていてdnf に失敗した事が有った)
併せてChrony(NTP)の起動も確認しておく
-
Cronyd 起動確認
# systemctl status chronyd -
パッケージを最新に更新
# dnf -y update` -
rsyslogのインストール
Minimalインストールでrsyslogがインストールされなかった為
※/var/log/message ファイルが見当たらなかったため判明詳細
# dnf -y install rsyslog # systemctl start rsyslog # systemctl enable rsyslog -
Apacheインストールと設定変更
詳細
-
インストール
# dnf -y groupinstall web-server -
設定ファイル変更(要点のみ)
# vi /etc/httpd/conf/http.confServerName www.itsumomiteru.com:80 ServerTokens ProductOnly ServerSignature off Header append X-FRAME-OPTIONS "SAMEORIGIN" Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options nosniff TraceEnable off# vi /etc/httpd/conf.d/ssl.confSSLCompression off SSLProtocol -all +TLSv1.2 +TLSv1.3 -
phpインストールと設定変更
- インストール可能なphpモジュール確認
# dnf module list php Last metadata expiration check: 3:08:40 ago on Wed 27 Apr 2022 11:55:52 AM JST. Rocky Linux 8 - AppStream Name Stream Profiles Summary php 7.2 [d] common [d], devel, minimal PHP scripting language php 7.3 common [d], devel, minimal PHP scripting language php 7.4 [e] common [d] [i], devel, minimal PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled -
php7.4以上で最新モジュールインストール
# dnf module -y install php:7.4 -
php.ini編集
# vi /etc/php.iniexpose_php = Off -
Apache起動
# httpd -t # systemctl start httpd # systemctl status httpd # systemctl enable httpd
-
-
MadiaDBインストール
詳細
-
インストール可能なモジュール確認
# dnf module list mariadb Last metadata expiration check: 3:50:41 ago on Wed 27 Apr 2022 11:55:52 AM JST. Rocky Linux 8 - AppStream Name Stream Profiles Summary mariadb 10.3 [d] client, galera, server [d] MariaDB Module mariadb 10.5 [e] client, galera, server [d] [i] MariaDB Module Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled -
MariaDB 10.5以上で最新モジュールインストール
# dnf module -y install mariadb:10.5 -
関連パッケージインストール
# dnf -y install php-mysqlnd php-gd php-xml php-bcmath php-ldap
-
-
Zabbix5.0インストール
詳細
-
リポジトリインストール
# dnf -y install https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm -
Zabbixパッケージインストール
# dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent2 zabbix-get -
PHP-fpm環境設定
# vi /etc/php-fpm.d/zabbix.confpm = static php_value[date.timezone] = Asia/Tokyo -
PHP-fpm起動
# systemctl start php-fpm # systemctl enable php-fpm -
Zabbixサーバ&エージェント設定
※旧サーバの設定を引き継ぐ
-
-
MariaDB Zabbix環境設定
詳細
-
MariaDB起動
# systemctl start mariadb # systemctl enable mariadb -
初期設定(抜粋)
# mysql_secure_installation~ Enter current password for root (enter for none): <- 空エンター ~ Switch to unix_socket authentication [Y/n] <- [Y] ~ Change the root password? [Y/n] <- [Y] New password: <- MariaDBのrootパスワード入力 Re-enter new password: <- パスワード再入力 ~ 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] -
Zabbix用ユーザ作成(抜粋)
# mysql -u root -pEnter password: <- 上記で設定したMariaDBのパスワード MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin; <- 文字コードは、旧システムに合わせる MariaDB [(none)]> CREATE USER zabbix@localhost IDENTIFIED BY 'zabbixユーザパスワード'; MariaDB [(none)]> GRANT ALL ON zabbix.* TO zabbix@localhost; mysql> quit;
-
-
SELinuxの無効化とファイヤーウォール設定
詳細
- SELinuxの無効化
# setenforce 0# vi /etc/sysconfig/selinuxSELINUX=disabled - Firewalld稼働確認
# systemctl status firewalld # dnf -y install firewalld # systemctl start firewalld # systemctl enable firewalld - Firewalld ポート開放
# firewall-cmd --add-service={http,https} --permanent # firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent # firewall-cmd --reload
- SELinuxの無効化
- サーバ再起動
2.旧サーバからDBエクスポートと新サーバに転送
-
旧サーバでZabbixを停止
# systemctl stop zabbix-agent2 zabbix-server -
DBエクスポート
# mysqldump -u root -p zabbix > /tmp/zabbix.sql # cd /tmp # gzip zabbix.sql -
新サーバに転送
# scp /tmp/zabbix.sql.gz [新サーバユーザid]@[新サーバIP]:/tmp/
3.新サーバでDB dumpファイルインポート
-
転送済みdumpファイル解凍
# gunzip /tmp/zabbix.sql.gz -
解凍したdumpファイルをインポート
# mysql -u root -p zabbix < /tmp/zabbix.sql -
新サーバでZabbix起動確認
ブラウザで新サーバに接続し、初回設定画面が出るので設定を実行
http://[FQDN or IPアドレス]/zabbix/zabbix.php
4.Zabbix6.0へバージョンアップ
-
ZabbixとApache停止
# systemctl stop zabbix-server zabbix-agent2 httpd php-fpm -
Maria DB停止
# systemctl stop mariadb -
Zabbix6 リポジトリ更新
# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm -
Zabbix6 インストール
※dnf installで問題なくバージョンアップされるので、Zabbix5.0をアンインストールする必要はない# dnf crean all # dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent2 zabbix-web-japanese -
Zabbix-getバージョンアップ
# dnf install -y zabbix-get -
パッケージ確認
# rpm -qa | grep zabbix | sort zabbix-agent2-6.0.3-1.el8.x86_64 zabbix-apache-conf-6.0.3-1.el8.noarch zabbix-get-6.0.3-1.el8.x86_64 zabbix-release-6.0-1.el8.noarch zabbix-server-mysql-6.0.3-1.el8.x86_64 zabbix-web-6.0.3-1.el8.noarch zabbix-web-deps-6.0.3-1.el8.noarch zabbix-web-japanese-6.0.3-1.el8.noarch zabbix-web-mysql-6.0.3-1.el8.noarch # -
Maria DB起動
# systemctl start mariadb -
Zabbix起動
# systemctl start zabbix-server zabbix-agent2 httpd php-fpm -
Zabbix動作確認
ブラウザで新サーバに接続し、初回設定画面が出るので設定を実行
http://[FQDN or IPアドレス]/zabbix/zabbix.php

ダッシュボードの最下部でバージョン情報が確認できる
5.旧サーバのIPアドレスまたは、FQDNを新サーバに移行
- IPアドレスの移行は、念のため旧サーバのIPアドレス変更とNICインターフェースを停止しておく
- FQDNを移行する場合は、DNSサーバの該当AレコードのIPアドレスを変更する