zabbix篇- zabbix4.4.1升级到zabbix5.0详解

1 环境描述

  • zabbix server:yum安装的4.4.1版本,172.16.212.77
  • zabbix web:docker安装的4.4.1版本,172.16.212.77
  • zabbix proxy:docker安装的4.4.1版本,172.16.212.88
  • zabbix agent:yum安装的4.4.1版本,所有节点上都安装
  • mysql:yum安装的5.7版本,172.16.212.213(server用)和172.16.212.88(proxy用)上
  • 所有节点都是Centos7
  • 拓扑图
    zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第1张图片

2 搭建4.4.1环境

2.1 172.16.212.213/88上安装配置数据库

#安装mysql5.7
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start  mysqld.service
#获取临时密码
grep "password" /var/log/mysqld.log
#登录数据库并修改root密码
mysql -uroot -p
#使用弱密码的话还要执行下面两句,用强密码的话不用执行
set global validate_password_policy=LOW;
set global validate_password_length=6;
#修改密码
ALTER USER 'root'@'%' IDENTIFIED BY 'new password';

#登录到数据库中创建zabbix数据库和授权用户
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@'%' identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@'%';

2.2 172.16.212.77上安装配置server、web和agent

#安装server和agent
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
yum clean all
yum install zabbix-server-mysql zabbix-agent

#初始化数据库
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -h 172.16.212.213 -uzabbix -p zabbix
#配置server
vim /etc/zabbix/zabbix_server.conf
DBHost=172.16.212.213
DBUser=zabbix
DBName=zabbix
DBPassword=zabbix

#配置agent
vim /etc/zabbix/zabbix_agent.conf
Server=172.16.212.77
ServerActive=172.16.212.77
Hostname=agent77

#启动服务
systemctl start zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent

#安装web
docker run --restart=always -d \
    --name zabbix-web-nginx-mysql-4.4.1 \
    --env ZBX_SERVER_HOST=127.0.0.1 \
    --env ZBX_SERVER_PORT=10051 \
    --env DB_SERVER_HOST=172.16.212.213 \
    --env DB_SERVER_PORT=3306 \
    --env MYSQL_USER=zabbix \
    --env MYSQL_PASSWORD="zabbix" \
    --env MYSQL_DATABASE="zabbix" \
    --env PHP_TZ="Asia/Shanghai" \
    --env ZBX_SERVER_NAME="Zabbix server" \
    --env ZBX_MEMORYLIMIT=256M \
    --net=host \
    -p 80:80/tcp \
    -v /data/docker/zabbix/DejaVuSans.ttf:/usr/share/zabbix/fonts/graphfont.ttf:ro \
    docker.io/zabbix/zabbix-web-nginx-mysql:alpine-4.4.1

此时已经可以访问 http://172.16.212.77,用户名Admin,密码zabbix
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第2张图片
改一下agent77的配置为:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第3张图片
等观察到实时数据再进行下一步~
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第4张图片

2.3 172.16.212.88上安装配置proxy和agent

#proxy
docker run --restart=always -d \
    --name zabbix-proxy-4.4.1 \
    -e DB_SERVER_HOST="127.0.0.1" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e ZBX_HOSTNAME="proxy" \
    -e ZBX_SERVER_HOST="172.16.212.77"  \
    -e ZBX_PROXYMODE=1 \
    -e ZBX_CACHESIZE=512M \
    -e PHP_TZ="Asia/Shanghai" \
    -p 10051:10051 \
    --net=host \
    -d zabbix/zabbix-proxy-mysql:alpine-4.4.1

#agent
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
yum clean all
yum install zabbix-agent -y

vim /etc/zabbix/zabbix_agent.conf
Server=172.16.212.88
ServerActive=172.16.212.88
Hostname=agent88

systemctl start zabbix-agent
systemctl enable zabbix-agent

2.4 172.16.212.213上安装配置agent

rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
yum clean all
yum install zabbix-agent -y

vim /etc/zabbix/zabbix_agent.conf
Server=172.16.212.88
ServerActive=172.16.212.88
Hostname=agent213

systemctl start zabbix-agent
systemctl enable zabbix-agent

2.5 页面配置自动注册主机

zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第5张图片

zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第6张图片
配置好了之后等了好一段时间ZBX才变成Available,一开始proxy一直报找不到agent88和agent213。后面应该是自动刷新之后就不报错了。
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第7张图片

3 升级流程

3.1 查询官方升级须知

  • 升级注意事项
  • 升级顺序

web——server——proxy——agent

3.2 升级web

docker stop zabbix-web-nginx-mysql-4.4.1

docker run --restart=always \
    --name zabbix-web-nginx-mysql-5.0.1 \
    --env ZBX_SERVER_HOST=127.0.0.1 \
    --env ZBX_SERVER_PORT=10051 \
    --env DB_SERVER_HOST=172.16.212.213 \
    --env DB_SERVER_PORT=3306 \
    --env MYSQL_USER=zabbix \
    --env MYSQL_PASSWORD="zabbix" \
    --env MYSQL_DATABASE="zabbix" \
    --env PHP_TZ="Asia/Shanghai" \
    --env ZBX_SERVER_NAME="server" \
    --env ZBX_MEMORYLIMIT=256M \
    --net=host \
    -p 80:80/tcp \
    -v /data/docker/zabbix/DejaVuSans.ttf:/usr/share/zabbix/fonts/graphfont.ttf:ro \
    -d docker.io/zabbix/zabbix-web-nginx-mysql:alpine-5.0.1

升级之后访问web页面的端口是8080,原来的80端口已经不监听了。
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第8张图片
由于server还没有升级到5.0,所以页面报错如下:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第9张图片

3.3 升级server

systemctl stop zabbix-server
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum makecache
yum upgrade zabbix-server -y
systemctl start zabbix-server

访问页面查看状态:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第10张图片
等了一会之后,agent都可用了,说明server5.0与proxy4.4和agent4.4兼容
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第11张图片
查看server的log:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第12张图片
查看proxy的log:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第13张图片
过了一会查看页面,已经没有连不上agent的告警了
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第14张图片
也可以拿到数据了,进行下一步吧!

3.4 升级proxy

docker stop zabbix-proxy-4.4.1

docker run --restart=always \
    --name zabbix-proxy-5.0.1 \
    -e DB_SERVER_HOST="127.0.0.1" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e ZBX_HOSTNAME="proxy" \
    -e ZBX_SERVER_HOST="172.16.212.77"  \
    -e ZBX_PROXYMODE=1 \
    -e ZBX_CACHESIZE=512M \
    -e PHP_TZ="Asia/Shanghai" \
    -p 10051:10051 \
    --net=host \
    -d zabbix/zabbix-proxy-mysql:alpine-5.0.1

这个过程对监控几乎0影响,数据监控图都没有出现断点,当然也可能是因为我只有这几个节点,比较轻量。此外,说明了proxy5.0可以兼容agent4.4

3.5 升级agent

systemctl stop zabbix-agent
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum makecache
yum upgrade zabbix-agent -y
systemctl start zabbix-agent

查看agent213日志:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第15张图片
查看proxy日志:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第16张图片
查看web,监控数据是有断点的:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第17张图片
agent77日志:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第18张图片
查看server日志:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第19张图片
查看web页面:
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第20张图片
升级结束~

4 遇到的问题

1)被proxy代理的agent端报了这个错
zabbix篇- zabbix4.4.1升级到zabbix5.0详解_第21张图片

agent关闭主动模式就不报错了

2)但是如果agent就用主动模式呢?

vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.212.88
StartAgents=1    #默认启动的zabbix_agentd pre-fork进程,如果为0的话表示停用被动模式
ServerActive=172.16.212.88

你可能感兴趣的:(自动化运维)