自动采集推送(监控神州云科DCN-4250(DellEMCUnity400Unity400存储))
优采云 发布时间: 2021-12-23 07:06自动采集推送(监控神州云科DCN-4250(DellEMCUnity400Unity400存储))
zabbix 采集器 高级用法(编写自动发现模板) zabbix 采集器 高级用法(编写自动发现模板) 前言:
通过这个文章,可以学习使用shell编写相关的采集器推送脚本,推送自动发现规则所需的json格式数据,推送自动发现的监控项数据。在zabbix原生监控项无法实现的时候非常有用,当然使用外部脚本也是一样,只不过是改变了zabbix监控项的监控方式而已。采集器属于主动模式监控,因为zabbix_sender主动推送到zabbix server,所以效率高,服务器负载低。创建触发器的时候,大部分都是数值判断。如何判断返回的字符串是否异常,比如监控项的返回字符串是OK_(5), 90%, 第一个是监控项的值OK_(5)
希望通过这个文章,大家可以举一反三,对zabbix自动发现机制有深入的了解。除了采集器类型外,还有其他主动、被动、外部脚本,以及snmp代理自动发现规则都差不多,只是snmp的自动发现有点特殊,会有稍后有机会发布相关的文章。
例子:
监控神舟云客DCN-4250(Dell EMC Unity400存储),由于不支持snmp代理模式监控,只能通过unisphere cli工具获取相关信息。有需要的可以留言或者私聊。
以下是完整的脚本。稍后我将通过个别示例进行说明,因此我不需要查看所有示例。
<p>#!/bin/bash
#下面为正则切割内容
#uemcli -d *.*.*.* -u admin -p xxxxxx /env/bat show |awk '/^[0-9]+:.+spb_bbu_0\>/,/.*Health[[:space:]]state/ {print $0}'
#echo "客户端地址为:$1"
zbx_ip="x.x.x.x"
zbx_port=10051
client_ip="*.*.*.*"
client_user="*****"
client_pwd="******"
#返回自动发现规则需要的json格式数据
jsonput(){
i=1
echo -e "{\n\t\"data\":["
for j in $*
do
echo -e "\t\t{\n\t\t\"{#ETHNAME}\":\"$j\""
echo -en "\t\t}"
if ((i