Zabbix 5.0升级到5.4

Zabbix 5.4 版本带有预定的 PDF 报告生成、强大的问题检测、高级数据聚合和其他重大改进。如果要从Zabbix 5.0升级到5.4的话,操作系统要CentOS 8或其他更高版本系统,Zabbix 5.4服务端不再支持CentOS 7,其他中间件支持。本文环境是CentOS 7 上使用Docker容器跑服务端和前端程序。

一、数据备份

# mysqldump -u xxx -p xxx -R -E single-transaction zabbix | gzip > /data/zabbixback/zabbix_$(date +%Y%m%d_%H%M%S).sql.gz
 
# 或者直接备份数据文件
# systemctl stop mysqld
# cp -r  /data/mysql /data/zabbixback
# systemctl start mysqld

二、服务升级

  • 镜像下载
# 该镜像属于官方镜像,支持哪些版本可通过下面参考链接
# docker pull zabbix/zabbix-server-mysql:centos-5.4.0
# docker pull zabbix/zabbix-web-nginx-mysql:centos-5.4.0
  • 映射目录
# 映射配置文件和日志目录,便于后期随时调整且可持久化保存,实际也可以不配置启动
# mkdir /data/zabbix/etc       # 宿主创建Zabbix配置目录
# mkdir /data/zabbix/log       # 宿主创建Zabbix日志目录
# chmod 777 /data/zabbix/log 
# cat /
DBHost=x.x.x.x
DBName=xxx
DBUser=xxx
DBPassword=xxx
DBPort=3306
ListenIP=0.0.0.0
ListenPort=10051
LogFileSize=100
LogSlowQueries=3000

# log 为映射目录
LogFile=/var/log/zabbix/zabbix_server.log
SNMPTrapperFile=/var/log/zabbix/snmptrap.log
PidFile=/tmp/zabbix_server.pid
SocketDir=/tmp/
Timeout=4
StartDiscoverers=10
StartLLDProcessors=10
CacheSize=128M
ValueCacheSize=64M
User=zabbix

# 告警脚本映射目录
AlertScriptsPath=/etc/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
SSHKeyLocation=/var/lib/zabbix/ssh_keys
SSLCertLocation=/var/lib/zabbix/ssl/certs/
SSLKeyLocation=/var/lib/zabbix/ssl/keys/
SSLCALocation=/var/lib/zabbix/ssl/ssl_ca/
LoadModulePath=/var/lib/zabbix/modules/
WebServiceURL=http://zabbix-web-service:10053/report
  • 镜像启动
# 启动 zabbix-server
# 即使配置文件以及指定了数据库配置,但是容器指定还是要指定
# 网络要设置为host,否则会无法连接上数据库
# docker run --name zabbix-server-mysql -t \
    -v /etc/localtime:/etc/localtime \
    -v /etc/timezone:/etc/timezone \
    -v /data/zabbix/etc:/etc/zabbix/ \
    -v /data/zabbix/log:/var/log/zabbix/ \
    --net=host \
    -e DB_SERVER_HOST="x.x.x.x" \
    -e MYSQL_DATABASE="xxx" \
    -e MYSQL_USER="xxx" \
    -e MYSQL_PASSWORD="xxx" \
    -e MYSQL_ROOT_PASSWORD="xxx" \
    -p 10051:10051 \
    -d zabbix/zabbix-server-mysql:centos-5.4.0

# 启动Zabbix 前端
# 容器默认端口是8080
docker run --name zabbix-web-nginx-mysql -t \
    -v /etc/localtime:/etc/localtime \
    -v /etc/timezone:/etc/timezone \
    --net=host \
    -e DB_SERVER_HOST="x.x.x.x" \
    -e MYSQL_DATABASE="xxx" \
    -e MYSQL_USER="xxx" \
    -e MYSQL_PASSWORD="xxx" \
    -e MYSQL_ROOT_PASSWORD="xxx" \
    -d zabbix/zabbix-web-nginx-mysql:centos-5.4.0

三、报错处理

  • 服务日志报错
# zabbix-server 服务日志报如下错
25431:20200911:232414.292 database is not upgraded to use double precision values
# 因为Zabbix 的历史数据和趋势数据的数值(浮点型)数据类型支持的精度更高,需要手动更新数据库补丁。
MySQL的补丁地址为:
https://git.zabbix.com/projects/ZBX/repos/zabbix/raw/database/mysql/double.sql 
# 上述补丁文件内容
ALTER TABLE trends
	MODIFY value_min DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
	MODIFY value_avg DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
	MODIFY value_max DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
ALTER TABLE history MODIFY value DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
  • Zabbix server is not running
# vim /etc/zabbix/web/zabbix.conf.php
...
$ZBX_SERVER      = 'x.x.x.x';    # 直接指定为zabbix server地址
...
  • Web界面时间戳问题,直接查看 Latest data
# vim /etc/php-fpm.d/zabbix.conf
...
php_value[date.timezone] = Asia/Shanghai   # 直接指定时区
...
  • 中文字体显示乱码
# 先把宿主机的字体拷贝进 docker 容器内
# docker cp  /usr/share/zabbix/assets/fonts/simkai.ttf  container_id:/usr/share/zabbix/assets/fonts/

# 进入容器配置

# vim /usr/share/zabbix/include/defines.inc.php
...
define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name
...

四、Python环境

        zabbix-server 里面是没有python环境的,如果告警脚本是使用python的话,那么告警无法使用,此时需要在容器内安装python环境,也可以直接使用如下镜像,基于官方镜像添加了python3.7环境。

# 详细介绍可参考dockerhub

# docker push skypipi/zabbix-server-mysql:centos-5.4.0

总结

        Zabbix 5.2 及以上服务版本不再支持CentOS 7系统,除zabbix-server外其他服务依旧支持CentOS 7,在CentOS 7操作系统中升级Zabbix 5.0以上版本服务,Docker容器是个较好的选择,可以在不重装系统不迁移情况下快速升级。



Referencen

Zabbix 4.2升级到4.4
Zabbix 4.4升级到5.0
Zabbix 5.4 功能介绍
Zabbix 容器官档介绍

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值