zabbix自定义监控项监控docker容器

  • 前言:通常,通过 Docker 部署可以有效节省资源并提高服务器利用率。然而,当多个系统部署在同一台服务器上时,会导致连接多个监控模板的复杂情况。为了简化监控,可以直接利用自定义监控项来监控容器状态,从而简化监控流程,提高效率。
  1. 修改配置agent配置
bash 复制代码
vim /etc/zabbix/zabbix_agentd.conf
Timeout=30
#这个参数控制了 Zabbix 代理程序等待来自 Zabbix 服务器的响应的超时时间。您可以增加这个值以延长超时时间 因为脚本执行需要时间比较长 所以需要修改这个配置
AllowRoot=1
#放开此注释,当 AllowRoot设置为1时,表示允许 Zabbix 代理程序以 root 用户身份运行;而设置为 0 时,表示不允许 Zabbix 代理程序以 root 用户身份运行。
  1. 编写监控脚本
bash 复制代码
root@test-server02:~# cd /etc/zabbix/scripts/
root@test-server02:/etc/zabbix/scripts# cat container_monitor.sh
#!/bin/bash

check_command=$(docker ps | awk '{print $NF}' |grep -v NAMES |wc -l)

# 判断输出是否为16
if [ "$check_command" -eq 16 ]; then
    echo 1
else
    echo 0
fi
#我得容器总数是16个,根据自己容器数量修改
  1. 编写监控项配置
bash 复制代码
root@test-server02:/etc/zabbix/scripts# cd ../zabbix_agentd.conf.d/
root@test-server02:/etc/zabbix/zabbix_agentd.conf.d# cat container_monitor.conf
UserParameter=container.status,/etc/zabbix/scripts/container_monitor.sh
  1. 重启zabbix
bash 复制代码
systemctl status zabbix-agent
  1. zabbix-server机器测试监控项
bash 复制代码
[root@test-server01 ~]# zabbix_get -s IP -k container.status
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
0

zabbix_get 命令报错 没有root权限
这个报错是没有权限执行命令导致的,按说第一步骤改了配置应该不会出现这种问题、网上查到资料是修改启动命令里面的用户

  1. 修改zabbix-agent启动用户
bash 复制代码
root@test-server02:~# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2024-11-27 10:08:53 CST; 49min ago
     Docs: man:zabbix_agentd
 Main PID: 19302 (zabbix_agentd)
    Tasks: 6 (limit: 4915)
   CGroup: /system.slice/zabbix-agent.service
           ├─19302 /usr/sbin/zabbix_agentd --foreground
           ├─19320 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
           ├─19321 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
           ├─19323 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
           ├─19326 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
           └─19327 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
Nov 27 10:08:53 test-server02 systemd[1]: Started Zabbix Agent.
Nov 27 10:08:53 test-server02 zabbix_agentd[19302]: Starting Zabbix Agent [sdgs-server02]. Zabbix 3.0.12 (revision 73586).
Nov 27 10:08:53 test-server02 zabbix_agentd[19302]: Press Ctrl+C to exit.
#修改用户
root@test-server02:~# vim /lib/systemd/system/zabbix-agent.service
User=root
Group=root

#重启zabbix-agent
systemctl daemon-reload
systemctl status zabbix-agent
  1. 重新测试
bash 复制代码
[root@sdgs-server01 ~]# zabbix_get -s IP -k container.status
1
#此时返回1代表监控项已经正常
  1. 创建zabbix监控面板
  • templates



  • Applications
  • Items
    Key 是在前面定义的:UserParameter
  • Triggers
  1. 主机连接模板
  1. 测试监控是否生效
  • 停止容器
bash 复制代码
root@test-server02:~# docker stop name
  • zabbix web查看
相关推荐
Johny_Zhao4 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple5 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
代码老y7 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
DuelCode8 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
杨浦老苏12 小时前
开源服务运行监控工具Lunalytics
docker·群晖·网站监控
呆萌的代Ma18 小时前
解决Mac上的老版本docker desktop 无法启动/启动后一直转圈/无法登陆账号的问题
macos·docker·eureka
feilieren18 小时前
Docker 安装 Elasticsearch 9
运维·elasticsearch·docker·es
KaiwuDB19 小时前
使用Docker实现KWDB数据库的快速部署与配置
数据库·docker
cleble20 小时前
(转)使用DockerCompose部署微服务
docker
朱杰jjj1 天前
Docker容器中无法使用vim、vi命令处理
docker·容器·vim