<br><div class="gmail_quote">On Tue, Apr 22, 2008 at 1:09 AM, Buchan Milne <<a href="mailto:bgmilne@staff.telkomsa.net" target="_blank">bgmilne@staff.telkomsa.net</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div>On Friday 18 April 2008 17:47:21 Robert Holden wrote:<br>
> I have noticed quite a bit of (unnecessary) redundancy when it comes to the<br>
> cisco templates.<br>
<br>
</div>Why do you think it is specific to cisco templates? E.g., the if_load template<br>
works just as well with any device that supports the RFC-standard IFMIB (e.g.<br>
the linux-openwrt template has the if_load test taken almost directly from a<br>
cisco device). The only differences are really how devices are named, and<br>
thus maybe default device patterns that should be ignored.<br>
<div></div></blockquote><div><br>Most of the equipment we are monitoring is cisco , as hobbit is used to monitor all our servers.  As a result, I do not have enough experience with SNMP as it relates to servers to answer your question.  As for RFC-standard IFMIB, you are right, all cisco devices should follow these standards, but these relate to Interfaces on the devices.  But having a static oid for all interfaces will not always work:<br>
<br>-------------------------------------------------------------------------------------------------------<br>ifSpeed [ifBps] (1.3.6.1.2.1.2.2.1.5) vs ifHighSpeed (<span class="modulecontentbold">1.3.6.1.2.1.31.1.1.1.15)<br>
</span><pre>   The range of ifSpeed is limited to<br>   reporting a maximum speed of (2**31)-1 bits/second, or approximately<br>   2.2Gbs.  SONET defines an OC-48 interface, which is defined at<br>   operating at 48 times 51 Mbs, which is a speed in excess of 2.4Gbs.<br>
   Thus, ifSpeed is insufficient for the future, and this memo defines<br>   an additional object: ifHighSpeed.<br><br>   The ifHighSpeed object reports the speed of the interface in<br>   1,000,000 (1 million) bits/second units.  Thus, the true speed of the<br>
   interface will be the value reported by this object, plus or minus<br>   500,000 bits/second.   [<span class="grey"><a href="http://www1.tools.ietf.org/html/rfc2233">RFC 2233</a>, 3.1.7]</span></pre><br>-------------------------------------------------------------------------------------------------------<br>
<span class="modulecontentbold">ifInOctets (</span>.1.3.6.1.2.1.2.2.1.10) vs ifHCInOctets (<span class="modulecontentbold">1.3.6.1.2.1.31.1.1.1.6)<br></span>i<span class="modulecontentbold">fOutOctets (</span><span class="modulecontentbold">1.3.6.1.2.1.2.2.1.16</span><span class="modulecontentbold">) vs ifHCOutOctets (</span><span class="modulecontentbold">1.3.6.1.2.1.31.1.1.1.10</span><span class="modulecontentbold">)</span><br>
<pre>   As the speed of network media increase, the minimum time in which<br>   a 32 bit counter will wrap decreases.  For example, a 10Mbs stream<br>   of back-to-back, full-size packets causes ifInOctets to wrap in<br>   just over 57 minutes; at 100Mbs, the minimum wrap time is 5.7<br>
   minutes, and at 1Gbs, the minimum is 34 seconds.  Requiring that<br>   interfaces be polled frequently enough not to miss a counter wrap<br>   is increasingly problematic.   [<span class="grey"><a href="http://www1.tools.ietf.org/html/rfc2233">RFC 2233</a>, 3.1.6]</span></pre>
As devmon polls data every 5 minutes, it probably should use the HC versions of counters when needed (Gb+ speeds).  Is there a transform for performing an IF statement/substitution?<br><br>Example: IF the ifSpeed > 20Mb, use ifHCInOctets instead of ifInOctets.<br>
<span class="modulecontentbold"></span><pre>   For interfaces that operate at 20,000,000 (20 million) bits per<br>   second or less, 32-bit byte and packet counters MUST be used.  For<br>   interfaces that operate faster than 20,000,000 bits/second, and<br>
   slower than 650,000,000 bits/second, 32-bit packet counters MUST<br>   be used and 64-bit octet counters MUST be used.  For interfaces<br>   that operate at 650,000,000 bits/second or faster, 64-bit packet<br>   counters AND 64-bit octet counters MUST be used. [<span class="grey"><a href="http://www1.tools.ietf.org/html/rfc2233">RFC 2233</a>, 3.1.6]</span>
</pre><br><br>Some tests, such as serial, fans & power have some differences from device to device.  At times an OID is not available (power/fans), other times, the information is only available under a different OID (serial).  So this creates some difference between templates (hence cisco-common vs cisco-switch in my previous email).<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><br>
> I have been able to reduce nearly all the cisco devices<br>
> down to two templates:  cisco-switch and cisco-common<br>
> I still have a few minor issues to deal with, but should have something to<br>
> post to the group in about a weeks time.  The biggest of these issues is<br>
> finding something in the specs "model" that is common to the cisco-switch<br>
> (2811, 4003, 5500, & 6506), that is not found in all the other devices.<br>
> Simularily, I would like to find something in the specs "model" that is<br>
> common to all other cisco devices (cisco-common).<br>
><br>
> note: Many switches are still able to use cisco-common (2900, 3500, 3550,<br>
> etc), so I probably have to come up with a better name for cisco-switch.<br>
<br>
</div>Well, the issue is that you shouldn't really distinguish features on a device<br>
based on the hardware model in the first place.<br>
<br>
If we stick to the Cisco topic, is a 6500 a switch? Is a 7600 a router? What<br>
if I put a better supervisor in the 6500 ? If I put a CSM blade into a 6500,<br>
or into a 7600, is one a load balancer and the other not?<br>
<br>
Moving on, if I run a RADIUS server (which supports the RADIUS MIB) on a HP<br>
ProLiant, is a Dell PowerEdge *not* a RADIUS server?<br>
<br>
So, yes, I think we need a new approach to:<br>
1)Which tests are done on a specific device<br>
2)Which tests are done by default on a device of a specific kind of hardware<br>
<div></div></blockquote><div><br>What about IOS vs CATOS, or differences between versions of IOS?  I have yet to come up with a better way to do this, but I thinking it will be along the lines of:<br>   1. SNMP Get manufacturer<br>
   2. SNMP Get hardware model<br>   3. SNMP Get OS & OS Version<br>   4. SNMP Get Software & Version ??<br>   5. Run appropriate tests<br><br>Unfortunately, this can mess up the nice & clean layout to the templates that devmon has now.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><br>
> I will see what I can find on your subinterfaces issue.<br>
<br>
</div>IMHO, if the device lies over SNMP, you should report it to the vendor, rather<br>
than workaround the problem in an SNMP manager.<br>
<div><br>
> I am also working on an idea (change to devmon) to allow for "default"<br>
> templates depending on vendor.<br>
<br>
</div>I would prefer that you discuss any design issues on the development list ...<br>
<div><div></div><div></div></div></blockquote><div><br>I just signed up for the devmon-devel list.<br>   <a href="https://lists.sourceforge.net/lists/listinfo/devmon-devel">https://lists.sourceforge.net/lists/listinfo/devmon-devel</a><br>
I will post my ideas for changes & templates to that list.<br><br>Robert</div></div>