如何使用docker快速部署一个zabbix监控系统

使用docker拉取官方提供的zabbix镜像来快速部署一个zabbix监控系统

1.   环境准备

Centos7系统

服务器IP192.168.75.31

2.   安装docker

2.1.       Yum安装

yum -y install docker

2.2.       二进制安装(可离线)

Docker二进制包下载,也可在windows下载后再上传至服务器

wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.14.tgz                                                                                                                             

cHUhvtwq632bb8dc57f9f.png

tar -zxf docker-20.10.14.tgz

UNRKojm6632bb8e5a8267.png

复制文件

cp –ra docker/* /usr/bin

lR0KhTR7632bb8ee09fe2.png

编写system文件

vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.io
[Service]
OOMScoreAdjust=-1000
ExecStart=/usr/bin/dockerd
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
ExecReload=/bin/kill -s HUP \$MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target

启动docker

systemctl daemon-reload
systemctl start docker

tBvL0ED9632bb8fa48f85.png

3.   拉取docker镜像

访问zabbix官方提高的docker镜像

https://www.zabbix.com/container_images

DQ5BVWtY632bb90631c85.png

这里选择使用MySQL数据库的zabbix-server,zabbix-agent以及zabbix界面的三个镜像,zabbix版本为最新的6.2

FchLbFaQ632bb90ed46b4.png

Zabbix6版本以上的MySQL数据库需为MySQL 8以上,因此拉取MySQL官方提供的MySQL 8镜像。

拉取四个镜像命令:(linux上执行)

docker pull mysql:latest
docker pull zabbix/zabbix-server-mysql:latest
docker pull zabbix/zabbix-web-nginx-mysql:latest
docker pull zabbix/zabbix-agent:latest

Y41ilqDe632bb922b6afc.png

命令执行完后查看镜像是否拉取成功

docker images

ImYHlgkn632bb93189d11.png

4.   启动镜像

4.1.       首先要启动MySQL数据库

docker run --name zabbix-mysql -e MYSQL_DATABASE=zabbix -e MYSQL_ROOT_PASSWORD=zabbix -p 3306:3306 -d mysql:latest

参数解释:

--name zabbix-mysql    #定义容器名称

-e MYSQL_DATABASE=zabbix    #初始数据库名zabbix

-e MYSQL_ROOT_PASSWORD=zabbix #数据库root用户的密码zabbix

-p 3306:3306         #将容器3306端口映射到主机3306端口

NcUdEUzG632bb93b12e51.png

4.2.       然后启动zabbix-server

docker run --name zabbix-server -e MYSQL_DATABASE=zabbix -e DB_SERVER_HOST=192.168.75.31 -e DB_SERVER_PORT=3306 -e MYSQL_USER=root -e MYSQL_PASSWORD=zabbix -p 10051:10051 -d zabbix/zabbix-server-mysql:latest

参数解释:

--name zabbix- server                                     #定义容器名称

-e DB_SERVER_HOST=192.168.75.31         #数据库连接地址

-e DB_SERVER_PORT=3306                        #数据库连接端口

-e MYSQL_DATABASE=zabbix                      #连接的数据库名zabbix

-e MYSQL_USER=root                                   #数据库连接用户 root

-e MYSQL _PASSWORD=zabbix                   #数据库连接密码zabbix

-p 10051:10051                                               #将容器10051端口映射到主机10051端口

-d 后台运行

zabbix/zabbix-server-mysql:latest                    启动容器的镜像

1HZhUrQh632bb9421171a.png

4.3.       最后启动zabbix界面

docker run --name zabbix-web -e ZBX_SERVER_HOST=192.168.75.31 -e ZBX_SERVER_PORT=10051 -e DB_SERVER_HOST=192.168.75.31 -e DB_SERVER_PORT=3306
-e MYSQL_DATABASE=zabbix -e MYSQL_USER=root -e MYSQL_PASSWORD=zabbix -p 8080:8080 -p 8443:8443 -d zabbix/zabbix-web-nginx-mysql:latest

参数解释:

--name zabbix- web                               #定义容器名称

-e ZBX_SERVER_HOST=192.168.75.31     #web连接server的地址

-e ZBX_SERVER_PORT=10051      #web连接server的端口

-e DB_SERVER_HOST=192.168.75.31      #数据库连接地址

-e DB_SERVER_PORT=3306          #连接的数据库端口

-e MYSQL_DATABASE=zabbix       #连接的数据库名zabbix

-e MYSQL_USER=root                 #数据库连接用户

-e MYSQL _PASSWORD=zabbix         #数据库连接密码zabbix

-p 8080:8080          #将容器8080端口映射到主机8080端口

-d       #后台运行

zabbix/zabbix-web-nginx-mysql:latest        #启动容器的镜像

72023WyO632bb94b8ace1.png

5.   访问web

全部启动后等待2-3分钟,待数据库初始化完成。

然后访问web界面

http://IP:8080

LPjTpNbd632bb953329ad.png

初始登录信息

账户:Admin

密码:zabbix

登录后的界面

cDyeXZTa632bb96139c46.png

修改成中文显示

pu4Bh5jE632bb96a06592.png

6.   添加agent监控

启动agent

docker run --name zabbix-agent --link zabbix-server -e ZBX_HOSTNAME=192.168.75.31 -e ZBX_SERVER_HOST=172.17.0.1 -e ZBX_SERVER_PORT=10051 -p 10050:10050 --privileged -d zabbix/zabbix-agent:latest

参数解释:

--name zabbix-agent     #定义容器名称

--link zabbix-server      #连接到zabbix-server容器

-e ZBX_HOSTNAME=192.168.75.31     #zabbix-server主机名

-e ZBX_SERVER_HOST=172.17.0.1      #zabbix-server连接地址,这里固定这个IP

-p 10050:10050    #将容器10050端口映射到主机10050端口

-d     #后台运行

 

PS:这里ZBX_SERVER_HOST无须修改IP

然后到UI界面将默认的zabbix监控修改一下agentIP信息

CXWR9Tf9632bb9731623d.png

即可完成agent监控的添加

在监测>最新数据可看到监控正常获取数据

4FrPW8et632bb97a200d5.png

至此,整个系统的搭建到此结束。

要监控其他的服务器,可在服务器安装部署一个agent,然后在配置>主机添加对应的监控对象即可完成监控。

Agent部署:将Agent打包成通用二进制部署包,以方便如何快速进行Agent客户端的安装,参考文章:如何快速部署zabbix-agent客户端

使用docker-compose工具进行部署(更快!):比单纯使用docker部署zabbix更快拉起一个监控系统,而且管理起来更方便!参考:使用docker-compose快速部署zabbix监控系统

1 条评论

请先 登录 后评论
我是一只小菜鸡
我是一只小菜鸡

小菜鸡

12 篇文章

作家榜 »

  1. 乐维君 376 文章
  2. YOHOHO 14 文章
  3. 机灵小和尚 13 文章
  4. 我是一只小菜鸡 12 文章
  5. 细雨闲花 11 文章
  6. 。。。 9 文章
  7. 御前侍卫张五哥 9 文章
  8. 小黄人 8 文章