zabbix 를 오래 운영하면 zabbix DB가 무럭무럭 자라서 용량이 상당히 커지고 속도도 느려진다.
수집한 데이터는 오래될수록 필요가 없으므로 이 데이터는 제외하고, 'zabbix 설정값만' 뽑아서 zabbix DB를 새로 구축하려고 한다.
[ 조건 ]
- 수집한 데이터는 버린다.
- 설정값(호스트, 템블릿, ...)만 받는다.
- zabbix DB를 새롭게 시작한다.
1. 설정값만 백업하기
Zabbiz 2.0, 2.2, 2.4를 지원하는 zabbix-mysql-dump 라는 간단한 스크립트가 있다.
https://github.com/maxhq/zabbix-backup/wiki 에서 셀스크립트를 다운 받는다.
스크립트에서 zabbix DB 접속 정보와 mysqldump 경로(스크립트내에서는 /usr/bin/mysqldump로 되어 있음)를 확인한다.
DBHOST="127.0.0.1"
DBNAME="zabbix"
DBUSER="..."
DBPASS="..."
스크립트를 실행하면 현재디렉토리 dump 파일이 생겼을 것이다.
# sh zabbix-mysql-dump
# ls
zabbix_localhost_20150526-1347.sql.gz
스크립트로 dump 받은 것 외에 trigger에 의해 발생한 event정보를 옮기고 싶다면, zabbix 데이터 중에 2가지가 추가로 필요하다.
1) trigger에 의해 발생한 event를 담고 있는 'events' 테이블 데이터
2) 각 event에 대해 코멘트가 담긴 'acknowledges' 테이블 데이터
[ zabbix : trigger에 의해 발생한 event 정보 ]
# mysqldump --opt --single-transaction --skip-lock-tables --extended-insert=FALSE -u zabbix -p zabbix \
acknowledges events > zabbix_acknowledges_events.sql
2. zabbix DB를 새롭게 구축하기
1) zabbix server 데몬을 내린다.
2) MySQL 서버를 내린다.
3) 기존 zabbix innodb파일을 다른 이름으로 임시 백업해둔다.
zabbix 스키마( MySQL DATA DIR/zabbix/) 는 그대로 둔다.
4) MySQL 서버를 실행한다.
5) 조금 전에 dump받은 셋팅값을 넣어준다.
gunzip zabbix_localhost_20150526-1347.sql
mysql -u zabbix -p zabbix < zabbix_localhost_20150526-1347.sql
기존에 있던 zabbix 테이블을 drop하고 -> 새로 create -> 셋팅값 insert
6) 별도로 백업받은 acknowledges 테이블의 데이터를 insert한다.
acknowledges 테이블의 데이터를 기준으로 해당된 event만 뽑아 insert한다.
7) zabbix server를 올린다.
'시스템이야기' 카테고리의 다른 글
logstash에서 로그를 파일로 저장할 때 날짜별로 저장하기 (0) | 2015.12.02 |
---|---|
FreeBSD에서 Leap Second(윤초)는? 문제 없다. (0) | 2015.06.29 |
텔레그램(Telegram)으로 서버 모니터링하기 (16) | 2014.10.15 |
OpenSSL 1.0.1 Heartbleed 취약점 (2) | 2014.04.09 |
root권한 획득하는 리눅스 커널 취약점 (2) | 2013.05.20 |