Leaderboard


Popular Content

Showing content with the highest reputation since 05/20/2020 in all areas

  1. 1 point
    I submitted an enhancement for the CiscoQoS datasource, but until LM processes it you can import this. The existing version creates an instance for (QoS object + QoS Class +Qos Policy) * interfaces, so a single switch can easily have 5000+ instances. I added some properties during Active Discovery that you can use to filter based on policy direction, interface type, interface name/desc, or class name/desc. By default it only adds policies applied in the outbound direction (shaping traffic). auto.qos.interface.name auto.qos.interface.desc auto.qos.interface.type auto.qos.class.name auto.qos.class.desc auto.qos.policy_direction <?xml version="1.0" encoding="UTF-8" ?> <feed version="1.0" hasPendingRequests="false" > <company></company> <status>200</status> <errmsg>OK</errmsg> <interval>0</interval> <entry type="predatasource"> <version>1590592615</version> <name>Cisco_QoS_Improved</name> <displayedas>Cisco_QoS_Improved</displayedas> <description>Monitors Cisco class-based Quality-of-Service (QoS) interface packet metrics.</description> <collector>snmp</collector> <hasMultiInstances>true</hasMultiInstances> <schedule>180</schedule> <appliesTo>false()</appliesTo> <wildcardauto>true</wildcardauto> <wildcardpersist>false</wildcardpersist> <wildcardlinuxscript>ad_script</wildcardlinuxscript> <wildcardlinuxcmdline>type=&#34;embeded&#34; </wildcardlinuxcmdline> <wildcardwinscript>ad_script</wildcardwinscript> <wildcardwincmdline>type=&#34;embeded&#34; </wildcardwincmdline> <wildcardgroovyscript>/******************************************************************************* * © 2007-2019 - LogicMonitor, Inc. All rights reserved. ******************************************************************************/ import com.santaba.agent.groovyapi.snmp.Snmp // variable to hold system hostname def host = hostProps.get(&#39;system.hostname&#39;); def props = hostProps.toProperties(); def timeout = 30000; // 30 seconds timeout /* The following SNMP walkAsMap will handle v1 , v2 and v3. Props contains a map of ALL host properties and the SNMP walk method will automatically handle the proper connection based on which SNMP version is configured. */ Map policy_dir_map = [ &#39;1&#39;:&#39;input&#39;, &#39;2&#39;:&#39;output&#39; ]; Map cbQosIfType_map = [ &#39;1&#39;:&#39;mainInterface&#39;, &#39;2&#39;:&#39;subInterface&#39;, &#39;3&#39;:&#39;frDLCI&#39;, &#39;4&#39;:&#39;atmPVC&#39;, &#39;5&#39;:&#39;controlPlane&#39;, &#39;6&#39;:&#39;vlanPort&#39;, &#39;7&#39;:&#39;evc&#39; ]; // define maps we will walk. def cbQosIfTypeOID = &#39;.1.3.6.1.4.1.9.9.166.1.1.1.1.2&#39;; def cbQosPolicyDirOID = &#39;.1.3.6.1.4.1.9.9.166.1.1.1.1.3&#39;; def cbQosIfIndexOID = &#39;.1.3.6.1.4.1.9.9.166.1.1.1.1.4&#39;; def ifDescrOID = &#39;.1.3.6.1.2.1.2.2.1.2&#39;; def ifAliasOID = &#39;.1.3.6.1.2.1.31.1.1.1.18&#39;; def cbQosConfigIndexOID = &#39;.1.3.6.1.4.1.9.9.166.1.5.1.1.2&#39;; def cbQosConfigType = &#39;.1.3.6.1.4.1.9.9.166.1.5.1.1.3&#39;; def cbQosCMNameOID = &#39;.1.3.6.1.4.1.9.9.166.1.7.1.1.1&#39;; def cbQosCMDescOID = &#39;.1.3.6.1.4.1.9.9.166.1.7.1.1.2&#39;; def cbQosIfTypeMap = Snmp.walkAsMap(host, cbQosIfTypeOID, props, timeout); def cbQosIfIndexMap = Snmp.walkAsMap(host, cbQosIfIndexOID, props, timeout); def cbQosPolicyDirMap = Snmp.walkAsMap(host, cbQosPolicyDirOID, props, timeout); def ifDescrMap = Snmp.walkAsMap(host, ifDescrOID, props, timeout); def ifAliasMap = Snmp.walkAsMap(host, ifAliasOID, props, timeout); //def cbQosConfigIndexMap = Snmp.walkAsMap(host, cbQosConfigIndexOID, props, timeout); def cbQosCMNameMap = Snmp.walkAsMap(host, cbQosCMNameOID, props, timeout); def cbQosCMDescMap = Snmp.walkAsMap(host, cbQosCMDescOID, props, timeout); // Walk through each entry of the cbQosIfIndexMap cbQosIfIndexMap.each { cbQosPolicyIndex, ifIndex -&#62; // cbQosPolicyIndex is key for the policy used to retrieve the config elements for name and desc // ifIndex is value for logical interface (if it exists; control plane will be null // Set ifDescr and ifAlias to empty strings if there is no logical interface (like control plane) if (ifIndex != null) { ifDescr = ifDescrMap[ifIndex]; ifAlias = ifAliasMap[ifIndex]; } else { ifDescr = &#34;&#34;; ifAlias = &#34;&#34;; } // Input=1 or output=2 direction on the interface cbQosPolicyDirection = policy_dir_map[cbQosPolicyDirMap[cbQosPolicyIndex]]; // Type of interface policy is applied to cbQosIfType = cbQosIfType_map[cbQosIfTypeMap[cbQosPolicyIndex]]; //cbQosConfigIndexMap = Snmp.walkAsMap(host, &#39;.1.3.6.1.4.1.9.9.166.1.5.1.1.2.18&#39;, props, timeout); cbQosConfigIndexMap = Snmp.walkAsMap(host, cbQosConfigIndexOID + &#39;.&#39; + cbQosPolicyIndex, props, timeout); // Walk through cbQosConfigIndexMap cbQosConfigIndexMap.each { cbQosConfigIndex,cbQosCMConfigIndex -&#62; // cbQosConfigIndex is the key here, will be the wildvalue with cbQosPolicyIndex // cbQosCMConfigIndex is the value here (will be the key in cbQosCMNameMap and cbQosCMDescMap). // cbQosConfigIndexMap has an entry for every config element in the policy (class, match, etc) // but class entries have cbQosCMNameMap and cbQosCMDescMap entries cbQosCMName = cbQosCMNameMap[cbQosCMConfigIndex]; cbQosCMDesc = cbQosCMDescMap[cbQosCMConfigIndex]; if (cbQosCMName != null) { println &#34;$cbQosPolicyIndex##$ifDescr ($cbQosCMName)####$cbQosConfigIndex##auto.qos.interface.name=$ifDescr&#38;auto.qos.class.name=$cbQosCMName&#38;auto.qos.interface.desc=$ifAlias&#38;auto.qos.class.desc=$cbQosCMDesc&#38;auto.qos.policy_direction=$cbQosPolicyDirection&#38;&#38;auto.qos.interface.type=$cbQosIfType&#34;; } } } return 0</wildcardgroovyscript> <wildcardschedule>1440</wildcardschedule> <wildcarddisable>false</wildcarddisable> <wildcarddeleteinactive>false</wildcarddeleteinactive> <agdmethod>ilp</agdmethod> <agdparams>auto.qos.interface.name</agdparams> <group>Cisco_QoS_Improved</group> <tags>qos,quality of service,cisco,network</tags> <technology>- AD updated from previous versions to use WalkAsMap for massive efficiency gains.</technology> <adlist><![CDATA[{"agdmethod":"ilp","method":"ad_script","agdparams":"auto.qos.interface.name","id":0,"filters":[{"attribute":"auto.qos.policy_direction","operation":"Equal","value":"output"}],"params":{"type":"embeded","groovyscript":"/*******************************************************************************\r\n * © 2007-2019 - LogicMonitor, Inc. All rights reserved.\r\n ******************************************************************************/\r\n\r\nimport com.santaba.agent.groovyapi.snmp.Snmp\r\n\r\n// variable to hold system hostname\r\ndef host = hostProps.get('system.hostname');\r\ndef props = hostProps.toProperties();\r\ndef timeout = 30000; // 30 seconds timeout\r\n\r\n/*\r\nThe following SNMP walkAsMap will handle v1 , v2 and v3.\r\nProps contains a map of ALL host properties and the SNMP walk method will automatically\r\nhandle the proper connection based on which SNMP version is configured.\r\n*/\r\n\r\n Map policy_dir_map =\r\n [\r\n '1':'input',\r\n '2':'output'\r\n ];\r\n \r\n Map cbQosIfType_map =\r\n [\r\n '1':'mainInterface',\r\n '2':'subInterface',\r\n '3':'frDLCI',\r\n '4':'atmPVC',\r\n '5':'controlPlane',\r\n '6':'vlanPort',\r\n '7':'evc'\r\n ];\r\n\r\n// define maps we will walk.\r\ndef cbQosIfTypeOID \t\t= '.1.3.6.1.4.1.9.9.166.1.1.1.1.2';\r\ndef cbQosPolicyDirOID \t= '.1.3.6.1.4.1.9.9.166.1.1.1.1.3';\r\ndef cbQosIfIndexOID \t\t= '.1.3.6.1.4.1.9.9.166.1.1.1.1.4';\r\ndef ifDescrOID \t\t\t= '.1.3.6.1.2.1.2.2.1.2';\r\ndef ifAliasOID \t\t\t= '.1.3.6.1.2.1.31.1.1.1.18';\r\ndef cbQosConfigIndexOID \t= '.1.3.6.1.4.1.9.9.166.1.5.1.1.2';\r\ndef cbQosConfigType \t\t= '.1.3.6.1.4.1.9.9.166.1.5.1.1.3';\r\ndef cbQosCMNameOID \t\t= '.1.3.6.1.4.1.9.9.166.1.7.1.1.1';\r\ndef cbQosCMDescOID \t\t= '.1.3.6.1.4.1.9.9.166.1.7.1.1.2';\r\n\r\ndef cbQosIfTypeMap \t\t= Snmp.walkAsMap(host, cbQosIfTypeOID, \tprops, timeout);\r\ndef cbQosIfIndexMap \t\t= Snmp.walkAsMap(host, cbQosIfIndexOID, \tprops, timeout);\r\ndef cbQosPolicyDirMap \t= Snmp.walkAsMap(host, cbQosPolicyDirOID, \tprops, timeout);\r\ndef ifDescrMap \t\t\t= Snmp.walkAsMap(host, ifDescrOID, \t\tprops, timeout);\r\ndef ifAliasMap \t\t\t= Snmp.walkAsMap(host, ifAliasOID, \t\tprops, timeout);\r\n//def cbQosConfigIndexMap = Snmp.walkAsMap(host, cbQosConfigIndexOID, props, timeout);\r\ndef cbQosCMNameMap \t\t= Snmp.walkAsMap(host, cbQosCMNameOID,\tprops, timeout);\r\ndef cbQosCMDescMap \t\t= Snmp.walkAsMap(host, cbQosCMDescOID,\tprops, timeout);\r\n\r\n// Walk through each entry of the cbQosIfIndexMap\r\ncbQosIfIndexMap.each\r\n { cbQosPolicyIndex, ifIndex ->\r\n\r\n // cbQosPolicyIndex is key for the policy used to retrieve the config elements for name and desc\r\n // ifIndex is value for logical interface (if it exists; control plane will be null\r\n\r\n\t\t // Set ifDescr and ifAlias to empty strings if there is no logical interface (like control plane)\r\n\r\n if (ifIndex != null) {\r\n ifDescr = ifDescrMap[ifIndex];\r\n ifAlias = ifAliasMap[ifIndex];\r\n } else {\r\n\t ifDescr = \"\";\r\n\t\t ifAlias = \"\";\r\n\t\t }\r\n\r\n\r\n\t\t // Input=1 or output=2 direction on the interface\r\n\t\t cbQosPolicyDirection = policy_dir_map[cbQosPolicyDirMap[cbQosPolicyIndex]];\r\n\r\n\t\t // Type of interface policy is applied to\r\n\t\t cbQosIfType = cbQosIfType_map[cbQosIfTypeMap[cbQosPolicyIndex]];\r\n\r\n\t\t //cbQosConfigIndexMap = Snmp.walkAsMap(host, '.1.3.6.1.4.1.9.9.166.1.5.1.1.2.18', props, timeout);\r\n\t\t cbQosConfigIndexMap = Snmp.walkAsMap(host, cbQosConfigIndexOID + '.' + cbQosPolicyIndex, props, timeout);\r\n\r\n // Walk through cbQosConfigIndexMap\r\n cbQosConfigIndexMap.each\r\n { cbQosConfigIndex,cbQosCMConfigIndex ->\r\n\r\n // cbQosConfigIndex is the key here, will be the wildvalue with cbQosPolicyIndex\r\n // cbQosCMConfigIndex is the value here (will be the key in cbQosCMNameMap and cbQosCMDescMap).\r\n\r\n\t\t\t\t\t// cbQosConfigIndexMap has an entry for every config element in the policy (class, match, etc)\r\n\t\t\t\t\t// but class entries have cbQosCMNameMap and cbQosCMDescMap entries\r\n\t\t\t\t\tcbQosCMName = cbQosCMNameMap[cbQosCMConfigIndex];\r\n\t\t\t\t\tcbQosCMDesc = cbQosCMDescMap[cbQosCMConfigIndex];\r\n\r\n\t\t\t\t\tif (cbQosCMName != null) {\r\n\t println \"$cbQosPolicyIndex##$ifDescr ($cbQosCMName)####$cbQosConfigIndex##auto.qos.interface.name=$ifDescr&auto.qos.class.name=$cbQosCMName&auto.qos.interface.desc=$ifAlias&auto.qos.class.desc=$cbQosCMDesc&auto.qos.policy_direction=$cbQosPolicyDirection&&auto.qos.interface.type=$cbQosIfType\";\r\n \t\t\t\t\t}\r\n }\r\n }\r\n\r\nreturn 0"}}]]></adlist> <schemaVersion>2</schemaVersion> <dataSourceType>1</dataSourceType> <attributes> <attribute> <name>ip</name> <value>dns</value> <comment></comment> </attribute> <attribute> <name>__filter_0</name> <value>auto.qos.policy_direction Equal output</value> <comment></comment> </attribute> </attributes> <datapoints> <datapoint> <name>DropByte</name> <dataType>7</dataType> <type>3</type> <postprocessormethod>none</postprocessormethod> <postprocessorparam></postprocessorparam> <usevalue></usevalue> <alertexpr></alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody></alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of dropped bytes per second as the result of all features that can produce drops (e.g., police, random detect, etc.)</description> <maxvalue></maxvalue> <minvalue>0</minvalue> <userparam1>.1.3.6.1.4.1.9.9.166.1.15.1.1.17.##WILDVALUE##.##WILDVALUE2##</userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>5</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> <datapoint> <name>DropPkt</name> <dataType>7</dataType> <type>3</type> <postprocessormethod>none</postprocessormethod> <postprocessorparam></postprocessorparam> <usevalue></usevalue> <alertexpr>&#62; 0</alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody>Cisco QoS Interface ##INSTANCE## on ##HOST## has reported ##VALUE## packet drops per second, placing the interface into ##LEVEL## state. This started at ##START##, -- or ##DURATION## ago.</alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of dropped packets, per second, per class as the result of all features that can produce drops (e.g., police, random detect, etc.).</description> <maxvalue></maxvalue> <minvalue>0</minvalue> <userparam1>.1.3.6.1.4.1.9.9.166.1.15.1.1.14.##WILDVALUE##.##WILDVALUE2##</userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>2</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> <datapoint> <name>NoBuffDropPkt</name> <dataType>7</dataType> <type>3</type> <postprocessormethod>none</postprocessormethod> <postprocessorparam></postprocessorparam> <usevalue></usevalue> <alertexpr>&#62; 0</alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody>Cisco QoS Interface-Class ##INSTANCE## on ##HOST## has reported ##VALUE## packet drops per second due to a lack of SRAM buffers during output processing on an interface, placing the interface into ##LEVEL## state. This started at ##START##, -- or ##DURATION## ago.</alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of dropped packets per second which occurred due to a lack of SRAM buffers during output processing on an interface.</description> <maxvalue></maxvalue> <minvalue>0</minvalue> <userparam1>.1.3.6.1.4.1.9.9.166.1.15.1.1.21.##WILDVALUE##.##WILDVALUE2##</userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>2</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> <datapoint> <name>PostPolicyByte</name> <dataType>7</dataType> <type>3</type> <postprocessormethod>none</postprocessormethod> <postprocessorparam></postprocessorparam> <usevalue></usevalue> <alertexpr></alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody></alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of outbound octets, per second, after executing QoS policies.</description> <maxvalue></maxvalue> <minvalue>0</minvalue> <userparam1>.1.3.6.1.4.1.9.9.166.1.15.1.1.10.##WILDVALUE##.##WILDVALUE2##</userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>5</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> <datapoint> <name>PrePolicyByte</name> <dataType>7</dataType> <type>3</type> <postprocessormethod>none</postprocessormethod> <postprocessorparam></postprocessorparam> <usevalue></usevalue> <alertexpr></alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody></alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of inbound octets, per second, prior to executing any QoS policies.</description> <maxvalue></maxvalue> <minvalue>0</minvalue> <userparam1>.1.3.6.1.4.1.9.9.166.1.15.1.1.6.##WILDVALUE##.##WILDVALUE2##</userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>5</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> <datapoint> <name>PrePolicyPkt</name> <dataType>7</dataType> <type>3</type> <postprocessormethod>none</postprocessormethod> <postprocessorparam></postprocessorparam> <usevalue></usevalue> <alertexpr></alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody></alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of inbound packets, per second, prior to executing any QoS policies.</description> <maxvalue></maxvalue> <minvalue>0</minvalue> <userparam1>.1.3.6.1.4.1.9.9.166.1.15.1.1.3.##WILDVALUE##.##WILDVALUE2##</userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>5</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> <datapoint> <name>DroppedBits</name> <dataType>7</dataType> <type>2</type> <postprocessormethod>expression</postprocessormethod> <postprocessorparam>DropByte * 8</postprocessorparam> <usevalue></usevalue> <alertexpr></alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody></alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of dropped bits per second as the result of all features that can produce drops (e.g., police, random detect, etc.)</description> <maxvalue></maxvalue> <minvalue></minvalue> <userparam1></userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>0</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> <datapoint> <name>PostPolicyBits</name> <dataType>7</dataType> <type>2</type> <postprocessormethod>expression</postprocessormethod> <postprocessorparam>PostPolicyByte * 8</postprocessorparam> <usevalue></usevalue> <alertexpr></alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody></alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of outbound bits, per second, after executing QoS policies.</description> <maxvalue></maxvalue> <minvalue></minvalue> <userparam1></userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>0</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> <datapoint> <name>PrePolicyBits</name> <dataType>7</dataType> <type>2</type> <postprocessormethod>expression</postprocessormethod> <postprocessorparam>PrePolicyByte * 8</postprocessorparam> <usevalue></usevalue> <alertexpr></alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody></alertbody> <enableanomalyalertsuppression></enableanomalyalertsuppression> <description>Number of inbound bits, per second, prior to executing any QoS policies.</description> <maxvalue></maxvalue> <minvalue></minvalue> <userparam1></userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>0</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> </datapoints> <graphs> <graph> <name>QoS Packets</name> <title>QoS Packets</title> <verticallabel>packets/sec</verticallabel> <rigid>true</rigid> <maxvalue>NaN</maxvalue> <minvalue>0.0</minvalue> <displayprio>2</displayprio> <timescale>1day</timescale> <base1024>false</base1024> <graphdatapoints> <graphdatapoint> <name>DropPkt</name> <datapointname>DropPkt</datapointname> <cf>1</cf> </graphdatapoint> <graphdatapoint> <name>NoBufDropPkt</name> <datapointname>NoBuffDropPkt</datapointname> <cf>1</cf> </graphdatapoint> <graphdatapoint> <name>PrePolicyPkt</name> <datapointname>PrePolicyPkt</datapointname> <cf>1</cf> </graphdatapoint> </graphdatapoints> <graphvirtualdatapoints> </graphvirtualdatapoints> <graphdatas> <graphdata> <type>2</type> <legend>Drops</legend> <color>red</color> <datapointname>DropPkt</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> </graphdata> <graphdata> <type>2</type> <legend>Buffer Drop</legend> <color>orange</color> <datapointname>NoBufDropPkt</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> </graphdata> <graphdata> <type>1</type> <legend>Pre-Policy</legend> <color>blue</color> <datapointname>PrePolicyPkt</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> </graphdata> </graphdatas> </graph> <graph> <name>QoS Throughput</name> <title>QoS Throughput</title> <verticallabel>bps</verticallabel> <rigid>true</rigid> <maxvalue>NaN</maxvalue> <minvalue>0.0</minvalue> <displayprio>1</displayprio> <timescale>1day</timescale> <base1024>false</base1024> <graphdatapoints> <graphdatapoint> <name>DroppedBits</name> <datapointname>DroppedBits</datapointname> <cf>1</cf> </graphdatapoint> <graphdatapoint> <name>PostPolicyBits</name> <datapointname>PostPolicyBits</datapointname> <cf>1</cf> </graphdatapoint> <graphdatapoint> <name>PrePolicyBits</name> <datapointname>PrePolicyBits</datapointname> <cf>1</cf> </graphdatapoint> </graphdatapoints> <graphvirtualdatapoints> </graphvirtualdatapoints> <graphdatas> <graphdata> <type>1</type> <legend>Dropped</legend> <color>red</color> <datapointname>DroppedBits</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> </graphdata> <graphdata> <type>1</type> <legend>Post-Policy</legend> <color>blue</color> <datapointname>PostPolicyBits</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> </graphdata> <graphdata> <type>1</type> <legend>Pre-Policy</legend> <color>green</color> <datapointname>PrePolicyBits</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> </graphdata> </graphdatas> </graph> </graphs> <overviewgraphs> <overviewgraph> <name>Top 10 Interfaces by Packet Drops</name> <title>Top 10 Interfaces by Packet Drops</title> <verticallabel>packet/sec</verticallabel> <rigid>true</rigid> <maxvalue>NaN</maxvalue> <minvalue>0.0</minvalue> <displayprio>3</displayprio> <timescale>1day</timescale> <base1024>false</base1024> <aggregated>false</aggregated> <datapoints> <overviewgraphdatapoint> <name>DropPkt</name> <datapointname>DropPkt</datapointname> <cf>1</cf> <aggregateMethod>sum</aggregateMethod> </overviewgraphdatapoint> <overviewgraphdatapoint> <name>NoBuffDropPkt</name> <datapointname>NoBuffDropPkt</datapointname> <cf>1</cf> <aggregateMethod>sum</aggregateMethod> </overviewgraphdatapoint> </datapoints> <virtualdatapoints> </virtualdatapoints> <lines> <overviewgraphline> <type>1</type> <legend>##INSTANCE##</legend> <datapointname>DropPkt</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> <color>blue</color> </overviewgraphline> <overviewgraphline> <type>1</type> <legend>Buffer Drop ##INSTANCE##</legend> <datapointname>NoBuffDropPkt</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> <color>blue</color> </overviewgraphline> </lines> </overviewgraph> <overviewgraph> <name>Top 10 Interfaces by Post-Policy Throughput</name> <title>Top 10 Interfaces by Post-Policy Throughput</title> <verticallabel>bps</verticallabel> <rigid>true</rigid> <maxvalue>NaN</maxvalue> <minvalue>0.0</minvalue> <displayprio>2</displayprio> <timescale>1day</timescale> <base1024>false</base1024> <aggregated>false</aggregated> <datapoints> <overviewgraphdatapoint> <name>PostPolicyBits</name> <datapointname>PostPolicyBits</datapointname> <cf>1</cf> <aggregateMethod>sum</aggregateMethod> </overviewgraphdatapoint> </datapoints> <virtualdatapoints> </virtualdatapoints> <lines> <overviewgraphline> <type>1</type> <legend>##INSTANCE##</legend> <datapointname>PostPolicyBits</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> <color>AUTO</color> </overviewgraphline> </lines> </overviewgraph> <overviewgraph> <name>Top 10 Interfaces by Pre-Policy Throughput</name> <title>Top 10 Interfaces by Pre-Policy Throughput</title> <verticallabel>bps</verticallabel> <rigid>true</rigid> <maxvalue>NaN</maxvalue> <minvalue>0.0</minvalue> <displayprio>1</displayprio> <timescale>1day</timescale> <base1024>false</base1024> <aggregated>false</aggregated> <datapoints> <overviewgraphdatapoint> <name>PrePolicyBits</name> <datapointname>PrePolicyBits</datapointname> <cf>1</cf> <aggregateMethod>sum</aggregateMethod> </overviewgraphdatapoint> </datapoints> <virtualdatapoints> </virtualdatapoints> <lines> <overviewgraphline> <type>1</type> <legend>##INSTANCE##</legend> <datapointname>PrePolicyBits</datapointname> <isvirtualdatapoint>false</isvirtualdatapoint> <color>AUTO</color> </overviewgraphline> </lines> </overviewgraph> </overviewgraphs> <scripts> </scripts> </entry> </feed>
  2. 1 point
    I'm interested as well (for mnagel's PSIRT beta). Submitted feedback request also.
  3. 1 point
  4. 1 point
    There is already a global stats datasource from LogicMonitor repo called 'CiscoASA' displayed as 'Global PIX/ASA Stats' (Published with lmLocator: 3XDXDM). It has numSessions (aggregate over all types) but does not including webvpn and SVC directly. I submitted feedback request, but you can add those datapoints to the existing datasource using the OIDs that you identified.
  5. 1 point
    Late to the party (sorry, new to LM itself) but just wondering if any further consideration/progress was made on this feature request? I recently added a Cisco FMC trap in LM. And what would have been a single alarm in our old NMS has generated over 1100 alerts (so far).
  6. 1 point
    It would be useful to have SNMP traps that trigger within a specific timeframe to be considered the same alert. We have a few cases where devices start throwing traps every minute and by the time we react to fix we already have dozens of alerts. It would be better to consider the same trap within a time frame to be the same alert to avoid this alert flood.
  7. 1 point
    BUMPing.. We are learning of this now as we are starting to implement LM and this is horrible. There has to be a solution for this? Why does LM not correlate the same event and just increase the count of that same alert/trap on the Alert Console? We don't need 1000 different alerts that all pertain to the same event/trap.
  8. 1 point
    Thanks a lot for the swift reply. I noticed the multi-instance box, but indeed it was greyd-out. I will try this appoach and create a new version of the datasource, making it multi instance and see how I can query something that indicates the various instances. Beside that i will have to look into the BatchScript. We are indeed a MSP and the script will definitly run on one of our own collectors, providing the results only on the specific customer dashboards.
  9. 1 point
    Thanks Stuart for the update but there is one important piece which I think is missing is Office365 Service Health Status. This doesnt exist in LM Office365 datasources.
  10. 1 point
    Guessing it hasn't been approved yet. Below is the PowerShell script and the AppliesTo is 'auto.activedatasources =~ "HTTPS"' $URL = "https://" $URL = $URL + "##hostname##" try { [Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} $webRequest = [System.Net.HttpWebRequest]::Create($URL) $webRequest.KeepAlive = $false $webRequest.Timeout = 5000 $webRequest.ServicePoint.ConnectionLeaseTimeout = 5000 $webRequest.ServicePoint.MaxIdleTime = 5000 #$null = $webRequest.GetResponse() $null = $webRequest.GetResponse().Dispose() } catch [System.Net.WebException] { if ($_.Exception.Status -eq [System.Net.WebExceptionStatus]::TrustFailure) { # We ignore trust failures, since we only want the certificate, and the service point is still populated at this point } else { # Write-Warning $_.Exception.Message } } catch { # Write-Warning $_.Exception.Message } if (($webRequest.ServicePoint.Certificate) -and ($webRequest.ServicePoint.Certificate.Handle -ne 0)) { if ($ReturnCertificate) { # Write-Output $webRequest.ServicePoint.Certificate } else { $IssuerCN = $webRequest.ServicePoint.Certificate.Issuer.Split(', ',[System.StringSplitOptions]::RemoveEmptyEntries)[0].Split('=')[1] $SubjectCN = $webRequest.ServicePoint.Certificate.Subject.Split(', ',[System.StringSplitOptions]::RemoveEmptyEntries)[0].Split('=')[1] $ValidFrom = $webRequest.ServicePoint.Certificate.GetEffectiveDateString() $ValidTo = $webRequest.ServicePoint.Certificate.GetExpirationDateString() Write-Host "certificate.IssuerCN=$IssuerCN" Write-Host "certificate.SubjectCN=$SubjectCN" Write-Host "certificate.ValidFrom=$ValidFrom" Write-Host "certificate.ValidTo=$ValidTo" } $webRequest.ServicePoint.Certificate.Dispose() } [Net.ServicePointManager]::ServerCertificateValidationCallback = $null
  11. 1 point
    As an MSP we also manage a number of customer patching cycles, this entails a number of servers needing to be placed into SDT individually for a customer across a number of there groups, with some of our customers this means 60+ servers at a time. (devices can be spread across several groups & not all devices within each said group will be patched at the same time, so setting at the group level is out). Can we please have the function of being able to select a group and then a number of individual devices from that group (+sub-group) at the same time - ideally being able to see a list of devices contained with group (+ sub-group) and have checkboxes alongside them so that multiple selections can be made at once. This will make life a lot easier and faster for such scenarios.
  12. 1 point
    In addition to the above request and being able to use 'checkboxes' alongside devices under groups to multi-select numerous individual devices and place them into SDT at the same time, (consider windows server patching). I would also like to have the ability to place multiple devices into SDT based upon 'custom properties' (tags), this will help with various scenarios within cloud/hybrid environments where dynamic grouping does not. We are now able to set alert rules based upon custom properties (tag's), can we get the same with SDT?
  13. 1 point
    I like the time out idea and would like to have that applied not just to SNMP trap event sources but to all event sources. A similar thing can happen with Windows event logs where an event log repeats but is actually the same incident.