共计 5460 个字符,预计需要花费 14 分钟才能阅读完成。
Zabbix 项目地址
- https://www.zabbix.com/download
- https://github.com/zabbix/zabbix-docker
- https://www.zabbix.com/documentation/current/manual/introduction
官方文档
Docker 容器地址
- https://hub.docker.com/r/mysql/mysql-server
- https://hub.docker.com/r/zabbix/zabbix-server-mysql
- https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql
启动 MySQL
$ docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
变量 | 说明 |
MYSQL_DATABASE | MySQL 用户名 |
MYSQL_USER | MySQL 数据库名 |
MYSQL_PASSWORD | MySQL 数据库密码 |
MYSQL_ROOT_PASSWORD | MySQL ROOT 密码 |

启动 Zabbix Java gateway 实例
这个实例主要用来监控 Java,不监控 Java 的话可以不安装这个,同时,下方的 Zabbix server 实例中删除 -e ZBX_JAVAGATEWAY=”zabbix-java-gateway” 和 –link zabbix-java-gateway:zabbix-java-gateway,这边案例正常安装此实例
$ docker run --name zabbix-java-gateway -t \
-d zabbix/zabbix-java-gateway:latest

启动 Zabbix server 实例
- 且关联这个实例到已创建的 MySQL 服务器实例
$ docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
--network host \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest
变量 | 说明 |
DB_SERVER_HOST | 数据库名称 |
MYSQL_DATABASE | MySQL 用户名 |
MYSQL_USER | MySQL 数据库名 |
MYSQL_PASSWORD | MySQL 数据库密码 |
MYSQL_ROOT_PASSWORD | MySQL ROOT 密码 |
ZBX_JAVAGATEWAY | 配置 Zabbix Java gateway,默认不启动 |

启动 Zabbix web 接口
$ docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest
变量 | 说明 |
DB_SERVER_HOST | 数据库名称 |
MYSQL_DATABASE | MySQL 用户名 |
MYSQL_USER | MySQL 数据库名 |
MYSQL_PASSWORD | MySQL 数据库密码 |
MYSQL_ROOT_PASSWORD | MySQL ROOT 密码 |

查询容器状态
[centos@localhost ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1a1f287deff3 zabbix/zabbix-web-nginx-mysql:latest "docker-entrypoint.sh" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 443/tcp zabbix-web-nginx-mysql
0a7691d48275 zabbix/zabbix-server-mysql:latest "/sbin/tini -- /usr/…" 4 minutes ago Up 4 minutes 0.0.0.0:10051->10051/tcp zabbix-server-mysql
4bc59e83d8c7 zabbix/zabbix-java-gateway:latest "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 10052/tcp zabbix-java-gateway
3b1d33a26031 mysql:5.7 "docker-entrypoint.s…" 17 minutes ago Up 17 minutes 3306/tcp, 33060/tcp mysql-server
b6483f3cac6a portainer/portainer "/portainer" 59 minutes ago Up 59 minutes 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp portainer

访问 ZabbZix
- 在浏览器输入宿主机 IP:80 进入 WEB 页面
- 默认用户名:Admin
- 默认密码:zabbix

- 成功进去 Zabbix 首页

语言修改
- 默认为英文,点击右下角的用户图标,然后找到 Language -Chinese(zh_cn),然后点击下方的更新按钮


启动 Docker-Agent(可选)
监控 Docker 容器,可以使用 zabbix-docker-monitoring 项目,使用此项目可以监控宿主机上运行的所有 Docker 状态
https://github.com/monitoringartist/zabbix-docker-monitoring/
$ docker run \
--name=dockbix-agent-xxl \
--net=host \
--privileged \
-v /:/rootfs \
-v /var/run:/var/run \
--restart unless-stopped \
-e "ZA_Server=<ZABBIX SERVER IP/DNS NAME/IP RANGE>" \
-e "ZA_ServerActive=<ZABBIX SERVER IP/DNS NAME>" \
-d monitoringartist/dockbix-agent-xxl-limited:latest
变量 | 说明 |
ZA_Server | zabbix-server 容器的 IP(非宿主机 IP)/ 域名 |
ZA_ServerActive | zabbix-server 容器的 IP(非宿主机 IP)/ 域名 |
安装 Zabbix-Agent(Docker 环境)
查询 zabbix-server 容器的 IP
- 每次重启 Docker,IP 都会发生变化
方式一:
宿主机终端输入如下命令查询,将返回 IPAddress
docker inspect zabbix-server-mysql|grep IPAddress

方式二:
使用 Portainer,访问 IP:9000,找到 Containers – zabbix-server-mysql,网页底部会有个 Connected networks,即可看到桥接的 IP

运行 Zabbix-Agent
- 以监控 Zabbix 服务器为例,Zabbix-Server 和 Zabbix-Agent 安装在同一台主机的 Docker 上,运行不同的容器
$ docker run \
--name zabbix-agent \
-p 10050:10050 \
-e ZBX_HOSTNAME="HostName" \
-e ZBX_SERVER_HOST="Zabbix 服务器 IP" \
-e ZBX_SERVER_PORT=10051 \
-d zabbix/zabbix-agent
变量 | 说明 |
ZBX_HOSTNAME | Zabbix 主机名称,服务器本机默认为 Zabbix server |
ZBX_SERVER_HOST | zabbix-server 容器的 IP(非宿主机 IP) |


- 如果无法上线,需配置防火墙,需要 root 权限
$ firewall-cmd --zone=public --add-port=10050/tcp --permanent
$ systemctl restart firewalld.service

Zabbix 错误警告
- 出现错误 Zabbix agent is not available (for 3m)
- Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused
- 主要原因就是我们是将 Zabbix 服务器和 Zabbix 客户端都安装到了 Docker 上

- 打开配置 - 主机,接口那的 ip 为 127.0.0.1,这个 IP 是宿主机的 IP,需要修改为 zabbix-agent 容器的 IP

- 点击名称那的 Zabbix server , 修改为 zabbix-agent 容器的 IP(非 zabbix-server 容器的 IP)
查询 zabbix-agent 容器的 IP
方式一:
宿主机终端输入如下命令查询,将返回 IPAddress
docker inspect zabbix-agent|grep IPAddress

方式二:
使用 Portainer,访问 IP:9000,找到 Containers – zabbix-agent,网页底部会有个 Connected networks,即可看到桥接的 IP

- 在 agent 代理程序的接口 的IP 地址 处,填入刚刚查询到的 zabbix-agent 的 IP

- 等待几分钟,主机选项卡右侧的可用性中的 ZBX 将由红色变成绿色

- 打开监测 - 仪表盘,可以看到错误已经消失,可用数量为 1

Debain 安装 Zabbix-Agent(非 Docker 环境)
- 在其他机器上安装监控,非服务器本机安装
- 举例在 Deabin 平台下直接安装 Zabbix-agent,本文以 Kali 为演示,Kali 是基于 Deabian 开发的
下载 Zabbix-Agent
- 进入 Zabbix 官网下载区域,非中文的话右下角可以切换语言
- https://www.zabbix.com/cn/download
- 选择合适的 Zabbix 平台和对应的系统版本,这边选择 Zabbix 4.4,Debian 10,基于 MySQL+Nginx

添加软件源
- 下方会有命令提供

- 下载软件源
$ sudo wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+buster_all.deb
- 安装软件源
$ sudo dpkg -i zabbix-release_4.4-1+buster_all.deb
- 更新软件源
$ sudo apt update

安装 Zabbix-Agent
$ sudo apt install zabbix-agent

修改配置文件
$ sudo vim /etc/zabbix/zabbix_agentd.conf
变量 | 说明 |
Server | zabbix-server 宿主机 IP(非容器 IP) |
ServerActive | zabbix-server 宿主机 IP(非容器 IP) |
Hostname | 主机名称,自定义(这边我取名为 Kali Linux) |


开机启动 Zabbix-Agent
$ sudo systemctl enable zabbix-agent
$ sudo systemctl start zabbix-agent
查询 Debain 主机 IP
$ ip addr

添加主机
打开 Zabbix-Server 的 WEB 网页端,然后找到 配置 – 主机 – 创建主机,添加刚刚的主机名称和 IP 地址
变量 | 说明 |
主机名称 | 刚刚自定义的名称(这边自定义叫 Kali Linux) |
群组 | 监控的群组(这边是 Linux 系统,选择 Linux servers) |
agent 代理程序的接口 | 安装 Agent 的机器的 IP 地址 |

- 先不要点击下方的更新按钮
添加模板
- 切换到模板选项卡,点击 Link new templates 右侧的选择
- 找到 Templates/Operating systems 中的 Template OS Linux by Zabbix agent 并勾选


- 点击添加按钮,然后稍等片刻
Zabbix-Agent 运行检查
- 可以看到下方的 ZBX 已经变成绿色上线了

正文完
发表至: 系统运维
2020-03-15