zabbix“专家坐诊”第155期问答汇总
4214Zabbix“专家坐诊”第155期问答汇总
View detailsSearch the whole station
zabbix是目前最为主流的开源监控方案之一,部署本身并不困难,难的是深入理解。根据在生产环境的实践从新版zabbix 4.0 LTS开始全部使用Docker部署,我相信未来越来越多的开源组件都会以容器化的形式呈现在我们面前。下面我就给大家讲解一下如何使用Docker快速部署zabbix系统。
Centos7系统
服务器IP:192.168.75.31
2. 安装docker
yum -y install docker
Docker二进制包下载,也可在windows下载后再上传至服务器
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.14.tgz
解压tar -zxf docker-20.10.14.tgz
复制文件
cp –ra docker/* /usr/bin
编写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 daemon-reload
访问zabbix官方提高的docker镜像
https://www.zabbix.com/container_images
这里选择使用MySQL数据库的zabbix-server,zabbix-agent以及zabbix界面的三个镜像,zabbix版本为最新的6.2
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
命令执行完后查看镜像是否拉取成功
docker images
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端口
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 启动容器的镜像
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 启动容器的镜像
全部启动后等待2-3分钟,待数据库初始化完成。
然后访问web界面
IP:8080
初始登录信息
账户:Admin
密码:zabbix
登录后的界面
修改成中文显示
启动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监控修改一下agent的IP信息
即可完成agent监控的添加
在监测>最新数据可看到监控正常获取数据
至此,整个zabbix系统的搭建到此结束。
如需zabbix监控其他的服务器,可在服务器安装部署一个agent,然后在配置>主机添加对应的监控对象即可完成监控。
后面将会出一篇将agent打包成通用二进制部署包的文章,以方便如何快速进行agent客户端的安装。
感谢大家的支持。
更多zabbix相关技术分享,可以关注乐维社区:http://forum.lwops.cn/