Docker化部署的Zabbix监控同环境Docker化PostgreSQL的实现方法咨询
Docker部署场景下Zabbix监控PostgreSQL配置方案
一、前置网络连通性配置
因为Zabbix和PostgreSQL是独立部署的Docker容器,首先要确保二者网络可互通:
- 查看现有Docker网络列表:
docker network ls - 若两个容器不在同一网桥,执行命令将二者加入同一个通用网桥:
docker network connect <通用网桥名称> <PostgreSQL容器名> docker network connect <通用网桥名称> <Zabbix Server/Agent2容器名> - 连通性校验:进入Zabbix容器执行
ping <PostgreSQL容器名>,确认网络可达,同时确认PostgreSQL默认端口5432对Zabbix容器没有拦截策略。
二、PostgreSQL端权限配置
需要为Zabbix创建专用的监控账号并分配最小必要权限:
- 进入PostgreSQL容器:
docker exec -it <PostgreSQL容器名> bash - 登录PostgreSQL命令行:
psql -U <你的PostgreSQL管理员账号,默认postgres> - 执行以下SQL创建监控用户并授权:
CREATE USER zbx_monitor WITH PASSWORD '自定义的安全监控密码'; GRANT pg_monitor TO zbx_monitor; -- 如需监控细粒度表、索引指标,可根据需求额外授予对应权限 - 修改PostgreSQL配置文件
pg_hba.conf,添加规则允许Zabbix容器访问:
不知道Zabbix容器IP的话可执行host all zbx_monitor <Zabbix容器IP段/子网掩码> scram-sha-256docker inspect <Zabbix容器名> | grep IPAddress查询,测试环境可临时填0.0.0.0/0,生产环境不建议使用。 - 重启PostgreSQL容器使配置生效:
docker restart <PostgreSQL容器名>
三、Zabbix端监控配置
推荐使用官方模板方案,配置成本低、覆盖指标全:
- 官方Zabbix Agent2 Docker镜像默认已集成PostgreSQL监控插件,无需额外安装依赖。
- 登录Zabbix Web前端,依次进入「配置」-「主机」,点击「创建主机」:
- 基础配置页:填写PostgreSQL服务标识作为主机名,选择「Database」类群组,接口选「Agent」,填写PostgreSQL容器的IP/容器名、默认端口10050。
- 模板配置页:搜索并关联官方模板
PostgreSQL by Zabbix agent 2。 - 宏配置页:添加以下必填宏参数:
{$PG.USER}:值填zbx_monitor{$PG.PASSWORD}:值填刚才设置的监控用户密码{$PG.DBNAME}:值填要监控的库名,默认填postgres即可{$PG.PORT}:值填PostgreSQL服务端口,默认5432
- 点击「添加」保存主机配置。
四、监控有效性验证
- 配置完成5-10分钟后查看主机列表,对应PostgreSQL主机的可用性标识变为绿色即为正常。
- 进入「监测」-「最新数据」,筛选对应主机可看到所有PostgreSQL相关的指标数据。
- 可手动停止PostgreSQL容器测试告警触发逻辑是否正常。
内容的提问来源于stack exchange,提问作者Mahdi Shabani
相关产品推荐
相关产品推荐

