
Zabbix를 다른 서버로 옮기려고 maxhq/zabbix-backup 스크립트(0.9.3)로 설정 DB를 백업하고, 새 서버의 zabbix DB를 다시 만든 뒤 복원했습니다. 이 스크립트는 이력(history, trends 등) 같은 큰 테이블은 구조만 백업하고, 설정 데이터만 옮깁니다.
1. 환경
| 항목 | 내용 |
| DB | MySQL 5.7.33 (zabbix DB) |
| 백업 도구 | maxhq/zabbix-backup 0.9.3 (zabbix-dump) |
| 백업 범위 | 설정 데이터 (history, trends, events 등 큰 테이블은 스키마만) |
주의: 복원 과정에서 새 서버의 기존 zabbix DB를 삭제(DROP)합니다. 새 서버에 남겨야 할 데이터가 있다면 먼저 백업해 두세요.
2. 백업 (기존 서버)
2.1 스크립트 준비
아래 저장소에서 소스를 내려받아 백업할 Zabbix 서버로 옮긴 뒤 압축을 풉니다.
GitHub - maxhq/zabbix-backup: Backup script for Zabbix configuration data (MySQL/PostgreSQL)
Backup script for Zabbix configuration data (MySQL/PostgreSQL) - GitHub - maxhq/zabbix-backup: Backup script for Zabbix configuration data (MySQL/PostgreSQL)
github.com
[root@zabbix ~]# tar -xvf zabbix-backup-0.9.3.tar.gz
zabbix-backup-0.9.3/
zabbix-backup-0.9.3/.gitignore
zabbix-backup-0.9.3/LICENSE.txt
zabbix-backup-0.9.3/README.md
zabbix-backup-0.9.3/RELEASE.md
zabbix-backup-0.9.3/get-table-list.pl
zabbix-backup-0.9.3/zabbix-dump
[root@zabbix ~]# ls
zabbix-backup-0.9.3 zabbix-backup-0.9.3.tar.gz
[root@zabbix ~]#
2.2 백업 실행
zabbix-dump를 실행하면 zabbix_server.conf에서 DB 정보를 읽어 백업합니다. 끝나면 .sql.gz 파일이 만들어집니다.
[root@zabbix ~]# ./zabbix-backup-0.9.3/zabbix-dump
Reading database options from /etc/zabbix/zabbix_server.conf...
Configuration:
- type: mysql
- socket: /var/lib/mysql/mysql.sock
- database: zabbix
- user: zabbix
- output: /root
Fetching list of existing tables...
Starting table backups...
For the following large tables only the schema (without data) was stored:
- acknowledges
- alerts
- auditlog
- auditlog_details
- event_recovery
- events
- event_suppress
- event_tag
- history
- history_log
- history_str
- history_text
- history_uint
- item_rtdata
- problem
- problem_tag
- task
- task_acknowledge
- task_check_now
- task_close_problem
- task_remote_command
- task_remote_command_result
- trends
- trends_uint
Compressing backup file...
Backup Completed
/root/zabbix_cfg_zabbix.localdomain_20221007-0216_db-mysql-4.4.2.sql.gz
[root@zabbix ~]# ls
zabbix-backup-0.9.3 zabbix_cfg_zabbix.localdomain_20221007-0216_db-mysql-4.4.2.sql.gz
zabbix-backup-0.9.3.tar.gz
[root@zabbix ~]#
3. 복원 (새 서버)
3.1 백업 파일 압축 해제
만들어진 .sql.gz 파일을 새 Zabbix 서버로 옮기고 gunzip으로 압축을 풉니다.
[root@zabbix backup]# ls
zabbix_cfg_zabbix.localdomain_20221007-0145_db-mysql-4.4.2.sql.gz
[root@zabbix backup]# gunzip zabbix_cfg_zabbix.localdomain_20221007-0145_db-mysql-4.4.2.sql.gz
[root@zabbix backup]# ls
zabbix_cfg_zabbix.localdomain_20221007-0145_db-mysql-4.4.2.sql
3.2 Zabbix 서비스 중지
[root@zabbix ~]# systemctl stop zabbix-server zabbix-agent httpd
3.3 zabbix DB 다시 만들기
MySQL에 접속해 기존 zabbix DB를 삭제하고 새로 만듭니다.
[root@zabbix ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 356
Server version: 5.7.33 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| zabbix |
+--------------------+
5 rows in set (0.00 sec)
mysql> drop database zabbix;
Query OK, 149 rows affected (0.20 sec)
mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> exit
Bye
3.4 백업 데이터 넣기
[root@zabbix ~]# mysql -u root -p zabbix < /backup/zabbix_cfg_zabbix.localdomain_20221007-0145_db-mysql-4.4.2.sql Enter password:
[root@zabbix ~]#
3.5 서비스 다시 시작
중지했던 zabbix-server, zabbix-agent, httpd를 다시 시작하면 설정값이 새 서버로 옮겨집니다.
systemctl start zabbix-server zabbix-agent httpd
4. 정리
- zabbix-backup 스크립트는 설정 데이터만 빠르게 백업해 서버 이전에 쓰기 좋습니다.
- 이력 데이터(history, trends 등)는 스키마만 백업되므로 새 서버에서는 수집 이력이 새로 쌓입니다.
- 복원 전에는 Zabbix 서비스를 멈추고, 대상 DB를 새로 만든 뒤 넣어야 합니다.
728x90
'Server & OS > Monitoring' 카테고리의 다른 글
| [ZABBIX] "More than 75% used in the configuration cache" 알림 해결 (0) | 2022.11.05 |
|---|---|
| [ZABBIX] Linux에 Zabbix Agent 5.4 설치 (0) | 2022.10.08 |
| [Zabbix] 그래프 한글 폰트 깨짐 해결 (0) | 2021.07.30 |
| [Zabbix] CentOS 7에 Zabbix 4.4 설치 (0) | 2021.02.18 |
| [Zabbix] 웹 시나리오 장애를 Slack으로 알림 받기 (0) | 2021.02.15 |
서울
--:--:--
-전체 글
-카테고리
오늘 방문