使用Docker搭建Zabbix
更换yum源
##安装wget
yum install -y wget
##进入yum仓库
cd /etc/yum.repo.d/
##备份原有yum源
mv /etc/yum.repo.d/Centos-7.repo /etc/yum.repo.d/Centos-7.repo.bak
##下载新的yum源
wget http://mirrors.aliyun.com/repo/Centos-7.repo
##清除缓存
yum clean all
##生成新的缓存
yum makecache
##安装EPEL
yum install -y epel-release
##再次运行yum clean all清除缓存
yum clean all
yum makecache
##更新yum
yum -y update
安装Docker
采用Centos 7 yum安装
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
##安装校验
root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Experimental: false
测试准备
需要的镜像
docker pull zabbix/zabbix-web-nginx-mysql:5.0-centos-latest
docker pull zabbix/zabbix-server-mysql:5.0-centos-latest
docker pull zabbix/zabbix-proxy-mysql:5.0-centos-latest
docker pull zabbix/zabbix-snmptraps:5.0-centos-latest
docker pull zabbix/zabbix-agent:5.0-centos-latest
docker pull mysql:5.7
搭建zabbix
##镜像拉取结束后,查看镜像列表
docker images
##运行Demo
# 运行本地数据库
docker run --name zbx5-mysql -d \
--network=host \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
--restart unless-stopped mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
# 启动 server 后端
docker run --name zbx5-server-mysql -d \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
--network=host \
--restart unless-stopped \
zabbix/zabbix-server-mysql:5.0-centos-latest
# 启动 proxy,由于默认 Server 和 Proxy 端口都为 10051,避免冲突,这里使用 11111
docker run --name zbx5-proxy-mysql -d \
-e DB_SERVER_HOST="127.0.0.1" \
-e ZBX_LISTENPORT=11111 \
-e ZBX_HOSTNAME="zabbix-proxy-test1" \
-e ZBX_SERVER_HOST="127.0.0.1" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
--network=host \
--restart unless-stopped \
zabbix/zabbix-proxy-mysql:5.0-centos-latest
# 启动前端页面,默认端口是 8080
docker run --name zbx5-web-nginx-mysql -d \
-e ZBX_SERVER_HOST="127.0.0.1" \
-e DB_SERVER_HOST="127.0.0.1" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
--network=host \
--restart unless-stopped \
zabbix/zabbix-web-nginx-mysql:5.0-centos-latest
# 启动 Agent
docker run --name zbx5-agent -d \
-e ZBX_HOSTNAME="local-agent" \
-e ZBX_SERVER_HOST="127.0.0.1" \
--network=host \
--restart unless-stopped \
zabbix/zabbix-agent:5.0-centos-latest
##浏览器 http://ip:8080
默认密码:Admin/zabbix
docker其他命令
##停止正在运行的镜像
#step 1 先查看正在运行的镜像 docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
850f5f190b52 zabbix-agent:5.0-centos-latest "/usr/bin/tini -- /u…" 11 minutes ago Up 11 minutes zbx5-agent
6a8f3022e3f0 zabbix-web-nginx-mysql:5.0-centos-latest "docker-entrypoint.sh" 11 minutes ago Up 11 minutes zbx5-web-nginx-mysql
7a0fda359321 zabbix-proxy-mysql:5.0-centos-latest "/usr/bin/tini -- /u…" 11 minutes ago Up 11 minutes zbx5-proxy-mysql
b483dde04495 zabbix-server-mysql:5.0-centos-latest "/usr/bin/tini -- /u…" 11 minutes ago Up 11 minutes zbx5-server-mysql
bc9840acc1ca mysql:5.7 "docker-entrypoint.s…" 11 minutes ago Up 11 minutes zbx5-mysql
#step 2 先停止正在运行的镜像
docker stop 850
ps: 850 指的是CONTAINER ID 下的容器ID前3个字符
#step3 删除停止的镜像
docker ps -a
docker rmi 850
docker rm -f $(docker ps -a -q) ####删除所用运行的镜像
docker部署修改mysql密码
##查看正在运行的容器
docker ps
##进入mysql
docker exec -it 3a59879a4727 /bin/bash
##登录mysql
mysql -uroot -p
##修改root密码
SET PASSWORD FOR 'root' = PASSWORD('xxxxxxxxx');
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('xxxxxxxxx');
##修改其他用户密码
SET PASSWORD FOR '你的用户' = PASSWORD('xxxxxxxx');
问题
服务器时间与本地不一致
##查看正在运行的容器
docker ps
##进入zabbix/zabbix-web-nginx-mysql的配置文件
docker exec -it 6a8f3022e3f0 /bin/bash
ps:6a8f3022e3f0是容器id
##修改配置文件
vim /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
##停止容器
docker stop 6a8
##重启容器
docker resart 6a8
ix-web-nginx-mysql的配置文件
docker exec -it 6a8f3022e3f0 /bin/bash
ps:6a8f3022e3f0是容器id
##修改配置文件
vim /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
##停止容器
docker stop 6a8
##重启容器
docker resart 6a8