Zabbix 6.0 LTS のサーバ(ホスト)を入れ替え手順をまとめる。
| 登録日 | :2024/08/12 19:38 |
|---|---|
| カテゴリ | :Linux |
VMware 仮想サーバとして RockyLinux 8.8 をインストールし、 Zabbix 6.0 LTS サーバを構築して運用していました。
今回、VMwareが買収されたことに伴い無償版のVMwareの提供が原則なくなってしまいました。
さらにVMwareの脆弱性対策のため、VMware 8 update 3 以上にバージョンアップが必要な状況となりました。調べたところ、VMware 8 は2024/2 以降から無償ダウンロードがなく、有償版のライセンスが必要となるが価格帯が公表されておらず VMware の利用は事実上あきらめるしかないようです。
そこで、RockyLinux 8.8 のZabbix 6.0 LTS サーバを別のマシンに移行するための手順を確認しましたので、忘備録としてまとめました。
0. Zabbixデータベースのバックアップ
Zabbixサーバのデータベースのバックアップを取得します。
まず、Zabbixサーバを停止します。
[root@DNS zabbix]# systemctl stop zabbix-server.service
以下は、mariadbからバックアップを取るスクリプトです。
#!/bin/bash
DATE=$(date +%Y-%m-%d)
DEST="/root/backup/zabbix"
mysqldump --opt --flush-logs --single-transaction --databases zabbix > ${DEST}/zabbix-${DATE}.sql
# rootのパスワードを設定している場合は --passwordオプションを追加する
#mysqldump --password --opt --flush-logs --single-transaction --databases zabbix > ${DEST}/zabbix-${DATE}.sql
コマンドを実行すると日付をつけてバックアップを取得できます。
このテスト環境では、ファイルサイズは27M程度です。データをダンプするサーバに十分な空き容量があることに注意してください。
[root@DNS zabbix]# ./mysqldump.sh
[root@DNS zabbix]# ll
合計 27576
-rwxr-xr-x. 1 root root 272 8月 14 13:43 mysqldump.sh
-rw-r--r--. 1 root root 28231563 8月 14 13:43 zabbix-2024-08-14.sql
[root@DNS zabbix]#
[root@DNS zabbix]# du -sh zabbix-2024-08-14.sql
27M zabbix-2024-08-14.sql
[root@DNS zabbix]#
バックアップをしたデータを、移設先サーバに転送します。
[root@DNS zabbix]# scp zabbix-2024-08-14.sql 192.168.56.102:/root/share
root@192.168.56.102's password:
zabbix-2024-08-14.sql 100% 27MB 56.7MB/s 00:00
[root@DNS zabbix]#
Zabbixサーバの設定ファイルもバックアップを転送します。
[root@DNS zabbix]# scp /etc/zabbix/zabbix_server.conf 192.168.56.102:/root/share
root@192.168.56.102's password:
zabbix_server.conf 100% 26KB 9.9MB/s 00:00
[root@DNS zabbix]#
移設先サーバに転送されたことを確認します。
[root@SambaServer share]# ls -l
合計 27600
-rw-r--r--. 1 root root 28231563 8月 14 13:51 zabbix-2024-08-14.sql
-rw-------. 1 root root 26119 8月 14 13:57 zabbix_server.conf
[root@SambaServer share]#
1. Zabbixのインストール
新サーバーでのZabbix 6.0 のインストールを行う
インストール手順は以下にも詳細をまとめています。
https://nonoco.believeriver.site/detail_mark/203/
以下、簡易的に手順をまとめます。
# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
# dnf clean all
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
これでインストールは完了。設定は後で行います。
2. mariadb 10.5のインストール
mariadb10.3をインストールしてから、mariadb10.5にバージョンアップします。
インストールおよびアップグレード方法の詳細はいかにまとめています。
https://nonoco.believeriver.site/detail_mark/204/
以下、簡易的にまとめます。
# dnf install mariadb-server --nobest
# dnf module list mariadb
# dnf module reset mariadb
# dnf module install mariadb:10.5
# dnf module reset mariadb
mariadbのバージョンが10.5になっていることを確認します。
[root@SambaServer share]# mysql -V
mysql Ver 15.1 Distrib 10.5.22-MariaDB, for Linux (x86_64) using EditLine wrapper
[root@SambaServer share]#
[root@SambaServer share]# systemctl status mariadb
● mariadb.service - MariaDB 10.5 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: d>
Active: inactive (dead)
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
[root@SambaServer share]#
3. データベースの復元
旧サーバから転送したバックアップデータを用いて、Zabbixサーバを復元します。
(参考)
Zabbixのデータベース復元方法(4.0 -> 6.0)の方法について詳細をいかにまとめています。
https://nonoco.believeriver.site/detail_mark/230/
※今回は、同じ6.0LTSバージョンでのデータ移行のため、データのフォーマット変換は不要です。
3-1. 新しいサーバでZabbixデータベースの初期化(データベースとアカウント作成)
3-1-1. データベースの設定
データをインポートするためには「innodb_strict_mode」をオフにします。
mariadbをスタートして、「innodb_strict_mode」がデフォルトではONであることを確認します。
[root@SambaServer share]# systemctl start mariadb
[root@SambaServer share]# systemctl status mariadb
● mariadb.service - MariaDB 10.5 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: d>
Active: active (running) since Wed 2024-08-14 17:16:25 JST; 16s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
[root@SambaServer share]#
[root@SambaServer share]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.22-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show variables like 'innodb_strict_mode';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| innodb_strict_mode | ON |
+--------------------+-------+
1 row in set (0.001 sec)
MariaDB [(none)]> quit;
Bye
[root@SambaServer share]#
以下の手順でOFFにします。
[root@SambaServer share]# vi /etc/my.cnf.d/mariadb-server.cnf
# This group is only read by MariaDB-10.5 servers.
# If you use the same .cnf file for MariaDB of different versions,
# use this group for options that older servers don't understand
[mariadb-10.5]
#2024.8.14
innodb_strict_mode=0
[root@SambaServer share]#
[root@SambaServer share]# systemctl restart mariadb
[root@SambaServer share]#
innodb_strict_modeが「OFF」になっているかを確認する。
[root@SambaServer share]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.22-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show variables like 'innodb_strict_mode';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| innodb_strict_mode | OFF |
+--------------------+-------+
1 row in set (0.001 sec)
MariaDB [(none)]> quit;
Bye
[root@SambaServer share]#
3-1-2. Zabbixデータベースとユーザアカウント作成
Zabbixデータベースをインポートするための環境を構築します。
以下の手順でZabbixデータベースとアカウントを作成します。
[root@SambaServer share]# mysql -u root -p
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
MariaDB [(none)]> create user zabbix@localhost identified by 'password';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
MariaDB [(none)]> quit;
3-2. データベースのインポート
旧サーバのバックアップデータを確認します。
[root@SambaServer share]# pwd
/root/share
[root@SambaServer share]#
[root@SambaServer share]# ll
合計 27600
-rw-r--r--. 1 root root 28231563 8月 14 13:51 zabbix-2024-08-14.sql
-rw-------. 1 root root 26119 8月 14 13:57 zabbix_server.conf
[root@SambaServer share]#
バックアップを新しいZabbixデータベースにインポートします。
[root@SambaServer share]# cat zabbix-2024-08-14.sql | mysql -u zabbix -p
Enter password:
[root@SambaServer share]#
※データベースが大きい場合、このインポートに非常に時間がかかるため、pvコマンドを使うと進捗状況が見える化できてよいです。
pvのインストール手順
wget https://www.ivarch.com/programs/sources/pv-1.8.5.tar.gz
tar xzf pv-1.8.5.tar.gz
cd pv-1.8.5
sh ./configure
make
sudo make install
pvを経由したインポート
pv zabbix.sql | mysql -u zabbix -p
56.6GB 1:07:32 [14.3MB/s] [========================>] 100%
4. Zabbixサーバの起動
zabbixサーバを起動して、環境が移行できていることを確認します。
4-1 zabbixの設定ファイルを修正
Zabbixデータベースへアクセスするための設定を記述します。
[root@SambaServer share]# vi /etc/zabbix/zabbix_server.conf
# DBPassword=
DBPassword=password
4-2. Zabbixサーバを起動
自動起動設定は適宜行います。
[root@SambaServer share]# systemctl enable zabbix-server zabbix-agent httpd php-fpm
Zabbixサーバを起動します。
[root@SambaServer share]# systemctl restart zabbix-server zabbix-agent httpd php-fpm
サービスが起動していることを確認します。
[root@SambaServer share]# systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor pres>
Active: active (running) since Wed 2024-08-14 17:43:20 JST; 1min 33s ago
Process: 255738 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=>
Main PID: 255755 (zabbix_server)
CGroup: /system.slice/zabbix-server.service
zabbixサーバにアクセスできること、およびデータが適切に移行反映ができるていることを確認します。
ブラウザで以下のようにアクセス(IPアドレスは適宜変更)
http://192.168.56.102/zabbix/
初期画面にアクセスし、Zabbixデータベースのパスワード設定、Zabbixサーバ名(任意)をすると設定完了します。
Zabbixへの初回ログインは、デフォルト設定の場合はアカウント「Admin」・パスワード「zabbix」にて可能です。旧サーバでバックアップを取った内容(MAPやグラフ設定、ログデータなど)が適切に移行できたかを確認します。
※アクセスできない場合は、firewalldの設定を見直してください
(httpを許可する、もしくはfirewalldの無効化する)
httpの許可設定例
[root@localhost ~]# sudo firewall-cmd --add-service=http --zone=public --permanent
success
[root@localhost ~]# sudo firewall-cmd --reload
success
[root@localhost ~]#