커피닉스, 시스템 엔지니어의 쉼터
  zabbix 셋팅값만 백업 후 DB 새로 구축하기 작성일 : 2015/06/17 18:33
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 13575
     
    제  목 : zabbix 셋팅값만 백업 후 DB 새로 구축하기
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2015.5.26(화)
    정리일 : 2015.6.17(수)

    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를 올린다.


    커피닉스, 시스템 엔지니어의 쉼터 / URL : http://coffeenix.net/board_view.php?bd_code=1775