On 09 Feb 2016, at 11:37, Mike Stupalov mike@observium.org wrote:
you have MIB files for this D-Link models? I see you use DGS-1210-28P-CX..
D-Link is quite good at putting all their files up; e.g for that model - see
http://ftp.dlink.ru/pub/Switch/DGS-1210-28P/SNMP
or the relevant URL for your country. Not all of those are part of Observium.
Couple of things
- you want to check them with snmptranslate/smilint - as most:
- contain non ASCII chars that make net-snmp choke.
- contain malformed comments or reserved words like ‘end’ and ‘revision’ in places that confuse net-snmp.
So easiest is to move the declaration to line 1; remove the first comment block (at least the lines with Revision and Revision End) - and padd out any lines with an extra ‘-‘ if they give complaints. And do a quick iconv or regex to remove any non-ascii and \r characters.
- D-Link unfortunately is a bit messy - and reuses the same structure; but ‘under’ each switch its OID.
So the sysPortDescString for the various switches is a unique OID whose tail end is identical - but the product path is not!. I use below script for things like this.
Dw.
searching for sysPortDescString in DES-1210-10-AXME .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-10axme.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.14.1.14.1.3
searching for sysPortDescString in DES-1210-10MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-10me.des-1210-10mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.14.1.1.14.1.3
searching for sysPortDescString in DES-1210-26MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-26me.des-1210-26mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.16.1.1.14.1.3
searching for sysPortDescString in DES-1210-28-AX .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28ax.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.5.1.14.1.3
searching for sysPortDescString in DES-1210-28-AXME .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28axme.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.1.14.1.3
searching for sysPortDescString in DES-1210-28ME-B2 .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28ME.des-1210-28ME-B2.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
searching for sysPortDescString in DES-1210-28MEbx .iso.org.dod.internet.private.enterprises.d-link.dlink-products.dlink-DES1210SeriesProd.des-1210-28me.des-1210-28mebx.companySystem.sysPortDescriptionTable.sysPortDescriptionEntry.sysPortDescString .1.3.6.1.4.1.171.10.75.15.2.1.14.1.3
#!/bin/sh # quick and dirty search all MIBS for some entry; ignore parse # errors. # (c) 2008, dirkx(at)apache(dot)org - under the ASLv2. MIT or any # BSD license. # STR=${1:-"sysPortDescString”}
MIBDIRS=${MIBDIRS:-`pwd`}
DIRS=`find "${MIBDIRS}/mibs" -type d | while read DIR; do /bin/echo -n :$DIR; done`
find mibs -type f | xargs grep -l "$STR" | sed -e "s|.*/||" | while read FILE do echo searching for $STR in $FILE snmptranslate -Of -Ib -M+$DIRS -m"$FILE" "$STR" 2> /dev/null || echo not found snmptranslate -On -Ib -M+$DIRS -m"$FILE" "$STR" 2> /dev/null || echo not found echo done