当前位置: 首页 > news >正文

day59-可观测性建设-zabbix自定义监控项

🌟常用内置键值

在 Zabbix 中,内置键值(Internal Item Key) 是 Zabbix Agent 或其他数据采集方式预定义的监控指标,用于采集主机、服务、应用、系统资源等的运行状态。这些键值可以直接用于监控项(Items)中,无需额外配置脚本。

🧰Zabbix Agent 常用内置键值(Linux)

📌 系统信息类

键值说明
system.uname获取系统信息(类似 uname -a
system.uname[short]简短的主机名(类似 uname -n
system.uname[release]内核版本(类似 uname -r
system.uname[machine]硬件架构(如 x86_64)
system.uname[version]内核发布版本
system.uname[sysname]系统名称(如 Linux)
system.uname[nodename]主机名
system.uname[domainname]域名(如果支持)

📌系统负载类

键值说明
system.load[all,avg1]1分钟平均负载
system.load[all,avg5]5分钟平均负载
system.load[all,avg15]15分钟平均负载

📌CPU 相关

键值说明
system.cpu.util[,user]用户态 CPU 使用率(%)
system.cpu.util[,system]系统态 CPU 使用率(%)
system.cpu.util[,idle]空闲 CPU 使用率(%)
system.cpu.numCPU 核心数量
system.cpu.switchesCPU 上下文切换次数
system.cpu.intr中断数量

📌内存相关

键值说明
vm.memory.size[total]总内存大小(单位:字节)
vm.memory.size[free]空闲内存
vm.memory.size[used]已使用内存
vm.memory.size[available]可用内存(Linux 特有)
vm.memory.utilization内存使用率(%)

📌磁盘 IO 相关

键值说明
system.uname获取系统信息(类似 uname -a
vfs.dev.read.bytes[device]指定设备的读取字节数
vfs.dev.write.bytes[device]指定设备的写入字节数
vfs.dev.read.ops[device]指定设备的读取操作数
vfs.dev.write.ops[device]指定设备的写入操作数

示例:vfs.dev.read.bytes[sda]

📌文件系统相关

键值说明
vfs.fs.size[/,total]根分区总大小
vfs.fs.size[/,free]根分区空闲大小
vfs.fs.size[/,used]根分区已使用大小
vfs.fs.size[/,pfree]根分区空闲百分比
vfs.fs.size[/,pused]根分区使用百分比
vfs.fs.inode[/,free]根分区 inode 空闲数量
vfs.fs.inode[/,used]根分区 inode 已使用数量
vfs.fs.inode[/,pfree]根分区 inode 空闲百分比

可以替换 / 为其他挂载点,如 /home/var/log 等。

📌网络相关

键值说明
net.if.in[eth0]eth0 接口接收的数据量(字节)
net.if.out[eth0]eth0 接口发送的数据量(字节)
net.if.in[eth0,bytes]eth0 接口接收的字节数
net.if.out[eth0,bytes]eth0 接口发送的字节数
net.tcp.listen[port]检查指定端口是否在监听(如 net.tcp.listen[80]
net.tcp.port[,80]检查本地是否在监听 80 端口(返回 0 或 1)

📌进程相关

键值说明
proc.num当前运行的进程数
proc.num[nginx]nginx 进程数量
proc.num[nginx,,run]正在运行的 nginx 进程数量
proc.mem[nginx]nginx 进程使用的内存大小
proc.cpu.util[nginx]nginx 进程的 CPU 使用率(%)

✅如何查看所有内置键值?

你可以通过以下方式查看所有可用的内置键值:

  1. Zabbix Web 界面
    • 创建或编辑监控项时,在“键值”字段点击下拉箭头,可以看到所有可用键值。

  1. Zabbix Agent 端执行命令
zabbix_agentd -t "system.uname"

或查看所有支持的键值:

zabbix_agentd -t

🌟zabbix自定义监控

📐无参数的键值

  • 遇到zabbix模板中内有的内容,进行监控,使用zabbix自定义监控功能
  • 只要命令或脚本获取的内容,就可以自定义监控
  • 客户端创建对饮的key值
    • 客户端修改子配置文件
  • 服务端检查ke是否可用
  • 前端页面配置:创建监控项,添加key,添加触发器,添加图形

🍀自定义监控完整流程

  • 选择1台机器,配置测试自定义监控
    • 客户端:命令,脚本获取到指定的指标,写入到zabbix agent子配置文件中
    • 服务端:使用zabbix_get -s ip -k key名字 测试
  • web页面添加监控项,触发器(可选),图形(可选)
  • web页面创建模板
  • 复制监控项,触发器(可选),图形(可选)到模板中
  • 分发子配置文件到所有主机上
  • 模板与主机关联
  • 测试

获取僵尸进程命令

top -bn1 | awk 'NR==2{print $(NF-1)}'

客户端修改子配置文件

vim /etc/zabbix/zabbix_agent2.d/sys.conf
UserParameter=key名字,对应的命令或脚本
UserParameter=sys.zombie,top -bn1 | awk 'NR==2{print $(NF-1)}'systemctl restart zabbix-agent2.service

服务端测试(进入zabbix-server容器测试)

1.进入zabbix-server容器
docker-compose exec -it zbx_serve /bin/bash2.测试
zabbix_get -s 172.16.1.7 -k sys.zombie
-s:指定主机
-k:指定key名字

前端页面添加监控项

🧩带有参数的键值

  • 监控指定端口连接数(已经建立连接)
  • 检查公网方向的端口,连接数
  • 检查用户是否异地登录

获取指定端口连接数命令

ss -ant | grep -i estab | grep ":22" | wc -l

检查root用户登录的ip

lastlog -u root | awk 'NR==2{print $$3}'

修改客户端子配置文件

UserParameter=sys.port.conn[*],ss -ant | grep -i estab | grep ":$1" | wc -l
UserParameter=user.login.ip[*],lastlog -u root | awk 'NR==2{print $$3}'
*:表示所有参数
$1:表示[]中的第一参数
注意这里有个坑:当需要使用awk取列时,需要使用$$3来表示取第三列systemctl restart zabbix-agent2.service

进入zabbix-server容器测试

zabbix_get -s 172.16.1.7 -k sys.port.conn[22]
zabbix_get -s 172.16.1.7 -k user.login.ip[root]

前端页面添加监控项

💡添加触发器

前端页面添加

客户端制造僵尸进程

使用其他的主机登录web01

前端监控页面查看

🌏监控图形

创建图表

查看图形

💾监控模板

  • 监控项
  • 触发器
  • 图形
  • 关联模板

如何把自定义监控应用到所有机器

  • 创建模板

  • 复制监控项

  • 复制触发器

  • 复制图形

  • 查看模板

  • 模板与主机关联

  • 检查监控项,由于对应的主机还没有定义键值,所有会显示不支持

  • 客户端配置文件批量分发(自定义键值)

cat >>/etc/zabbix/zabbix_agent2.d/sys.conf <<'EOF'
UserParameter=sys.zombie,top -bn1 | awk 'NR==2{print $(NF-1)}'
UserParameter=sys.port.conn[*],ss -ant | grep -i estab | grep ":$1" | wc -l
EOF

🌟自定义监控故障

💡awk取列的问题

  • $有特殊含义,
UserParameter=user.log.ip[*],lastlog -u "$1" | awk 'NR==2{print $$3}'

💡zabbix用户权限问题

客户端都是zabbix用户运行脚本或命令
出现一些权限类问题
解决方案:
1.修改用户为root2.给zabbix用户配置sudo权限
/etc/sudoers
zabbix ALL=(ALL) NOPASSWD:ALLUserParameter=new.key,sudo 命令或脚本

🌟自动发现配置

🍟配置自动发现规则

🍅创建群组

🍓创建发现动作

🔍查看主机

总结

  • 自定义监控

    • 无参数
    • 有参数
  • 自定义监控与模板

  • 故障案例:取列问题,权限问题,运行时间

  • 自动发现

  • 目标

    • 监控网站集群(前后端)
    • ansible部署客户端,自定义监控项配置,启动服务
    • 配置自动发现

http://www.dtcms.com/a/291490.html

相关文章:

  • Shell 脚本编程全面学习指南
  • AK视频下载工具:免费高效,多平台支持
  • 解决图片方向混乱问题的自动化处理方案
  • 51c大模型~合集157
  • 《基于单层软皮和高密度电阻抗层析成像的多模态信息结构》论文解读
  • Python图像处理基础(十)
  • 十六、全方位监控:Prometheus
  • doker centos7安装1
  • QGIS本地下载并部署天地图
  • Java——MyBatis 核心特性全解析:从配置到高级用法
  • Python桌面版数独游戏(三版)-增加难易度模式
  • 深入解析:GRPO决策优化与动态规划在先进RAG系统中的应用
  • Markdown语法完全指南:从入门到精通
  • MySQL 8.0 OCP 1Z0-908 题目解析(32)
  • spring boot windows linux 控制台 文件 乱码问题详解
  • Spring的IOC是什么?它解决了哪些问题?
  • JVM对象创建与内存分配机制
  • 上海RISC-V峰会-香山开源RISC-V CPU随想随记
  • Golang在Web开发中的应用
  • 设备虚拟化
  • hard_err错误
  • 50-字母异位词分组
  • SmartETL循环流程的设计与应用
  • 外辐射源入门综述
  • 板凳-------Mysql cookbook学习 (十二--------4)
  • c++找工作(qt)
  • 【金仓数据库产品体验官】_KingbaseES(SQLServer兼容版)保姆级安装教程
  • LiteCoT:难度感知的推理链压缩与高效蒸馏框架
  • 【CNN】卷积神经网络多通道卷积与偏置过程- part2
  • AI Red Teaming 分析