首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way

Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way

原创
作者头像
yuanzhengme
发布2025-08-18 23:04:10
发布2025-08-18 23:04:10
1630
举报
文章被收录于专栏:Linux相关Linux相关

1.docker常用命令

代码语言:bash
复制
# 查看运行的容器
docker ps
# 查看日志
docker logs containerID
# 重启容器
docker restart containerID
代码语言:bash
复制
# 创建 zabbix 专用网络
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
# 查询
docker network ls
代码语言:bash
复制
# 容器启动命令查询
docker pull cucker/get_command_4_run_container

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run_container containerID

2.Preparation

  • 安装Docker。
  • 为Zabbix创建专用网络zabbix-net
  • 创建数据库用户zabbix和数据库zabbix

3.IP地址说明

  • 172.20.240.0【Zabbix 专用网络的 Gateway IP 下边有查询方法】
  • 172.17.0.8【云服务器的内网IP】

4.Server

代码语言:bash
复制
# pull 镜像
docker pull zabbix/zabbix-server-pgsql:5.4-centos-latest

# 启动容器
docker run --name 5.4-zabbix-server-pgsql \
-e DB_SERVER_HOST="172.17.0.8" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-p 10051:10051 \
-d zabbix/zabbix-server-pgsql:5.4-centos-latest

开启JAVAGATEWAY服务:

代码语言:bash
复制
# 容器启动【开启JAVAGATEWAY服务】
docker run --name 5.4-zabbix-server-pgsql \
-e DB_SERVER_HOST="172.17.0.8" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" \
-e ZBX_JAVAGATEWAY_ENABLE="true" -e ZBX_JAVAGATEWAY="172.20.240.0" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-p 10051:10051 \
-d zabbix/zabbix-server-pgsql:5.4-centos-latest
代码语言:bash
复制
# 数据库会自动初始化166张表

5.Agent

5.1 agent

代码语言:bash
复制
# pull 镜像
docker pull zabbix/zabbix-agent:centos-5.4-latest

# 启动容器
docker run --name 5.4-zabbix-agent \
-e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="172.20.240.0" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
-v /etc/localtime:/etc/localtime \
-p 10050:10050 \
-d zabbix/zabbix-agent:centos-5.4-latest

其他启动命令:

代码语言:bash
复制
# 其他启动命令
# Connects from Zabbix server or Zabbix proxy in other containers (Passive checks)
docker run --name some-zabbix-server --link some-zabbix-agent:zabbix-agent -d zabbix/zabbix-server:latest

# Connect to Zabbix server or Zabbix proxy containers (Active checks)
docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -d zabbix/zabbix-agent:latest

#  Privileged mode
docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server --privileged -d zabbix/zabbix-agent:latest
docker run --name some-zabbix-agent --link some-zabbix-server:zabbix-server -v /dev/sdc:/dev/sdc -d zabbix/zabbix-agent:latest

踩坑记录:

代码语言:bash
复制
# 1.报错
active check configuration update from [云服务器内网IP:10051] started to fail (cannot connect to [[云服务器内网IP]:10051]: [111] Connection refused)

# 解决
# Zabbix server 启动时添加
-p 10051:10051 \
代码语言:bash
复制
# 2.报错
# agent
no active checks on server [云服务器内网IP:10051]: host [zabbix-agent] not found
# server
cannot send list of active checks to "172.20.240.0": host [zabbix-agent] not found

# 解决修改 -e ZBX_HOSTNAME="zabbix-agent" 为
-e ZBX_HOSTNAME="Zabbix server" # 或者修改 Web 端的 Hosts->Name
代码语言:bash
复制
# 3.报错
failed to accept an incoming connection: connection from "172.20.240.0" rejected, allowed hosts: "云服务器内网IP"

# 解决修改 -e ZBX_SERVER_HOST="云服务器内网IP" 为
-e ZBX_SERVER_HOST="172.20.240.0"

# 172.20.240.0 为 Zabbix 专用网络的 Gateway IP 地址 查看方式
docker inspect containerZabbixServerID | grep "Gateway"
            "Gateway": "",
            "IPv6Gateway": "",
                    "Gateway": "172.20.240.0",
                    "IPv6Gateway": "",

5.2 agent2

Zabbix agent 2 是新一代的 Zabbix agent,可以代替 Zabbix agent 使用。Zabbix agent 2 有以下特点:

  • 减少TCP连接数。
  • 提供改进的检查并发性。
  • 易于使用插件进行扩展。
  • 一个插件应该能够:提供仅由几行简单代码组成的简单检查;提供复杂的检查,包括长时间运行的脚本和独立的数据收集,并定期发回数据。

是 Zabbix agent 的临时替代品(因为它支持之前的所有功能)【新一代的 agent 是临时替代品???】

代码语言:bash
复制
# pull 镜像
docker pull zabbix/zabbix-agent2:5.4-centos-latest

# 启动容器
docker run --name 5.4-zabbix-agent2 \
-e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="172.20.240.0" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
-v /etc/localtime:/etc/localtime \
-p 10050:10050 \
-d zabbix/zabbix-agent2:5.4-centos-latest

6.Web interface

代码语言:bash
复制
# pull 镜像
docker pull zabbix/zabbix-web-nginx-pgsql:5.4-centos-latest

# 启动容器
docker run --name 5.4-zabbix-web-nginx-pgsql \
-e DB_SERVER_HOST="172.17.0.8" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" \
-e ZBX_SERVER_HOST="172.20.240.0" \
--restart unless-stopped \
-v /etc/localtime:/etc/localtime \
-v /usr/share/zabbix/assets/fonts:/usr/share/zabbix/assets/fonts \
--network=zabbix-net \
-p 443:8443 \
-p 9090:8080 \
-e PHP_TZ="Asia/Shanghai" \
-d zabbix/zabbix-web-nginx-pgsql:5.4-centos-latest

# 用于解决图表中文乱码问题
# -v /usr/share/zabbix/assets/fonts:/usr/share/zabbix/assets/fonts 
# /usr/share/zabbix/assets/fonts 文件夹下放置 DejaVuSans.ttf 文件

# 界面实例将 443/TCP 端口(HTTPS)暴露给主机。

其他启动命令:

代码语言:bash
复制
# Linking the container to Zabbix server
docker run --name some-zabbix-web-nginx-pgsql --link some-zabbix-server:zabbix-server -e DB_SERVER_HOST="some-postgres-server" -e POSTGRES_USER="some-user" -e POSTGRES_PASSWORD="some-password" -e ZBX_SERVER_HOST="some-zabbix-server" -e PHP_TZ="some-timezone" -d zabbix/zabbix-web-nginx-pgsql:tag

# Linking the container to PostgreSQL database
docker run --name some-zabbix-web-nginx-pgsql --link some-postgres-server:postgres -e DB_SERVER_HOST="some-postgres-server" -e POSTGRES_USER="some-user" -e POSTGRES_PASSWORD="some-password" -e ZBX_SERVER_HOST="some-zabbix-server" -e PHP_TZ="some-timezone" -d zabbix/zabbix-web-nginx-pgsql:tag
代码语言:bash
复制
# socket 统计信息查看
ss -lnt

# 结果
State		Recv-Q		Send-Q		Local Address:Port		Peer Address:Port
LISTEN		0			128 		*:22					*:*
LISTEN		0			128 		*:5432					*:*
LISTEN		0			128 		*:10050					*:*
LISTEN		0			128 		*:9090					*:*
LISTEN		0			128 		*:10051					*:*
LISTEN		0			128 		[::]:5432				[::]:*
LISTEN		0			128 		[::]:10050				[::]:*
LISTEN		0			128 		[::]:9090				[::]:*
LISTEN		0			128 		[::]:10051				[::]:*

7.Java gateway

代码语言:bash
复制
# pull 镜像
docker pull zabbix/zabbix-java-gateway:5.4-centos-latest

# 启动容器
docker run --name 5.4-zabbix-java-gateway \
-e ZBX_START_POLLERS=50 \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-p 10052:10052 \
-d zabbix/zabbix-java-gateway:5.4-centos-latest
代码语言:bash
复制
# 其他启动命令
# Linking the container to Zabbix server or Zabbix proxy
docker run --name some-zabbix-java-gateway --link some-zabbix-server:zabbix-server -d zabbix/zabbix-java-gateway:tag

启用Java gatewayServer的启动参数也要进行调整:

  • ZBX_JAVAGATEWAY_ENABLE

The variable enable communication with Zabbix Java Gateway to collect Java related checks. By default, value is false.

  • Other variables
代码语言:bash
复制
# Additionally the image allows to specify many other environment variables listed below【仅贴出 Java gateway 相关参数】
# 本次使用默认参数
ZBX_JAVAGATEWAYPORT=10052
ZBX_STARTJAVAPOLLERS=5

修改后的启动命令:

代码语言:bash
复制
docker run --name 5.4-zabbix-server-pgsql \
-e DB_SERVER_HOST="172.17.0.8" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix" \
-e ZBX_JAVAGATEWAY_ENABLE="true" -e ZBX_JAVAGATEWAY="172.20.240.0" \
--privileged=true \
--network=zabbix-net \
--restart unless-stopped \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-p 10051:10051 \
-d zabbix/zabbix-server-pgsql:5.4-centos-latest

8.总结及更新内容

Docker部署方便,load导出的镜像就无需下载各种依赖了。

  • 20230331 更新了对IP的说明。
  • 20230331 添加了前端图表中文乱码的解决方法。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.docker常用命令
  • 2.Preparation
  • 3.IP地址说明
  • 4.Server
  • 5.Agent
    • 5.1 agent
    • 5.2 agent2
  • 6.Web interface
  • 7.Java gateway
  • 8.总结及更新内容
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档