From 2449adedf35042aca73c6ced6fa11390d560f14b Mon Sep 17 00:00:00 2001
From: Paolino Paperino <paperino@paperopoli.com>
Date: Tue, 6 Mar 2018 10:10:24 +0100
Subject: [PATCH] 2018-03-06:  FG;  Remove test limitation to storage,raid: now
 also include disk*.

---
 .../Script/zbxDellStorageDeviceStatus.sh      |   4 +-
 Dell_MD38XX/Template/zbx_tmpl_dell-md38xx.xml | 234 ++++++++----------
 2 files changed, 112 insertions(+), 126 deletions(-)

diff --git a/Dell_MD38XX/Script/zbxDellStorageDeviceStatus.sh b/Dell_MD38XX/Script/zbxDellStorageDeviceStatus.sh
index 51ef610..ed81bdf 100755
--- a/Dell_MD38XX/Script/zbxDellStorageDeviceStatus.sh
+++ b/Dell_MD38XX/Script/zbxDellStorageDeviceStatus.sh
@@ -129,8 +129,8 @@ curIOlat,0
 maxIOlat,0
 minIOlat,0
 avgIOlat,0"
-# WANTOBJECTS="Storage,RAID,Disk"
-WANTOBJECTS="Storage,RAID"
+WANTOBJECTS="Storage,RAID,Disk"
+# WANTOBJECTS="Storage,RAID"
 
 # Use getopt(1) program to parse command line options
 SHORT=vhep:m:r:w:i:z:s:q:c:k:dt
diff --git a/Dell_MD38XX/Template/zbx_tmpl_dell-md38xx.xml b/Dell_MD38XX/Template/zbx_tmpl_dell-md38xx.xml
index 62c9462..a6967ec 100644
--- a/Dell_MD38XX/Template/zbx_tmpl_dell-md38xx.xml
+++ b/Dell_MD38XX/Template/zbx_tmpl_dell-md38xx.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <zabbix_export>
     <version>3.0</version>
-    <date>2018-02-28T17:39:02Z</date>
+    <date>2018-03-06T09:05:24Z</date>
     <groups>
         <group>
             <name>Templates</name>
@@ -29,8 +29,8 @@
                     <type>0</type>
                     <snmp_community/>
                     <snmp_oid/>
-                    <key>custom.dellmd38xx.array.discovery[{$MD38XX_CMD_ARGS},{$MD38XX_CMD_ARGS_DISCO}]</key>
-                    <delay>600</delay>
+                    <key>custom.dellmd38xx.array.discovery[{$MD38XX_CMD_ARGS_DISCO}]</key>
+                    <delay>3600</delay>
                     <status>0</status>
                     <allowed_hosts/>
                     <snmpv3_contextname/>
@@ -64,7 +64,7 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                             <snmp_community/>
                             <multiplier>0</multiplier>
                             <snmp_oid/>
-                            <key>custom.dellmd38xx.array.exec[{$MD38XX_CMD_ARGS},{#RAIDCTRL}]</key>
+                            <key>custom.dellmd38xx.array.exec[{$MD38XX_CMD_ARGS},{#RAIDNAME},{#RAIDCTRL}]</key>
                             <delay>120</delay>
                             <history>15</history>
                             <trends>365</trends>
@@ -112,8 +112,8 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                     <type>0</type>
                     <snmp_community/>
                     <snmp_oid/>
-                    <key>custom.dellmd38xx.device.discovery[{$MD38XX_CMD_ARGS},{$MD38XX_CMD_ARGS_DISCO}]</key>
-                    <delay>600</delay>
+                    <key>custom.dellmd38xx.device.discovery[{$MD38XX_CMD_ARGS_DISCO}]</key>
+                    <delay>3600</delay>
                     <status>0</status>
                     <allowed_hosts/>
                     <snmpv3_contextname/>
@@ -135,56 +135,19 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                     <filter>
                         <evaltype>0</evaltype>
                         <formula/>
-                        <conditions/>
+                        <conditions>
+                            <condition>
+                                <macro>{#DEVNAME}</macro>
+                                <value>@Dell MD38XX devices for discovery</value>
+                                <operator>8</operator>
+                                <formulaid>A</formulaid>
+                            </condition>
+                        </conditions>
                     </filter>
                     <lifetime>7</lifetime>
-                    <description>Discovery of DELL MD38XX device names, the quadruplet of (#RAIDNAME, #RAIDCTRL #DEVICETYPE, #DEVICENAME).&#13;
+                    <description>Discovery of DELL MD38XX device names, the quadruplet of (#RAIDNAME, #RAIDCTRL #DEVTYPE, #DEVNAME).&#13;
 MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&gt;</description>
                     <item_prototypes>
-                        <item_prototype>
-                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: average IO latency</name>
-                            <type>2</type>
-                            <snmp_community/>
-                            <multiplier>0</multiplier>
-                            <snmp_oid/>
-                            <key>custom.dellmd38xx.device.avgIOlat[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
-                            <delay>0</delay>
-                            <history>15</history>
-                            <trends>365</trends>
-                            <status>0</status>
-                            <value_type>0</value_type>
-                            <allowed_hosts/>
-                            <units>ms</units>
-                            <delta>0</delta>
-                            <snmpv3_contextname/>
-                            <snmpv3_securityname/>
-                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
-                            <snmpv3_authprotocol>0</snmpv3_authprotocol>
-                            <snmpv3_authpassphrase/>
-                            <snmpv3_privprotocol>0</snmpv3_privprotocol>
-                            <snmpv3_privpassphrase/>
-                            <formula>1</formula>
-                            <delay_flex/>
-                            <params/>
-                            <ipmi_sensor/>
-                            <data_type>0</data_type>
-                            <authtype>0</authtype>
-                            <username/>
-                            <password/>
-                            <publickey/>
-                            <privatekey/>
-                            <port/>
-                            <description>Average IO latency in ms: valorized only for volumes, not for disks/pools/...</description>
-                            <inventory_link>0</inventory_link>
-                            <applications>
-                                <application>
-                                    <name>DELL MD38XX</name>
-                                </application>
-                            </applications>
-                            <valuemap/>
-                            <logtimefmt/>
-                            <application_prototypes/>
-                        </item_prototype>
                         <item_prototype>
                             <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: read cache hit</name>
                             <type>2</type>
@@ -362,19 +325,19 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                             <application_prototypes/>
                         </item_prototype>
                         <item_prototype>
-                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: max # Reads</name>
-                            <type>15</type>
+                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: read fraction</name>
+                            <type>2</type>
                             <snmp_community/>
                             <multiplier>0</multiplier>
                             <snmp_oid/>
-                            <key>custom.dellmd38xx.device.maxreads[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
-                            <delay>60</delay>
+                            <key>custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
+                            <delay>0</delay>
                             <history>15</history>
                             <trends>365</trends>
                             <status>0</status>
                             <value_type>0</value_type>
                             <allowed_hosts/>
-                            <units>#</units>
+                            <units>%</units>
                             <delta>0</delta>
                             <snmpv3_contextname/>
                             <snmpv3_securityname/>
@@ -385,7 +348,7 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                             <snmpv3_privpassphrase/>
                             <formula>1</formula>
                             <delay_flex/>
-                            <params>custom.dellmd38xx.device.maxIOs[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}] * custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</params>
+                            <params/>
                             <ipmi_sensor/>
                             <data_type>0</data_type>
                             <authtype>0</authtype>
@@ -394,7 +357,7 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                             <publickey/>
                             <privatekey/>
                             <port/>
-                            <description>Maximum number of Read operations observed in measurement interval.</description>
+                            <description/>
                             <inventory_link>0</inventory_link>
                             <applications>
                                 <application>
@@ -406,19 +369,19 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                             <application_prototypes/>
                         </item_prototype>
                         <item_prototype>
-                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: max # Writes</name>
+                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: read OPs cache</name>
                             <type>15</type>
                             <snmp_community/>
                             <multiplier>0</multiplier>
                             <snmp_oid/>
-                            <key>custom.dellmd38xx.device.maxwrites[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
-                            <delay>60</delay>
+                            <key>custom.dellmd38xx.device.readopscache[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
+                            <delay>120</delay>
                             <history>15</history>
                             <trends>365</trends>
                             <status>0</status>
                             <value_type>0</value_type>
                             <allowed_hosts/>
-                            <units>#</units>
+                            <units>#/s</units>
                             <delta>0</delta>
                             <snmpv3_contextname/>
                             <snmpv3_securityname/>
@@ -429,7 +392,7 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                             <snmpv3_privpassphrase/>
                             <formula>1</formula>
                             <delay_flex/>
-                            <params>custom.dellmd38xx.device.maxIOs[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}] * (1. - custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}])</params>
+                            <params>last(custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}])*last(custom.dellmd38xx.device.maxIOs[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}])*last(custom.dellmd38xx.device.ctrlcachehitr[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}])</params>
                             <ipmi_sensor/>
                             <data_type>0</data_type>
                             <authtype>0</authtype>
@@ -438,7 +401,7 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                             <publickey/>
                             <privatekey/>
                             <port/>
-                            <description>Maximum number of Write operations observed in measurement interval.</description>
+                            <description>Number of read IOps which were served from RAID controller cache.</description>
                             <inventory_link>0</inventory_link>
                             <applications>
                                 <application>
@@ -450,64 +413,19 @@ MD38XX_CMD_ARGS_DISCO is specific to discovery script, for option -m &lt;match&g
                             <application_prototypes/>
                         </item_prototype>
                         <item_prototype>
-                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: # Reads from Ctrl cache</name>
+                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: read OPs</name>
                             <type>15</type>
                             <snmp_community/>
                             <multiplier>0</multiplier>
                             <snmp_oid/>
-                            <key>custom.dellmd38xx.device.readcachenum[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
-                            <delay>60</delay>
-                            <history>15</history>
-                            <trends>365</trends>
-                            <status>0</status>
-                            <value_type>0</value_type>
-                            <allowed_hosts/>
-                            <units>#</units>
-                            <delta>0</delta>
-                            <snmpv3_contextname/>
-                            <snmpv3_securityname/>
-                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
-                            <snmpv3_authprotocol>0</snmpv3_authprotocol>
-                            <snmpv3_authpassphrase/>
-                            <snmpv3_privprotocol>0</snmpv3_privprotocol>
-                            <snmpv3_privpassphrase/>
-                            <formula>1</formula>
-                            <delay_flex/>
-                            <params>custom.dellmd38xx.device.maxIOs[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}] * custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}] *&#13;
-custom.dellmd38xx.device.ctrlcachehitr[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</params>
-                            <ipmi_sensor/>
-                            <data_type>0</data_type>
-                            <authtype>0</authtype>
-                            <username/>
-                            <password/>
-                            <publickey/>
-                            <privatekey/>
-                            <port/>
-                            <description>Number of Read operations served from Controller cache, observed in measurement interval.</description>
-                            <inventory_link>0</inventory_link>
-                            <applications>
-                                <application>
-                                    <name>DELL MD38XX</name>
-                                </application>
-                            </applications>
-                            <valuemap/>
-                            <logtimefmt/>
-                            <application_prototypes/>
-                        </item_prototype>
-                        <item_prototype>
-                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: read fraction</name>
-                            <type>2</type>
-                            <snmp_community/>
-                            <multiplier>0</multiplier>
-                            <snmp_oid/>
-                            <key>custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
-                            <delay>0</delay>
+                            <key>custom.dellmd38xx.device.readops[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
+                            <delay>120</delay>
                             <history>15</history>
                             <trends>365</trends>
                             <status>0</status>
                             <value_type>0</value_type>
                             <allowed_hosts/>
-                            <units>%</units>
+                            <units>#/s</units>
                             <delta>0</delta>
                             <snmpv3_contextname/>
                             <snmpv3_securityname/>
@@ -518,7 +436,7 @@ custom.dellmd38xx.device.ctrlcachehitr[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</param
                             <snmpv3_privpassphrase/>
                             <formula>1</formula>
                             <delay_flex/>
-                            <params/>
+                            <params>last(custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}])*last(custom.dellmd38xx.device.maxIOs[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}])</params>
                             <ipmi_sensor/>
                             <data_type>0</data_type>
                             <authtype>0</authtype>
@@ -527,7 +445,7 @@ custom.dellmd38xx.device.ctrlcachehitr[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</param
                             <publickey/>
                             <privatekey/>
                             <port/>
-                            <description/>
+                            <description>Number of read IOps: maximum observed during sampling interval.</description>
                             <inventory_link>0</inventory_link>
                             <applications>
                                 <application>
@@ -583,19 +501,19 @@ custom.dellmd38xx.device.ctrlcachehitr[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</param
                             <application_prototypes/>
                         </item_prototype>
                         <item_prototype>
-                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: # Writes from Ctrl cache</name>
+                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: write OPs</name>
                             <type>15</type>
                             <snmp_community/>
                             <multiplier>0</multiplier>
                             <snmp_oid/>
-                            <key>custom.dellmd38xx.device.writecachenum[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
-                            <delay>60</delay>
+                            <key>custom.dellmd38xx.device.writeops[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
+                            <delay>120</delay>
                             <history>15</history>
                             <trends>365</trends>
                             <status>0</status>
                             <value_type>0</value_type>
                             <allowed_hosts/>
-                            <units>#</units>
+                            <units>#/s</units>
                             <delta>0</delta>
                             <snmpv3_contextname/>
                             <snmpv3_securityname/>
@@ -606,8 +524,7 @@ custom.dellmd38xx.device.ctrlcachehitr[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</param
                             <snmpv3_privpassphrase/>
                             <formula>1</formula>
                             <delay_flex/>
-                            <params>custom.dellmd38xx.device.maxIOs[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}] * (1. - custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]) *&#13;
-custom.dellmd38xx.device.ctrlcachehitw[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</params>
+                            <params>(1.-last(custom.dellmd38xx.device.readfrac[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]))*last(custom.dellmd38xx.device.maxIOs[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}])</params>
                             <ipmi_sensor/>
                             <data_type>0</data_type>
                             <authtype>0</authtype>
@@ -616,7 +533,7 @@ custom.dellmd38xx.device.ctrlcachehitw[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</param
                             <publickey/>
                             <privatekey/>
                             <port/>
-                            <description>Number of Write operations served from Controller cache, observed in measurement interval.</description>
+                            <description>Number of write IOps: maximum observed during sampling interval.</description>
                             <inventory_link>0</inventory_link>
                             <applications>
                                 <application>
@@ -629,7 +546,76 @@ custom.dellmd38xx.device.ctrlcachehitw[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</param
                         </item_prototype>
                     </item_prototypes>
                     <trigger_prototypes/>
-                    <graph_prototypes/>
+                    <graph_prototypes>
+                        <graph_prototype>
+                            <name>Disk array {#RAIDNAME}, {#DEVTYPE}, {#DEVNAME}: IO/s</name>
+                            <width>900</width>
+                            <height>200</height>
+                            <yaxismin>0.0000</yaxismin>
+                            <yaxismax>100.0000</yaxismax>
+                            <show_work_period>1</show_work_period>
+                            <show_triggers>1</show_triggers>
+                            <type>0</type>
+                            <show_legend>1</show_legend>
+                            <show_3d>0</show_3d>
+                            <percent_left>0.0000</percent_left>
+                            <percent_right>0.0000</percent_right>
+                            <ymin_type_1>1</ymin_type_1>
+                            <ymax_type_1>0</ymax_type_1>
+                            <ymin_item_1>0</ymin_item_1>
+                            <ymax_item_1>0</ymax_item_1>
+                            <graph_items>
+                                <graph_item>
+                                    <sortorder>0</sortorder>
+                                    <drawtype>0</drawtype>
+                                    <color>3333FF</color>
+                                    <yaxisside>0</yaxisside>
+                                    <calc_fnc>4</calc_fnc>
+                                    <type>0</type>
+                                    <item>
+                                        <host>Template DELL MD38XX Storage</host>
+                                        <key>custom.dellmd38xx.device.maxIOs[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
+                                    </item>
+                                </graph_item>
+                                <graph_item>
+                                    <sortorder>1</sortorder>
+                                    <drawtype>0</drawtype>
+                                    <color>00AA00</color>
+                                    <yaxisside>0</yaxisside>
+                                    <calc_fnc>4</calc_fnc>
+                                    <type>0</type>
+                                    <item>
+                                        <host>Template DELL MD38XX Storage</host>
+                                        <key>custom.dellmd38xx.device.readops[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
+                                    </item>
+                                </graph_item>
+                                <graph_item>
+                                    <sortorder>2</sortorder>
+                                    <drawtype>0</drawtype>
+                                    <color>00EE00</color>
+                                    <yaxisside>0</yaxisside>
+                                    <calc_fnc>4</calc_fnc>
+                                    <type>0</type>
+                                    <item>
+                                        <host>Template DELL MD38XX Storage</host>
+                                        <key>custom.dellmd38xx.device.readopscache[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
+                                    </item>
+                                </graph_item>
+                                <graph_item>
+                                    <sortorder>3</sortorder>
+                                    <drawtype>1</drawtype>
+                                    <color>EE0000</color>
+                                    <yaxisside>0</yaxisside>
+                                    <calc_fnc>4</calc_fnc>
+                                    <type>0</type>
+                                    <item>
+                                        <host>Template DELL MD38XX Storage</host>
+                                        <key>custom.dellmd38xx.device.writeops[{#RAIDNAME},{#DEVTYPE},{#DEVNAME}]</key>
+                                    </item>
+                                </graph_item>
+                            </graph_items>
+                        </graph_prototype>
+                    </graph_prototypes>
                     <host_prototypes/>
                 </discovery_rule>
             </discovery_rules>
-- 
GitLab