zabbix io监控, 会的不难,不会时需要简单一点的材料

2024-03-16 17:32

本文主要是介绍zabbix io监控, 会的不难,不会时需要简单一点的材料,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

zabbix IO 监控

  • 需要设置discovery - 从主机上识别出同一类型的多个设备,如识别多个网卡,多个盘符,这里要做的是识别多个磁盘;

  • 需要设置item prototypes - 基础是discovery功能,识置一个类似模板,针对”磁盘“,同时为多个磁盘添加item;
    会引用到discovery得到的结果,在key和name上都会用到

  • 界面设置

在这里插入图片描述

  • 需要添加key的程序,io.scandisk的脚本,网上查的, python语句
<root@linux0 ~>$ cat /etc/zabbix/zabbix_agentd.d/disk_scan.conf 
UserParameter=io.scandisk[*],/usr/bin/python /usr/local/sbin/disk_scan.py $1<root@linux0 ~>$ cat /usr/local/sbin/disk_scan.py 
import subprocess
import json
args="cat /proc/diskstats|awk '{print $3}'|grep -E '^[a-z]+$'|sort|uniq 2>/dev/null"
t=subprocess.Popen(args,shell=True,stdout=subprocess.PIPE).communicate()[0]
disks=[]
for disk in t.split('\n'):if len(disk) != 0:disks.append({'{#DISK_NAME}':disk})
print json.dumps({'data':disks},indent=4,separators=(',',':'))<root@linux0 ~>$ python !$   #运行结果;
python /usr/local/sbin/disk_scan.py
{"data":[{"{#DISK_NAME}":"sda"},{"{#DISK_NAME}":"sdb"}]
}
  • 得到的结果是json语句,显示的结果就是两个磁盘名称;需要使用的名字是{#DISK_NAME}

设置item prototypes

  • 界面设置,添加一个item prototypes,名字引用了Disk_NAME,key也引用了DISK_NAME
    在这里插入图片描述

在这里插入图片描述

  • 需要设置一个applications, 到时discovery的项目会出现在相应的项目上;

在这里插入图片描述

  • 数据类型是重点,如果类型不对,将不会得到结果,得到0, 或提示数据类型不对,这里处理了很久;

  • 尝试过将结果变成整形都失败: 使用awk去掉小数点,但结果应该是字符形;再使用awk后面加0强行转换成数字形式,但是显示都是0; 再在数据库修改数据类型,但是不管用,最终决定的是web界面这个选项;

  • key得到的结果是0.00这种形式,一定需要使用浮点型;

  • 最终的key设置,脚本设置,跟网上不一样,网上都把结果输出成文本,再从文本得到结果,命令一直在后台运行;但我觉得zabbix自动定期会使用这个key得到结果,不需要这么复杂,下面是可以生效的; 可以增加自己想增加的数据,只设置了3个;

  • 下面的$1是指界面设置的DISK_NAME;而后面awk命令,本来是$3的,但是这样会被认为的界面传过来的第三个参数;为区别,需要设置成$$3这个样子;这个应该是内部机制;

<root@linux0 ~>$ cat /etc/zabbix/zabbix_agentd.d/disk_scan.conf 
UserParameter=io.scandisk[*],/usr/bin/python /usr/local/sbin/disk_scan.py $1
UserParameter=io.read[*],  iostat -kd |grep "\b$1\b" |awk '{print $$3}'
UserParameter=io.write[*], iostat -kd |grep "\b$1\b" |awk '{print $$4}'
UserParameter=io.util[*], iostat -kdx |grep "\b$1\b"| awk '{print $$14}'
  • 得到的数据
    在这里插入图片描述

在这里插入图片描述

  • 命令行的测试
<root@linux1 ~>$ zabbix_get -s 192.168.3.16 -k 'io.read[sda]'
11.94
<root@linux1 ~>$ zabbix_get -s 192.168.3.16 -k 'io.write[sda]'
55.24
<root@linux1 ~>$ zabbix_get -s 192.168.3.16 -k 'io.util[sda]'
0.06
<root@linux1 ~>$ zabbix_get -s 192.168.3.16 -k 'io.util[sdb]'
0.01
<root@linux1 ~>$ zabbix_get -s 192.168.3.16 -k 'io.write[sdb]'
54.55
<root@linux1 ~>$ zabbix_get -s 192.168.3.16 -k 'io.read[sdb]'
0.07

这篇关于zabbix io监控, 会的不难,不会时需要简单一点的材料的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816206

相关文章

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

springboot2.1.3 hystrix集成及hystrix-dashboard监控详解

《springboot2.1.3hystrix集成及hystrix-dashboard监控详解》Hystrix是Netflix开源的微服务容错工具,通过线程池隔离和熔断机制防止服务崩溃,支持降级、监... 目录Hystrix是Netflix开源技术www.chinasem.cn栈中的又一员猛将Hystrix熔

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat