zabbix資料備份與版本公升級

2022-05-18 16:03:38 字數 4193 閱讀 9106

zabbix資料庫備份

[root@zabbix-server zabbix_agentd.d]# cat /usr/sbin/zabbix_mysqldump.sh 

#!/bin/bash

#author: itnihao

#mail: [email protected]

#license: apache 2.0

#from :

#usage: chmod 700 $/zabbix_mysqldump.sh

#crontab: 0 3 * * * $/zabbix_mysqldump.sh mysqldump

red='\e[0;31m' # 紅色

red='\e[1;31m'

green='\e[0;32m' # 綠色

green='\e[1;32m'

blue='\e[0;34m' # 藍色

blue='\e[1;34m'

purple='\e[0;35m' # 紫色

purple='\e[1;35m'

nc='\e[0m' # 沒有顏色

source /etc/bashrc

source /etc/profile

mysql_user=zabbix

mysql_password=zabbix

mysql_host=localhost

mysql_port=3306

mysql_dump_path=/mysql_backup

mysql_bin_path=/usr/bin/mysql

mysql_dump_bin_path=/usr/bin/mysqldump

mysql_database_name=zabbix

date=$(date '+%y-%m-%d')

mysqldump () ] || mkdir $

cd $

[ -d logs ] || mkdir logs

[ -d $ ] || mkdir $

cd $

table_name_all=$($ -u$ -p$ -h$ $ -e \

"show tables"|egrep -v "(tables_in_zabbix|history*|trends*|acknowledges|alerts|auditlog|events|service_alarms)")

for table_name in $

do$ --opt -u$ -p$ -p$ -h$ \

$ $ >$.sql

sleep 0.01

done

[ "$?" == 0 ] && echo "$: backup zabbix succeed" >> $/logs/zabbixmysqldump.log

[ "$?" != 0 ] && echo "$: backup zabbix not succeed" >> $/logs/zabbixmysqldump.log

cd $/

[ "$?" == 0 ] && rm -rf $(date +%y-%m-%d --date='5 days ago')

exit 0

}mysqlimport ()

date=$(ls $ |egrep "\b^[0-9]+-[0-9]+-[0-9]+$\b")

echo -e "$$"

echo -e "$what date do you want to import,please input date:$"

read select_date

if [ -d "$" ];then

echo -e "you select is $$$, do you want to contine,if,input $(yes|y|y)$,\

else then exit"

read input

[[ 'yes|y|y' =~ "$" ]]

status="$?"

if [ "$" == "0" ];then

echo "now import sql....... please wait......."

else

exit 1

ficd $

for per_tabel_sql in $(ls *.sql)

do$ -u$ -p$ -h$ $ < $

echo -e "import $ $........................$"

done

echo "finish import sql,please check zabbix database"

else

echo "don't exist $ dir"

fi}case "$1" in

mysqldump|mysqldump)

mysqldump

;;mysqlimport|mysqlimport)

mysqlimport

;;*) echo "usage: $0 "

;;esac

backup zabbix mysql database

[root@zabbix-server zabbix_agentd.d]# chmod 700 /usr/sbin/zabbix_mysqldump.sh

[root@zabbix-server zabbix_agentd.d]# crontab -e

0 3 * * * /usr/sbin/zabbix_mysqldump.sh mysqldump

[root@zabbix-server zabbix_agentd.d]# bash /usr/sbin/zabbix_mysqldump.sh mysqldump

#備份資料

[root@zabbix-server zabbix_agentd.d]# bash /usr/sbin/zabbix_mysqldump.sh mysqlimport

#恢復資料

zabbix公升級

​ 公升級zabbix分為兩種情況,一是同版本公升級、不涉及資料庫的公升級更新;而是跨版本公升級,涉及資料庫表結構的更改。

同版本公升級的方法

shell# mkdir -p /data/zabbix/backup

shell# cp -r /etc/zabbix /data/zabbix/backup/zabbix_conf

shell# cp -r /usr/share/zabbix /data/zabbix/backup/zabbix_web

shell# cp -r /usr/sbin/zabbix_server /data/zabbix/backup/zabbix_server

shell# cp -r /usr/sbin/zabbix_proxy /data/zabbix/backup/zabbix_proxy

shell# cp -r /usr/share/doc/zabbix-* /data/zabbix-backup/

(2)備份資料庫(使用上述指令碼進行備份)

shell# rpm -uvh 

shell# systemctl stop zabbix-server #停止zabbix-server[注釋對嗎?]

shell# systemctl stop zabbix-proxy #停止zabbix-proxy[注釋對嗎?]

shell# yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get -y

shell# systemctl start zabbix-server #開啟zabbix-server

shell# systemctl start zabbix-proxy #開啟zabbix-proxy

shell# ps -ef |grep zabbix #檢視程序

shell# tail -f /var/log/zabbix/zabbix_server.log #檢視日誌

跨版本公升級的方法

跨版本公升級與同版本公升級一致,由於之前版本有監控資料,因此在執行過程中sql語句更改的速度會比較慢,具體視資料情況定。

注意:在公升級過程中切記不可強行中斷zabbix_server 程序,否則再次啟動程序,可能會造成表結構更改失敗的後果,從而導致公升級失敗。

zabbix安裝(7)公升級版本過程

zabbix開 發者很活躍,版本變更的也比較快,我當前版本是2.2,但是發現官方2.4版本的文件已經悄然上線,不過原始碼還沒放出來。後續也要跟著公升級,zabbix 2.0公升2.2與2.2公升2.4的方法沒一樣。如果你從zabbix 1.6公升級到1.8或者zabbix 1.8公升級到zbbix ...

zabbix2 4版本公升級到3 2版本

zabbix3.2版本原始碼安裝完畢,目前將2.4版本公升級到3.2版本操作,只需要將2.4的資料庫備份匯出,然後將其匯入3.2版本的資料庫即可。1 停止zabbix相關服務 service zabbix server stop service zabbix agentd stop service ...

關於版本強制公升級與非強制公升級

在專案實際開發工程中,開發階段需要不斷的做內部更新,修復測試出現的問題 專案成功上架後類似開發階段uat環境下的版本迭代問題 內部版本更新使用的方法 void requestversion 內部版本 build nsstring currentversion nsbundle mainbundle ...