Zabbix篇-Zabbix集羣從4.0.3升級到4.4.1

1 調研

1)Zabbix server 和proxies必須屬於同一個主版本;
2)Zabbix server and proxies 建議在升級前先停止運行;
3)舊版本的 proxies 不再向新版本的servers報告,即不兼容;
4)新版本的agents 與舊版本的Zabbix server不再兼容;
5)新版本的zabbix server 和proxy可以兼容舊版本的zabbix-agent;

2 操作

2.1 準備工作

  • 全量備份數據庫,參照 https://blog.csdn.net/qq_35550345/article/details/103588917
  • 停止zabbix-server和zabbix-proxy
  • 增量備份數據庫,參照 https://blog.csdn.net/qq_35550345/article/details/103588917
  • 備份配置文件
  • 準備好yum源,如果可以通公網則網絡正常即可,如果不可以通公網則須自己創建內網repo,自行百度。

2.2 升級

推薦的升級順序:zabbix-server —— zabbix-proxy —— zabbix-agent

  • zabbix-server

直接yum安裝升級即可!

  • zabbix web
#停止老的版本
docker stop zabbix-web-nginx-mysql-4.0.3
#運行新的版本
sudo 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=10.0.0.22 \ 
            --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
#查看日誌
docker logs --tail=40 -f zabbix-web-nginx-mysql:alpine-4.4.1   
  • zabbix-proxy
#停止老的版本
docker stop zabbix-proxy-4.4.1
#運行新的版本
sudo docker run --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="zabbix-proxy" \ 
           -e ZBX_SERVER_HOST="10.0.0.22" \ 
           -e ZBX_PROXYMODE=1 \ 
           -e ZBX_CACHESIZE=512M \ 
        -e TZ="Asia/Shanghai" \ 
           --net=host \ 
           -d zabbix/zabbix-proxy-mysql:alpine-4.4.1 
#查看日誌     
docker logs --tail=40 -f zabbix-proxy-mysql:alpine-4.4.1 
  • zabbix-agent

使用ansible劇本批量升級

cat /etc/ansible/update_zabbix_agent.yml 
---
- name: "update zabbix-agent"
  hosts: "{{ host_name }}"
  become: True
  roles:
     - "update_zabbix_agent"
cat /etc/ansible/roles/update_zabbix_agent/tasks/main.yml
---
- name: "clean all"
  shell: yum clean all

- name: "makecache"
  shell: yum makecache

- name: "update zabbix-agent"
  shell: yum -y update zabbix-agent

- name: copy zabbix-agent.conf
  template:
          src: zabbix_agentd.conf
          dest: /etc/zabbix/zabbix_agentd.conf
  
- name: "restart zabbix-agent"
  systemd:
          name: zabbix-agent
          state: restarted
          enabled: yes

- systemd:
          name: zabbix-agent
          state: started

- name: "check the version of zabbix-agent"
         shell: zabbix_agentd -V
         register: version

- debug:
         var: version
cat /etc/ansible/roles/update_zabbix_agent/templates/zabbix_agentd.conf | grep -v "^#"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server={{ zabbix_address }}
ServerActive={{ zabbix_address }}
Hostname={{ hostname_replaced }}
Include=/etc/zabbix/zabbix_agentd.d/*.conf

ansible-playbook執行劇本

ansible-playbook  /etc/ansible/update_zabbix_agent.yml \
-i /etc/ansible/inventory/test \
-e "host_name=agent01" \
-e "zabbix_address=10.0.0.22" \
-e "hostnameAlias=test-agent"
cat /etc/ansible/inventory/test 
[agent]
10.0.0.11
10.0.0.12
10.0.0.13
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章