Zabbix:监视磁盘存储DELL MD36XX

大家好!


我们为更新的Linux管理员课程开辟了一套新课程:所有相同的新老师,一个动态程序和有趣的讨论。 好吧,与此同时,我们分享了一位老师的真实案例Alexey Tsykunov的有趣笔记。


走吧



挑战赛


您必须配置对DELL MD36XX磁盘存储上的负载的监视。
有一个问题-架子不知道如何通过snmp发送数据。 顺便说一下,在IBM,HP和其他供应商的存储设施中也发现了类似的问题。


环境


供应商自己提供客户端软件。 所谓StorageManager的。 其中一些仅适用于Windows,但最近出现在Linux下。 就我而言,该软件安装在Linux下,并包含控制台实用程序SMcli。 使用SMcli,您可以将统计信息收集到文件中:


SMcli -n StorageName -S -quick -c "save storageArray performanceStats file=\\"/var/log/md36xx.stat\\";" 

它看起来像这样


 "Performance Monitor Statistics for Storage Array: StorageName - Date/Time: 1/17/18 9:37:04 PM - Polling interval in seconds: 5" "Objects","Total IOs","Read %","Primary Read Cache Hit %","Primary Write Cache Hit %","SSD Read Cache Hit %","Current MBs/sec","Maximum MBs/sec","Current IOs/sec","Ma ximum IOs/sec","Minimum IOs/sec","Average IOs/sec","Minimum MBs/sec","Average MBs/sec","Current IO Latency","Maximum IO Latency","Minimum IO Latency","Average IO Late ncy" "Capture Iteration: 1","","","","","","","","","","","","","","","","","" "Date/Time: 1/17/18 9:37:05 PM","","","","","","","","","","","","","","","","","" "Storage Array StorageName ","6396.0","52.0","64.6","100.0","0.0","31.2","31.2","1279.0","1279.0","1279.0","1279.0","31.2","31.2","-","-","-","-" "RAID Controller Module 0","4043.0","47.3","55.3","100.0","0.0","27.3","27.3","808.0","808.0","808.0","808.0","27.3","27.3","-","-","-","-" "RAID Controller Module 1","2353.0","60.0","77.3","100.0","0.0","3.9","3.9","470.0","470.0","470.0","470.0","3.9","3.9","-","-","-","-" "Disk Pool Disk_Pool_1","5181.0","59.6","69.3","100.0","0.0","29.1","29.1","1036.0","1036.0","1036.0","1036.0","29.1","29.1","-","-","-","-" "Disk Pool Disk_Pool_vps","1215.0","19.4","3.8","100.0","0.0","2.1","2.1","243.0","243.0","243.0","243.0","2.1","2.1","-","-","-","-" "Virtual Disk VPS1","645.0","1.6","30.0","100.0","0.0","0.9","0.9","129.0","129.0","129.0","129.0","0.9","0.9","1.7","1.7","1.7","1.7" ... 

决策选项


可以解析此信息并将其发送到zabbix,并且有几种发送选项


Zabbix代理和UserParameter,您可以在其中绘制每个感兴趣的参数,例如:


 UserParameter = dell.md.discovery, /path/script_discovery UserParameter = dell.md.totalio[*], /path/script2 $1 UserParameter = dell.md.currmb[*], /path/script3 $1 

Zabbix_sender,可以通过脚本调用一次发送所有参数。 这是我选择的选项。


zabbix中的设置


在zabbix中,您需要配置一个新主机并在其中创建发现规则



在其中指定一个过滤器:



并添加项目原型


item_proto.png


这里更详细地说明了原型的规定方式:



发送到Zabbix


数据可以通过zabbix_sender -i <key_value_file>发送


档案格式:


 HOST key value 

作为值,您可以采用以下格式传递json以进行发现:


 { 'data' :[ {'{#MDDEV}': 'drive1'}, {'{#MDDEV}': 'drive1'}, ] } 

{#MDDEV}是其中的宏,通过它可以找到要进行统计的设备/驱动器的名称。


动作的总算法如下:


-我们通过SMcli删除统计信息,保存到文件中;
-解析收到的文件;
-为zabbix_sende r生成一个文件。


所有这些都可以通过bash脚本来实现。 但是在我看来,这是实现一个Python脚本的最简单方法,然后每分钟从头开始调用它。 仅zabbix中的发送模块出现了困难。 它在2.7和3.6下安装,但仅在3.6下启动。


该脚本可以在GitHub上获取


与往常一样,我们在这里或在公开课程中等待问题和评论。

Source: https://habr.com/ru/post/zh-CN416787/


All Articles