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自动发现自动注册完成监控
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫