• Zabbix 5.0 升级到 6.0LTS


    Zabbix 6.0 LTS 已经发布了一段时间了,面对那么香的新鲜功能,回头看看自己 Zabbix 5.0 版本,果断升级进行尝鲜!

    一、环境介绍

    升级到 Zabbix 6.0 是有环境要求的,主要是 PHPMySQL 的版本,以下升级后的组件必备版本。

    升级前升级后
    系统CentOS 7.3CentOS 7.3
    PHP7.2.217.4.30(实际>=7.2.5)
    MySQL5.7.278.0.28
    Zabbix-server5.0.96.0.8

    二、升级PHP

    1、添加EPEL和REMI仓库

    # yum -y install epel-release
    # wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm --no-check-certificate
    # yum -y localinstall remi-release-7.rpm
    
    • 1
    • 2
    • 3

    2、安装PHP 7.4

    # yum -y install yum-utils
    # yum repolist all |grep php
    # yum-config-manager --enable remi-php74
    # yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis
    # rpm -qa|grep php
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、升级数据库

    1、数据导出导入

    1. 1 mydumper 导出

    mydumper 命令可以快速导出数据库文件,其他使用命令可参考最下面网址

    # mydumper   -u root  -p xxx -B zabbix --less-locking --threads 8 -F 256 --triggers --events  --routines -v 3 --outputdir /data/bak/mysql/0915 > /tmp/dumper.log 2>&1
    
    • 1

    1.2 修改字符集编码

    cd /data/bak/mysql/0915
    sed -i '/InnoDB/s/CHARSET=utf8/CHARSET=utf8mb4/g' ./*schema.sql
    sed -i '/InnoDB/s/COLLATE=utf8_bin/COLLATE=utf8mb4_bin/g' ./*schema.sql
    ---
    sed -i 's/CHARACTER SET utf8/CHARACTER SET utf8mb4/g' zabbix-schema-create.sql
    sed -i 's/utf8_bin/utf8mb4_bin/g' zabbix-schema-create.sql
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.3 myloader 导入

    # myloader   -h 10.10.137.39 -u test -p 123456  --threads 24 -q  30000 -v 3  --directory  /data/bak/mysql/0915 > /tmp/loader.log 2>&1
    
    • 1

    1.4 创建Zabbix用户

    MySQL8 用户密码加密方式跟之前不一样,所以需要额外设置,否则会连接失败。按照如下设置即可。

    > create user 'zabbix'@'%' identified by 'xxx'; 
    > ALTER USER 'zabbix'@'% IDENTIFIED WITH mysql_native_password BY 'xxx';
    > flush privileges;
    
    • 1
    • 2
    • 3

    2、主从同步

    # 获取备份时的binlog位点信息
    # /data/bak/mysql/0915
    # cat metadata 
    Started dump at: 2022-09-19 17:29:54
    SHOW MASTER STATUS:
    	Log: mysql-bin.000035
    	Pos: 772796394
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    master 创建主从同步专用账号

    > GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.0.1.7' identified by 'repl@xxx';
    > flush privileges;
    
    • 1
    • 2

    slave上开启主从同步

    > change master to master_host='10.10.69.60',master_port=3306,master_user='repl',master_password='repl@YfeUOI0bL',master_log_file='mysql-bin.000035',master_log_pos=772796394; 
    > start slave;
    
    • 1
    • 2

    四、升级Zabbix

    1、配置备份

    # cp -r /usr/share/zabbix  /usr/share/zabbix_20220921
    # cp -r /etc/zabbix  /etc/zabbix/web_20220921
    
    • 1
    • 2

    2、编译安装

    # yum install mysql-devel unixODBC-devel net-snmp-devel libssh2-devel OpenIPMI-devel libevent-devel curl curl-devel -y
    
    # wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.8.tar.gz 
    # tar xf zabbix-6.0.8.tar.gz && cd zabbix-6.0.8
    # ./configure --prefix=/usr/local/zabbix-server --enable-server --enable-java --enable-ipv6 --with-mysql --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-openssl --with-libcurl --with-libxml2
    # make && make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、PHP控制台文件

    正常情况下,源码安装后是没有 webzabbix 目录的,所以我们是找一台机器安装同版本RPM 的包来获取到这两个文件夹。

    # yum zabbix-web-mysql zabbix-nginx-conf -y
    
    • 1

    4、修改数据库配置

    # vim /etc/zabbix/web/zabbix.conf.php
    ......
    
    # vim /etc/zabbix/zabbix_server.conf
    ......
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5、启动脚本

    启动可以直接使用命令行启动也可以加入做成服务启动,这样便于管理。

    # /usr/local/zabbix-server/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
    
    • 1
    # cat /usr/lib/systemd/system/zabbix-server.service
    [Unit]
    Description=Zabbix Server
    After=syslog.target
    After=network.target
    After=mysql.service
    After=mysqld.service
    After=mariadb.service
    After=postgresql.service
    After=pgbouncer.service
    After=postgresql-9.4.service
    After=postgresql-9.5.service
    After=postgresql-9.6.service
    After=postgresql-10.service
    After=postgresql-11.service
    After=postgresql-12.service
    
    [Service]
    Environment="CONFFILE=/etc/zabbix/zabbix_server.conf"
    EnvironmentFile=-/etc/sysconfig/zabbix-server
    Type=forking
    Restart=on-failure
    PIDFile=/run/zabbix/zabbix_server.pid
    KillMode=control-group
    ExecStart=/usr/local/zabbix-server/sbin/zabbix_server -c $CONFFILE
    ExecStop=/bin/kill -SIGTERM $MAINPID
    RestartSec=10s
    TimeoutSec=0
    
    [Install]
    WantedBy=multi-user.target
    
    # systemctl daemon-reload
    # systemctl start zabbix-server
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    Reference:

    https://www.zabbix.com/documentation/6.2/en/manual/installation/upgrade/packages/rhel_centos
    https://blog.csdn.net/qq_25854057/article/details/103730083

  • 相关阅读:
    ptp 时钟同步
    掌握Go的运行时:从编译到执行
    Apache commons exec框架的简介说明
    1-1 顺序表操作集
    变速外挂案例及原理分析
    猿创征文|【C++游戏引擎Easy2D】炫酷动画来这学,位移动画构造函数让节点执行动画
    leetCode 面试题 02.04. 分割链表
    transition-group过渡动画
    怎么用postman连接websocket
    WPF 通过依赖属性Value更新长历史图表
  • 原文地址:https://blog.csdn.net/qq_25854057/article/details/126935860