基于docker升级迁移zabbix2.2.10至zabbix3.4,ansible安装客户端

1.备份原zabbix相关

1.1 备份zabbix mysql

mysqldump -u -p zabbix > zabbix.sql

1.2备份zabbix-server项目文件(基于项目包)

cp /usr/local/zabbix /backup/zabbix.bak

2.新环境安装docker-ce

卸载版本的docker
sudo apt-get remove docker docker-engine docker.io
安装可选内核模块
sudo apt-get update
sudo apt-get install  linux-image-extra-(uname -r)  linux-image-extra-virtual
安装Docker CE
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 官方源
#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -   

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \(lsb_release -cs) \
stable"

# 官方源
#  sudo add-apt-repository \
# "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
# $(lsb_release -cs) \
# stable

更新 apt 软件包缓存,并安装 docker-ce
sudo apt-get update
sudo apt-get install docker-ce

启动docker CE
sudo systemctl enable docker
sudo systemctl start docker

测试安装是否正确
sudo docker run hello-world

镜像加速
由于国外的镜像有时候网络访问过慢,需要使用国内的镜像加速
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存
在请新建该文件)
{
"registry-mirrors": [
    "https://registry.docker-cn.com"
    ]
}

3.拉取镜像

备注:mysql 安装(mysql 还是不用docker了,不放心,应用可以丢,数据不能丢)。

docker pull zabbix/zabbix-server-mysql:ubuntu-3.4-latest
docker pull zabbix/zabbix-web-nginx-mysql:ubuntu-3.4-latest

4.启动镜像zabbix-server container for mysqldb

sudo docker run -p 10051:10051 --name zabbix-server -h zabbix-server -e DB_SERVER_HOST="xxxxx" -e MYSQL_USER="xxxxx" -e MYSQL_PASSWORD="xxxxx" -d zabbix/zabbix-server-mysql:ubuntu-3.4-latest

5.启动镜像zabbix-web container for mysqldb

sudo docker run -p 80:80 --name zabbix-web -h zabbix-web --link zabbix-server:zabbix-server -e DB_SERVER_HOST="xxxxx" -e MYSQL_USER="xxxxx" -e MYSQL_PASSWORD="xxxxxx" -e ZBX_SERVER_HOST="zabix-server" -e PHP_TZ="Asia/Shanghai" -d zabbix/zabbix-web-nginx-mysql:ubuntu-3.4-latest

6.浏览器访问

7.基于ansible迁移zabbix客户端

7.1 zabbix-agent目录结构

 tree init_zabbix_agent
init_zabbix_agent
├── defaults
│   └── main.yml
├── files
│   ├── zabbix-agent_3.4.7-1+trusty_amd64.deb
│   └── zabbix_agentd.conf
├── handlers
│   └── main.yml
├── meta
├── tasks
│   └── main.yml
├── templates
│   └── zabbix_agentd.conf.j2
└── vars

7.2 ansible tasks main

 cat init_zabbix_agent/tasks/main.yml 
---
  - name: copy zabbix_agent to server
    copy: src={{ zabbix_agent_file }} dest=/srv
  - name: install depend on the package
    apt: name={{ item }} state=latest update_cache=yes
    with_items:
        - libcurl3     
  - name: install zabbix-agent 
    apt: deb=/srv/{{ zabbix_agent_file }} 
  - name: copy zabbix_agent.conf to server
    template:  src=zabbix_agentd.conf.j2  dest={{ zabbix_conf_file_path }}/zabbix_agentd.conf mode=0755 owner=root group=root
    notify:
    - Restart zabbix agent
  - name: start zabbix service
    service: name=zabbix-agent state=started enabled=yes    

7.3 init_zabbix_agent/defaults/main.yml

 cat init_zabbix_agent/defaults/main.yml 
---
zabbix_agent_file: "zabbix-agent_3.4.7-1+trusty_amd64.deb"
zabbix_agent_hostname: "{{ ansible_hostname | d() }}"
zabbix_agent_server_host: "xxxxx"
zabbix_conf_file_path: "/etc/zabbix/" 

7.4 init_zabbix_agent/templates/zabbix_agentd.conf.j2

cat init_zabbix_agent/templates/zabbix_agentd.conf.j2 

Server={{ zabbix_agent_server_host }}
Hostname={{ zabbix_agent_hostname }}

7.5 入口文件

cat zabbix_agent.yml

---
- hosts: honor
#  gather_facts: false
  remote_user: root
  sudo: yes
  roles:
  -  init_zabbix_agent 

7.6 推掉老的zabbix-agent进程

zabbix_kill.sh 
#!/bin/bash
ps -ef | grep -v grep |grep -w 'zabbix_agentd' |awk '{print $2}' |xargs kill

杀掉老的zabbix-agent进程
ansible name -m copy -a "src=zabbix_kill.sh  dest=/srv/zabbix_kill.sh" -sudo
ansible name -m shell -a "bash /srv/zabbix_kill.sh" -sudo

7.7 推送zabbix-agent安装启动

ansible-playbook  -i hosts     zabbix_agent.yml -sudo

8. 结合zabbix自动发现自动注册完成监控

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: