Erik,

I tried and get these:

# this time, I did not remove the manully added hard disks
[EMAIL PROTECTED] bin]$ zenmodeler run -d target --collect UCDHardDiskMap
INFO:zen.ZenModeler:loading collector plugins
from:/opt/zenoss/Products/DataCollector/plugins
WARNING:zen.ZenModeler:no cmd plugins found for target
INFO:zen.ZenModeler:snmp collection device target
INFO:zen.ZenModeler:plugins: zenoss.snmp.UCDHardDiskMap
WARNING:zen.ZenModeler:no portscan plugins found for target
INFO:zen.SnmpClient:snmp client finished collection for target
INFO:zen.ApplyDataMap:no change detected
INFO:zen.ZenModeler:stopping...

# I removed the manually added hard disks, but still nothing changed
[EMAIL PROTECTED] bin]$ zenmodeler run -d target --collect UCDHardDiskMap
INFO:zen.ZenModeler:loading collector plugins
from:/opt/zenoss/Products/DataCollector/plugins
WARNING:zen.ZenModeler:no cmd plugins found for target
INFO:zen.ZenModeler:snmp collection device target
INFO:zen.ZenModeler:plugins: zenoss.snmp.UCDHardDiskMap
WARNING:zen.ZenModeler:no portscan plugins found for target
INFO:zen.SnmpClient:snmp client finished collection for target
INFO:zen.ApplyDataMap:no change detected
INFO:zen.ZenModeler:stopping...

You can't get any thing from that OID is mostly because some distros
do not compile that MIB into NET-SNMP. I use the script from:
http://spacepants.org/blog/net-snmp-linux-diskio-collector

Here is some sample of the output:
[EMAIL PROTECTED] bin]$ snmpwalk -v1 -cpublic target 1.3.6.1.4.1.2021.13.15.1.1
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.2 = INTEGER: 2
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.3 = INTEGER: 3
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.4 = INTEGER: 4
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.5 = INTEGER: 5
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.6 = INTEGER: 6
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.7 = INTEGER: 7
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.8 = INTEGER: 8
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.9 = INTEGER: 9
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.10 = INTEGER: 10
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.11 = INTEGER: 11
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.12 = INTEGER: 12
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.13 = INTEGER: 13
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.14 = INTEGER: 14
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.15 = INTEGER: 15
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.16 = INTEGER: 16
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.17 = INTEGER: 17
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.18 = INTEGER: 18
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.19 = INTEGER: 19
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.20 = INTEGER: 20
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.21 = INTEGER: 21
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.22 = INTEGER: 22
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.23 = INTEGER: 23
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.24 = INTEGER: 24
UCD-SNMP-MIB::ucdExperimental.15.1.1.1.25 = INTEGER: 25
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.1 = STRING: "ram0"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.2 = STRING: "ram1"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.3 = STRING: "ram2"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.4 = STRING: "ram3"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.5 = STRING: "ram4"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.6 = STRING: "ram5"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.7 = STRING: "ram6"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.8 = STRING: "ram7"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.9 = STRING: "ram8"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.10 = STRING: "ram9"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.11 = STRING: "ram10"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.12 = STRING: "ram11"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.13 = STRING: "ram12"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.14 = STRING: "ram13"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.15 = STRING: "ram14"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.16 = STRING: "ram15"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.17 = STRING: "hda"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.18 = STRING: "hda1"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.19 = STRING: "hda2"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.20 = STRING: "hdd"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.21 = STRING: "fd0"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.22 = STRING: "md0"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.23 = STRING: "md1"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.24 = STRING: "md2"
UCD-SNMP-MIB::ucdExperimental.15.1.1.2.25 = STRING: "md3"
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.1 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.2 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.3 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.4 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.5 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.6 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.7 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.8 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.9 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.10 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.11 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.12 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.13 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.14 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.15 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.16 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.17 = Counter32: 37296255
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.18 = Counter32: 29184701
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.19 = Counter32: 681154
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.20 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.21 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.22 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.23 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.24 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.3.25 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.1 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.2 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.3 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.4 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.5 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.6 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.7 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.8 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.9 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.10 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.11 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.12 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.13 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.14 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.15 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.16 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.17 = Counter32: 238926840
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.18 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.19 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.20 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.21 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.22 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.23 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.24 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.25 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.1 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.2 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.3 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.4 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.5 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.6 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.7 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.8 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.9 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.10 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.11 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.12 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.13 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.14 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.15 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.16 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.17 = Counter32: 1045866
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.18 = Counter32: 722520
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.19 = Counter32: 1819261
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.20 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.21 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.22 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.23 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.24 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.5.25 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.1 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.2 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.3 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.4 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.5 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.6 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.7 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.8 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.9 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.10 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.11 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.12 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.13 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.14 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.15 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.16 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.17 = Counter32: 9980607
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.18 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.19 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.20 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.21 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.22 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.23 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.24 = Counter32: 0
UCD-SNMP-MIB::ucdExperimental.15.1.1.6.25 = Counter32: 0

And I just started with python. I've no idea how to debug the code.
I'll try.

Ian

On 1/23/07, Erik A. Dahl <[EMAIL PROTECTED]> wrote:

Ian,

That looks like the right idea.  Its zenmodeler that you need to run
to kick of a collection.  To debug your plugin do this:

zenmodeler run -d YOURBOX --collect UCDHardDiskMap

You can put break points in the code to see what's going on.  It
would be nice to get the drive name (like /dev/hda).  When I walk
that oid on my boxes I get nothing back. :(

-EAD


On Jan 22, 2007, at 3:40 AM, Ian Chen wrote:

> Erik,
>
> You mean something like this:
> Products/DataCollector/plugins/zenoss/snmp/UCDHardDiskMap.py
> ----
> from CollectorPlugin import SnmpPlugin, GetTableMap
> #from string import find
>
> class UCDHardDiskMap(SnmpPlugin):
>     """Map SNMP UCD-DISKIO-MIB sub-agent to HardDisk"""
>
>     maptype = "HardDiskMap"
>     modname = "Products.ZenModel.HardDisk"
>     relname = "harddisks"
>     compname = "hw"
>
>     snmpGetTableMaps = (
>         GetTableMap('diskIOEntry',
>                     '.1.3.6.1.4.1.2021.13.15.1.1',
>                     {
>                     '.2': 'id',
>                      }
>         ),
>     )
>
>     def process(self, device, results, log):
>         return
>         """collect snmp information from this device"""
>         log.info('processing UCD hard disks for device %s' %
> device.id)
>         getdata, tabledata = results
>         dtable = tabledata.get("diskIOEntry")
>         if not dtable: return
>         rm = self.relMap()
>         for oid, disk in dtable.items():
>             om = self.objectMap(disk)
>             #if om.id == "_Total": continue
>             #if find( om.id,"hd") != 0 and find(om.id ,"sd") != 0 :
> continue
>             om.id = self.prepId( om.id)
>             om.snmpindex = oid
>             rm.append(om)
>         return rm
> ----
>
> I managed to manually created a hda disk in ZMI. And I get the hda
> in Hardware tab.
> After I restarted zenperfsnmp from /About, the graph shows nan. And
> some time later,
> I see the graphic. But I can not get the harddisks added to
> Hardware page of a device
> automaitcally.
>
> Ian
>
> On 1/22/07, Erik A. Dahl <[EMAIL PROTECTED]> wrote: Not to easy to
> do.  You need to write a collector plugin to get the
> list of disks.  There are examples of this in the $ZENHOME/Products/
> DataCollector/plugins directory.
>
> -EAD
>
> On Jan 21, 2007, at 8:32 AM, Ian Chen wrote:
>
> > Hi Erik,
> >
> > I'm passing the SNMP request to external script to handle the data.
> > Is there any way to add the hard disks automatically?
> >
> > I tried the Zenoss-Plugins, but it shows no plugin is suported?
> > I'm running RHEL 4 ES x86 and Zenoss-Plugins 1.0.2 RPM for python
> 2.3
> >
> > Ian
> >
> > On 1/19/07, Erik A. Dahl <[EMAIL PROTECTED]> wrote: Net-SNMP disk io
> > mib is totally broken on every machine I have ever
> > tried :(
> >
> > -EAD
> >
> > On Jan 18, 2007, at 10:35 PM, Ian Chen wrote:
> >
> > > Hi Zenoss users,
> > >
> > > I'm hoping to get Linux disk IO graphed with SNMP just like for
> the
> > > Windows systems.
> > >
> > > I add a performacne template of HardDisk in /Device/Server/Linux
> > > just like in /Device/Server/Windows
> > > diskIONRead .1.3.6.1.4.1.2021.13.15.1.1.3
> > > diskIONWrite .1.3.6.1.4.1.2021.13.15.1.1.4
> > > diskIOReads .1.3.6.1.4.1.2021.13.15.1.1.5
> > > diskIOWrites .1.3.6.1.4.1.2021.13.15.1.1.6
> > >
> > > And Graphs:
> > > IO Bytes: diskIONRead_diskIONRead, diskIONWrite_diskIONWrite
> > > IO Counts: diskIOReads_diskIOReads, diskIOWrites_diskIOWrites
> > >
> > > Nothing show up, for the snmp index of the disks must be modeled.
> > >
> > > I copied the InformantHardDiskMap.py to UCDHardDiskMap.py in
> > > Products/DataCollector/plugins/zenoss/snmp/
> > > and make some modification, which look like:
> > > ----
> > > from CollectorPlugin import SnmpPlugin, GetTableMap
> > > #from string import find
> > >
> > > class UCDHardDiskMap(SnmpPlugin):
> > >     """Map SNMP UCD-DISKIO-MIB sub-agent to HardDisk"""
> > >
> > >     maptype = "HardDiskMap"
> > >     modname = "Products.ZenModel.HardDisk"
> > >     relname = "harddisks"
> > >     compname = "hw"
> > >
> > >     snmpGetTableMaps = (
> > >         GetTableMap('diskIOEntry',
> > >                     '.1.3.6.1.4.1.2021.13.15.1.1',
> > >                     {
> > >                     '.2': 'id',
> > >                      }
> > >         ),
> > >     )
> > >
> > >     def process(self, device, results, log):
> > >         return
> > >         """collect snmp information from this device"""
> > >         log.info('processing UCD hard disks for device %s' %
> > > device.id)
> > >         getdata, tabledata = results
> > >         dtable = tabledata.get ("diskIOEntry")
> > >         if not dtable: return
> > >         rm = self.relMap()
> > >         for oid, disk in dtable.items():
> > >             om = self.objectMap(disk)
> > >             #if om.id == "_Total": continue
> > >             #if find(om.id,"hd") != 0 and find(om.id ,"sd") != 0 :
> > > continue
> > >             om.id = self.prepId(om.id)
> > >             om.snmpindex = oid
> > >             rm.append(om)
> > >         return rm
> > > ----
> > >
> > > If I have Zenoss-Plugins installed in the same system, this plugin
> > > won't load.
> > > After I removed Zenoss-Plugins, the plugin loaed without problem.
> > > But nothing show in the target device's Hardware tab.
> > >
> > > I managed to manually created a hda disk in ZMI. And I get the hda
> > > in Hardware tab.
> > > After I restarted zenperfsnmp from /About, the graph shows nan.
> And
> > > some time later,
> > > I see the graphic.
> > >
> > > How can I make the modeler add the harddisks automatically? I
> can't
> > > add do them all
> > > manually?
> > > I know very little about Python/Zope.
> > >
> > > Thanks!
> > >
> > > Ian
> > >
> > >
> > > _______________________________________________
> > > zenoss-users mailing list
> > > [email protected]
> > > http://lists.zenoss.org/mailman/listinfo/zenoss-users
> >
> > _______________________________________________
> > zenoss-users mailing list
> > [email protected]
> > http://lists.zenoss.org/mailman/listinfo/zenoss-users
> >
> > _______________________________________________
> > zenoss-users mailing list
> > [email protected]
> > http://lists.zenoss.org/mailman/listinfo/zenoss-users
>
> _______________________________________________
> zenoss-users mailing list
> [email protected]
> http://lists.zenoss.org/mailman/listinfo/zenoss-users
>
> _______________________________________________
> zenoss-users mailing list
> [email protected]
> http://lists.zenoss.org/mailman/listinfo/zenoss-users

_______________________________________________
zenoss-users mailing list
[email protected]
http://lists.zenoss.org/mailman/listinfo/zenoss-users

_______________________________________________
zenoss-users mailing list
[email protected]
http://lists.zenoss.org/mailman/listinfo/zenoss-users

Reply via email to