• 追加された行はこの色です。
  • 削除された行はこの色です。
[[監視システム(NMS)]]
目次~
#contents
**概要 [#v22efdbf]
ZabbixのDB領域を冗長化されていないSSDに変更したことに伴い、保険として定期的にDBバックアップを行うスクリプトを作成。~
バックアップの際にはZabbix Serverを停止してDBのダンプを取得。ダンプ生成後にZabbix Serverを起動し、ダンプをgzip圧縮する流れとなる。~
スクリプトの起動はcronによる定期実行を前提としている。~

**パラメータ [#t089a1d5]
|ROTATE|保存件数。ファイル名にローテーション番号を付与し、指定数のバックアップファイルを保管する|
|OUTPATH|バックアップの生成先ディレクトリ|
|MYSQLDUMP|mysqldumpコマンドのフルパス|
|LOG|バックアップ処理のログ出力先。月次でログファイル名を変更するが、過去ログを削除する機能はない|
|DBUSER|DBのログインユーザ|
|DBPASSWD|DBのログインユーザのパスワード|
|DBNAME|バックアップ対象とするDB名|

**ソース [#w4abd76a]
 #!/bin/sh
 # -------------------------------
 #  ZABBIX Backup Database Script
 # -------------------------------
 # Version : 1.0
 # date    :2016/07/09
 
 export LANG=C
 export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
 
 ##
 ##  Set
 ##
 
 ## General
 
 ROTATE="10"
 
 ## Path
 
 OUTPATH="/home/work/db_backup"
 OUTFILE="zabbix_db.dump"
 MYSQLDUMP="/usr/bin/mysqldump"
 LOG="/var/log/zabbix/auto-backup."`date +%Y%m`".log"
 
 ## DB Setting
 
 DBUSER="zabbix"
 DBPASSWD="zabbix"
 DBNAME="zabbix"
 
 ## Backup rotate
 
 cd $OUTPATH
 test -f $OUTFILE.gz.$ROTATE && rm -rf $OUTFILE.gz.$ROTATE 
 while [ $ROTATE -ge 1 ];
 do
  i=$((ROTATE-1))
  if [ -f $OUTFILE.gz.$i ]; then 
   mv $OUTFILE.gz.$i $OUTFILE.gz.$ROTATE
  fi
   ROTATE=$i
 done
 
 test -f $OUTFILE.gz && mv $OUTFILE.gz $OUTFILE.gz.1
 
 ## Execute
 
 echo `date +%Y/%m/%d\ %H:%M:%S`" DB Backup Starting" >> $LOG
 /etc/init.d/zabbix-server stop 2>&1 >> $LOG  
 
 echo `date +%Y/%m/%d\ %H:%M:%S`" create database dump" >> $LOG
 
 $MYSQLDUMP -u $DBUSER --password=$DBPASSWD $DBNAME > $OUTFILE 2>> $LOG
 
 echo `date +%Y/%m/%d\ %H:%M:%S`" database dump complete" >> $LOG
 
 /etc/init.d/zabbix-server start 2>&1 >> $LOG  
 
 echo `date +%Y/%m/%d\ %H:%M:%S`" dump file compress" >> $LOG
 gzip $OUTFILE
 echo `date +%Y/%m/%d\ %H:%M:%S`" DB Backup End" >> $LOG
 
 # EOF

**処理速度 [#s5327296]
当方環境における動作試験結果。~

-マシンスペック
|サーバ|仮想マシン(VMware vSphere6)|
|CPU|AMD Opteron(tm) Processor 3280 / 2.4GHz / 4core |
|メモリ|8GB|
|HDD(バックアップ元)|RDM接続SSD 128GB(Trancend SSD370S)|
|HDD(バックアップ先)|VMDKファイル(RAID10 / SATA HDD 7200rpm 750GB×6)|

-バックアップ規模
|バックアップ元DB|25GB|
|ダンプファイルサイズ|11.8GB|
|圧縮後サイズ|1.9GB|

-処理時間
|ダンプ生成時間|9分10秒|
|圧縮時間|16分30秒|


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS