侧边栏壁纸
博主头像
一叶舟的秘密花园 博主等级

行动起来,活在当下

  • 累计撰写 37 篇文章
  • 累计创建 15 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Zabbix agent自定义监控docker容器状态

Li
Li
2026-02-06 / 0 评论 / 0 点赞 / 19 阅读 / 0 字
温馨提示:
本文最后更新于2026-02-06,若内容或图片失效,请留言反馈。 八月长江万里晴,千帆一道带风轻

一、监控目标说明

我们监控的是 指定容器是否在运行

  • 运行中 → 返回 1

  • 未运行 / 不存在 → 返回 0

Zabbix 根据返回值触发告警。

二、Agent 端:自定义监控脚本

1️⃣ 创建脚本目录(推荐)

mkdir -p /etc/zabbix/scripts

2️⃣ 编写容器检测脚本

vi /etc/zabbix/scripts/docker_container_status.sh

内容如下:

#!/bin/bash
​
container_name="$1"
​
if [ -z "$container_name" ]; then
    echo 0
    exit 0
fi
​
docker inspect -f '{{.State.Running}}' "$container_name" 2>/dev/null | grep -q true
if [ $? -eq 0 ]; then
    echo 1
else
    echo 0
fi

3️⃣ 授权

chmod +x /etc/zabbix/scripts/docker_container_status.sh

测试:

[root@dfh-redis-xc-0001 script]# vi docker_container_status.sh
[root@dfh-redis-xc-0001 script]# ./docker_container_status.sh redis-prod
1

三、Zabbix Agent 配置

编辑 agent 配置文件:

vi /etc/zabbix/zabbix_agentd.conf

追加:

UserParameter=docker.container.running[*],/etc/zabbix/scripts/docker_container_status.sh "$1"

⚠️ 如果 agent 用 zabbix 用户运行,确保 zabbix 有 docker 权限

usermod -aG docker zabbix
systemctl restart zabbix-agent

四、Zabbix 前端配置

1️⃣ 新建监控项(Item)

  • 类型:Zabbix agent

  • 键值

docker.container.running[容器名]

👉 返回值示例:

  • 1 = 正常

  • 0 = 异常

2️⃣ 新建触发器(Trigger)

表达式(推荐写法,7.x 正确)

last(/dfh-redis-xc-0001.novalocal/docker.container.running[redis-prod])=0

1 次检测失败就告警

触发器名称示例

Docker 容器 [容器名] 未运行

0

评论区