Archived community.zenoss.org | full text search
Skip navigation
Currently Being Moderated

Dev chat 04/29/2010

VERSION 1 
Created on: Apr 30, 2010 9:50 AM by Matt Ray - Last Modified:  Apr 30, 2010 9:53 AM by Matt Ray

9:53:21 AM mrayzenoss: themactech: docs/DOC-5857  I'm writing a tutorial for SSH ZenPacks around OS X monitoring

9:53:38 AM themactech: great news

9:53:49 AM venturaville: any ideas about what format the start time in fetchRRDValue is?

9:54:05 AM mrayzenoss: the .1 version just models the status page data

9:54:35 AM themactech: I have figured out how to do custom labels in the status page for different device classes

9:55:01 AM themactech: just need to figure out how to add custom data fields and I can make custom status pages for any device class

9:55:31 AM themactech: you can make a custom schema at the device root, and substitute the labels in the status page with such a value

9:55:48 AM themactech: for example, most of the gear I monitor does not have a service tag number

9:56:05 AM themactech: so I make a custom schema called cCustomTagHeader

9:56:35 AM themactech: i set its default value to "Service Tag #" at the root of the device tree

9:57:39 AM themactech: When I create a device class "my great dev", I can set the default cCustomTagHeader value to "Firmware revision" and for that device class the status page will read that instead of "Service tag number"

9:58:17 AM themactech: Now I need to know how to add extra fields to the database, in the same class as the "comments" field

9:58:46 AM themactech: I do NOT for this want to make the field only applicable to a specific device class, as many have suggested in the forums.

9:59:13 AM themactech: I want these fields to be usable by all devices, and I will customize their function via customized headers

9:59:34 AM themactech: So how do I add fields like the comment field?

9:59:44 AM themactech: BTW I will have a look at your apple stuff

9:59:54 AM themactech: thanks for making that available

10:00:44 AM mrayzenoss: themactech: why don't you post that in the zenoss-dev forum and I'll try to get someone to answer that.

mrayzenoss has changed the topic to: Zenoss Developers are here (10:00:53 AM)

10:01:13 AM twm1010: Is there a topic?

10:01:21 AM themactech: Ok I will, but this IRC session has been my gold mine so far (crosses fingers)

10:01:31 AM mrayzenoss: ummm…

mrayzenoss has changed the topic to: Zenoss Developers are here: Alpha #2 is out! (10:01:42 AM)

10:01:47 AM mrayzenoss: how's that?

10:02:07 AM themactech: I will later have to go thru the ZenPacks that add stuff for specific device classes but for this, its not what I'm looking for

10:02:12 AM mrayzenoss: dgarcia_at_zenos is our developer on call today, he's fairly new so be gentle

10:02:24 AM themactech: just that in the session 2 weeks ago I got more answers than trolling thru the forums in 3 months

10:04:11 AM themactech: Plus, if I can get a few generic fields into the database,  I can do a very simple write-up on how to model data to it, and how to customize the status page skin so any user can very easily customize the status page to suit any gear.  Would make life easier for a lot of newbies like me

10:04:59 AM twm1010: themactech: this chatroom is most definitely a goldmine, how often do you get to work with developers eh?

10:05:33 AM themactech: 3 of them were answering my questions last time, I felt like a diva celebrity

10:05:51 AM themactech: almost bought a chiwawa with a diamond necklace

10:06:32 AM themactech: Sadly I haven't had the time to work on Zenoss much in the last 2 weeks so my barrage won't be so nasty this time

10:07:49 AM themactech: I really want to know how to add a few fields to the database, that's the last piece I need to do this write up.

10:08:03 AM themactech: If I can't get that info in the next hour I'll post it in the dev forums

10:08:06 AM themactech: and weep

10:08:14 AM twm1010: heh, i'm back to it after a 3 month hiatus

10:08:45 AM themactech: I spend most of my free time at the office on it, but haven't had much free time in last 2 weeks

10:08:57 AM themactech: we mostly monitor apple gear and xsans

10:09:50 AM venturaville: so I'll throw the first punch ... I need an example of how to pass the correct time type to getRRDValue or fetchRRDValue.. time and datetime don't seem to make it choke on marshalling types

10:09:57 AM venturaville: 'now-14d' doesn't work either

10:12:04 AM ptom: anyone know what function I can use to post values to custom schemas/properties. this is at the device level.

10:12:54 AM themactech: You want to set custom schemas values programatically?

10:13:15 AM ptom: i am trying something like this: node._setProprty("cValue", value)

10:13:29 AM themactech: I would like to know that myself

10:13:50 AM rocket: venturaville did you use fetchRRDValue(dp,start=time.time()-129600)

10:15:26 AM ptom: also, is there a way I could make this custom field searchable?

10:15:27 AM rocket: ptom: did you try  node._setProperty("cValue", value, type='int')

10:15:50 AM ptom: i did not, it's a string value

10:15:55 AM ErikRose: What would cause an SNMP data point to test fine but toss an 'Error reading value for "ssSwapOut" on ...' in practice?

10:16:04 AM mrayzenoss: ptom: searchable where?

10:16:24 AM ptom: searchable from the search box

10:16:30 AM mrayzenoss: ptom: in 3.0

10:16:46 AM ptom: excellent

10:16:55 AM themactech: ErikRose, does the SNMPGet on that OID always return an integer?

10:16:56 AM dgarcia_at_zenos: you will not be able to use search unless that field added to the index

10:17:02 AM rocket: type='string'

10:17:28 AM ptom: heh, thanks, I will give it a try

10:17:45 AM ErikRose: themactech: snmpwalk gives me "UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0 kB"

10:18:19 AM ErikRose: It always does. But I haven't got a single successful datum gathered in practice.

10:18:29 AM ganiman: mrayzenoss: when will 3.0 be released?  the latest I am seeing is 2.5.2

10:18:52 AM themactech: do you get a rrd item for your datapoint?

10:19:10 AM ErikRose: themactech: Where would that be hiding?

10:19:36 AM themactech: let me fire up my vw zenoss and check

10:19:45 AM ErikRose: I appreciate it!

10:20:40 AM venturaville: rocket: have tried variations on that ... though it looks getRRDValue() works using 'now-14d' as the start and AVERAGE function ... it is just fetchRRDValue() that does not work...

10:22:20 AM ErikRose: themactech: If you mean "am I getting an .rrd file on disk for the datapoint", the answer is no.

10:22:38 AM mrayzenoss: ganiman: we're on alpha #2 right now.  Figure 3 or 4 more alphas and a few betas

10:22:40 AM ErikRose: My assumption is that one doesn't get created until the first successful collection.

10:23:14 AM themactech: Erik, look in /usr/local/zenoss/zenoss/perf/Devices/MyDeviceOrIP/

10:23:14 AM ganiman: mrayzenoss: sounds good - my organization has been looking for an improved search function in zenoss for years

10:23:22 AM ErikRose: themactech: Yep, that's where I looked.

10:23:31 AM ErikRose: (See just above.)

10:23:40 AM venturaville: getRRDValue() does not seem to like using MAX as the function, only MAXIMUM

10:23:53 AM venturaville: though I have no idea how to fetch multiple RRD values without going straight to the RRDs now

10:23:55 AM themactech: Now when you try to create your datapoint do not test with snmpwalk but with snmpget

10:24:01 AM ErikRose: k

10:24:02 AM venturaville: (from a single datapoint)

10:24:06 AM themactech: snmpwalk will fetch a whole oid branch

10:24:13 AM themactech: you want the specific oid

10:24:20 AM themactech: sometimes adding a .0 at end fixes it

10:24:32 AM ErikRose: I did try the .0 thing; still waiting 5 minutes to see...

10:24:33 AM ganiman: mrayzenoss: any chance that 3.0 will have support for variable oids?  We monitor thousands of devices here, many of which have variable oids and zenoss currently cannot collect data from these variable oids unless we manually update a template every time an oid changes

10:24:33 AM mrayzenoss: ganiman: it will be a pluggable api, so you can add new search providers.

10:24:55 AM mrayzenoss: ganiman: I don't believe that's been added

10:25:08 AM ganiman: mrayzenoss: 3.1!

10:25:12 AM mrayzenoss:

10:25:19 AM mrayzenoss: 3.1 is reporting

10:25:51 AM ErikRose: themactech: Sure enough, snmpget works with .0, breaks otherwise. Hopefully my events console will reflect the same good fortune imminently...

10:26:25 AM themactech: snmpwalk is great for discovery but not to test datapoint OIDs

10:26:37 AM ErikRose: *is enlightened.*

10:26:56 AM themactech: Good for you

10:27:16 AM themactech: I'm bummed I haven't had any luck with my question, I WANT MY MONEY BACK!!! lol

10:27:36 AM mrayzenoss: theacolyte: dgarcia_at_zenos told me he was looking at the code

10:27:36 AM ganiman: mrayzenoss: just to give an example of what I mean - we have wifi access points which are managed through a single device (a zone director).  We can add/remove/change SSIDs to some or all of the hundreds of access points from a single interface.  When we do that, the OID for the SSID is "generated" (something random) and zenoss templates must be changed each time this happens.  It can also happen when the director reboots, which tends to be a lot of w

10:28:17 AM themactech: was that theacolyte reply for me, a misclick?

10:28:28 AM mrayzenoss: ErikRose: yeah, that's a poorly advertised "feature" in 6.2.4 in the Admin Guide

10:28:29 AM bbibeault: For those that are interested in the 3.0 Zenoss Alpha (currently a Zenoss QA Test Day around that alpha in #zenoss-testing)

10:28:29 AM bbibeault: Some of the things updated in Alpha irc://irc.freenode.net/#2 - the device details screen has been completely changed from Alpha 1, and now contains more functionality as well as a newer look and feel.  Please offer whatever feedback you have on this.

10:29:25 AM ErikRose: mrayzenoss: The enlightenment?

10:29:50 AM ptom: when trying to update the custom field I am getting an error: __call__() got an unexpected keyword argument 'type'

10:29:58 AM mrayzenoss: ganiman: yeah, I may be looking at that in the next couple of weeks, planning on writing a AirPort Extreme ZenPack at some point and handling the DHCP tables dynamically

10:30:12 AM mrayzenoss: ganiman: since I know those OIDs jump around too

10:31:04 AM themactech: you're becoming quite the Apple Fan Boy, great news for me

10:31:20 AM mrayzenoss: themactech: just because that's the stuff I have lying around

10:31:35 AM themactech: I downloaded your ZenPack, looking at some of it now

10:31:46 AM mrayzenoss: themactech: after my MacBook and AirPorts, I'm doing DD-WRT, Wii and XBox

10:31:52 AM ganiman: mrayzenoss: that would be great - we have a few different device models which have oids that jump around, so any support for this would be most welcome

10:32:15 AM themactech: Yeah, because you really need to be alerted on those critical Wii failures

10:32:24 AM ErikRose: *chortles.*

10:32:45 AM mrayzenoss: themactech: I'm writing up the 0.1 version here: docs/DOC-5859

10:32:56 AM mrayzenoss: still writing it as we speak

10:32:58 AM themactech: BTW, I found an open source unix daemon to monitor APC UPS's over USB, for the consumer models

10:33:01 AM themactech: works great

10:33:05 AM mrayzenoss: cool

10:33:13 AM themactech: someone could make a ZenPack for consumers

10:34:03 AM themactech: for those models

10:41:43 AM mrayzenoss: did everyone catch the blog post about Alpha testing and the survey?  We're giving away an iPad for participating

10:42:02 AM mrayzenoss: and speaking of 3.0, we're planning on adding ePub as a documentation format

10:42:44 AM ptom: Ipads ARE blendable. just an FYI

10:44:53 AM ptom: is there a section in the api where I can find the _setProperty() function?

10:48:21 AM mrayzenoss: ptom: it's in the epydoc: docs/DOC-5801

10:48:31 AM bbibeault: Also, alpha-level documentation has just been posted to the zenoss-testing forums.  Please use this to help you with any 3.0 questions that may arise.  Also, any feedback on this documentation would be helpful, and can help us focus on certain areas if needed before launch.

10:48:40 AM bbibeault: message/48233

10:49:09 AM dgarcia_at_zenos: ptom, ZenPropertyManager is where you want to look

10:49:49 AM ptom: ty

10:54:04 AM ptom: So I can use this _setProperty() function to add values to a custom schema at the device level, correct?

10:57:27 AM themactech: you can set custom schema default values at any point of the device hierarchy from the GUI as well

10:58:22 AM ptom: I set up the schema at the /device level, now I am trying to script values into these properties.

10:58:22 AM themactech: mrayzenoss, you can play with this line in your OS X ZenPack: `curl -s 'https://selfsolve.apple.com/Warranty.do?serialNumber='$TheSer'&country=USA&fullCountryName=United%20States'`

10:58:30 AM themactech: where $TheSer is your serial number

10:58:42 AM themactech: pulls alot of juicy info from Apple's web site

10:59:16 AM mrayzenoss: hmm… sounds like a good addition for around .8 in my tutorial series

10:59:43 AM themactech: thats how I get warranty status info, and the model name you get from that is much better than what system profiler gives you, MacBook 4,1 doesnt mean much

10:59:49 AM themactech: but MacBook late 2009 does

10:59:57 AM ptom: also, is there a way to assign values to these custom properties using a rest call?

11:00:07 AM themactech: and is what is used in Apple's GSX service tool

11:00:45 AM mrayzenoss: system_profiler makes it super easy to pull stuff from the CLI

11:00:47 AM themactech: I saw someone post the URL syntax to pull same data from Dell

11:00:51 AM mrayzenoss: system_profiler SPHardwareDataType | grep 'Serial Number (system)'

11:00:58 AM themactech: Yeah, I use that too

11:01:21 AM themactech: thats how i get the serial number so I can query Apple's site for warranty expiration and coverage type

11:01:23 AM mrayzenoss: so what does it mean when it's empty?

11:01:39 AM themactech: Try the above command with the serial number from your machine

11:01:48 AM themactech: btw that is from a OS X shell

11:02:06 AM themactech: in linux curl is not installed by default on some flavors

11:02:21 AM themactech: maybe wget will obtain similar results

11:02:45 AM themactech: type the line above as is in your OS X terminal substituting your serial numberç

11:02:51 AM mrayzenoss: I did… nothing

11:03:11 AM venturaville: works for iphones too apparently

11:03:51 AM mrayzenoss: ahh, got it

11:04:09 AM mrayzenoss: that's handy stuff

11:04:30 AM mrayzenoss: I'll roll it into my tutorial later, after I have modeling and monitoring done

11:04:32 AM SEJeff: themactech, I do something similar with the dell site

11:04:37 AM SEJeff: Do you want the url?

11:05:01 AM mrayzenoss: SEJeff: how about bundle it in a ZenPack

11:05:15 AM themactech: specially for a modeler, and I really want to implement warranty coverage tracking into Zenoss, I think that should be in a SNMP agent

11:05:18 AM SEJeff: mrayzenoss, We don't use that in zenoss... We use that in an internal tool

11:05:20 AM themactech: I have the URL somewhere

11:05:27 AM SEJeff: which gets some data from zenoss, but not much

11:05:29 AM themactech: the hard part is writing it into a modeler

11:05:54 AM mrayzenoss: SEJeff: you can plug it into a zLink or something, themactech uses it for alerting when warrantees are going to expire

11:06:03 AM SEJeff: http://support.dell.com/support/topics/global.aspx/support/my_systems_info/details?c=us&cs=555&l=en&s=biz&servicetag=<YOUR_SERVICE_TAG_HERE>

11:06:08 AM themactech: this way when you add an Apple or Dell device, a lot of info would be added automatically

11:06:22 AM SEJeff: mrayzenoss, Thats quite clever

11:06:34 AM themactech: I want to have a field in the Zenoss database for warranty expiration, and have thresholds set on that

11:06:41 AM SEJeff: mrayzenoss, That kind of functionality should be in zenoss by default

11:06:48 AM themactech: so Zenoss sends an event when, say 1 month left on coverage

11:07:03 AM SEJeff: Sure

11:07:24 AM themactech: most manufacturers will not let you extend a warranty after it has expired, and most clients do NOT track that, this would be a very appreciated feature for them

11:07:46 AM vbundi: hey I'm about to install ZenOSS for the first time... am I best to use native packages so the update manager can maintain the install?  What is the point of the 'Stack installer' bin type install

11:07:51 AM mrayzenoss: SEJeff: by default is a tall order, I agree that it would be a valuable addition to the DellMonitor ZenPack

11:07:57 AM themactech: and has a service provider, if we don't warn them of warranty expiration, they actually blame us for it

11:08:15 AM themactech: even though it should be on them to track that

11:08:18 AM twm1010: interesting, are you talking about tracking x-serves here? client workstations?

11:08:25 AM mrayzenoss: vbundi: the stack installer contains all your dependencies and handles upgrades the best.  I recommend it for new users

11:09:01 AM themactech: i am working on making ZenPacks for Xserves, Clients, and Promise RAIDS (basically the whole Apple Xsan ecosystem)

11:09:23 AM vbundi: mrayzenoss: so when I want to update, do I just run a new stack installer?  In a system like ubuntu, I would have thought that the native packages would be taken care of by a PPA or something

11:09:27 AM themactech: but i won't be able to post them on community as my employer is paying my salary to do this

11:10:59 AM twm1010: xserves and clients sounds fairly useful

11:11:16 AM SEJeff: themactech, Why don't you ask them and try?

11:11:17 AM twm1010: err, xserves and promise

11:11:33 AM twm1010: vbundi: you just run the latest stack installer

11:11:44 AM mrayzenoss: vbundi: yes, you can just run the stack installer again and it will upgrade the install in place.  And yes, I'm working on inclusion in Debian and Ubuntu

11:12:01 AM SEJeff: mrayzenoss, wrong channel

11:12:05 AM themactech: We sell service contracts to monitor Xsans, if we make the zenoss stuff we work on public, our competitors could use our work to try and compete with us on these contracts

11:12:22 AM themactech: Not gonna happen

11:12:25 AM SEJeff: However since you already work well on Fedora and do most development on CentOS, would it make any since to try to get into fedora?

11:12:33 AM SEJeff: themactech, Makes sense.

11:12:34 AM vbundi: twm1010, mrayzenoss: thanks

11:12:39 AM mrayzenoss: SEJeff: I'm working on all fronts

11:12:41 AM themactech: but some stuff that is not Mac specific I will post

11:12:50 AM SEJeff: themactech, sounds great

11:13:16 AM themactech: That is why I would like to seperate the warranty tracking from my Apple stuff, I would like to make a nice and clean ZenPack that gives you warranty tracking

11:13:30 AM themactech: but I am still lacking in a lot of technical areas

11:13:31 AM SEJeff: themactech, That would be very handy

11:13:46 AM themactech: just learning python

11:13:57 AM themactech: finding that following python scripts is rather complex

11:14:03 AM twm1010: it'd be nice if there was asset lifecycle in there too, with accompanying reports

11:14:24 AM twm1010: purchase date, etc...

11:14:39 AM themactech: the modularity of the language is great feature, but it makes tracking down code a pain, as routines import from routines that import from routines...

11:14:57 AM themactech: Yeah I agree, an inventory function would be sweet

11:15:09 AM davidX-: a ton of my 1gbps and 2gbps interface interface perf graphs seem hosed, is this a 32 bit vs 64 bit counter issue in 2.5.2?

11:15:19 AM twm1010: well it already does some inventory, a few more attributes and some simple accompanying reports would be killer for me

11:15:26 AM twm1010: i suppose i could code it myself at some point

11:15:30 AM themactech: as it is, some engineers at my firm are using the zenoss console to look up info on gear instead of parsing thru the Spreadsheet or databases they made

11:16:18 AM themactech: I do very complete layouts with locations down to the room number, added all serial numbers, so by navigating thru the zenoss console they can quickly get down to any specific device info they need

11:16:26 AM twm1010: It's one thing at a time for me, right now, its understanding traps from my routers and voice gateways

11:16:34 AM themactech: so the use zenoss even though they have no interest whatsoever in SNMP monitoring

11:17:27 AM SEJeff: themactech, I hijack zenoss for the xmlrpc stuff

11:17:47 AM SEJeff: And have internal django apps talk to it via xmlrpc to do things such as get a list of hosts as json to feed to jquery-autocomplete

11:17:47 AM themactech: Since you have an HTTP server, you could also make a folder to store purchase invoices, code their name using a DeviceID and make a Zlink to pull them from the status page

11:18:38 AM themactech: I love zenoss for how open it is but I lack some of the skills to get to where I want to be on that customisation stuff

11:18:59 AM themactech: for example, I haven't been able to get Zenoss Core working with LDAP on Ubuntu server 9.1

11:19:42 AM themactech: if I get this done, next step is to setup a calendar server on the machine, also tied to the LDAP, and try to setup alert rules and maintenance windows to reference the calendar server

11:20:03 AM rmatte: themactech: really? what guide are you using?

11:20:17 AM themactech: that way clients can make scheduling for alerts in a calendar server, and also make maintenance windows the same way

11:20:27 AM twm1010: at least you know how to code, i'm clueless in that department

11:20:29 AM themactech: I'm surprised the Zenoss folks haven't done this yet

11:20:50 AM themactech: i know shell scripting, zero html knowledge, just learning some python

11:20:57 AM themactech: its a struggle

11:21:48 AM themactech: To me it seems like a natural symbiosis for Zenoss to have use a calendar server to do anything related to scheduling

11:21:56 AM SEJeff: themactech, I wrote a django app for scheduling downtime with find as you type host name (or per-location) support

11:22:03 AM SEJeff: And am trying to get work to let me GPL it

11:22:04 AM SEJeff: really hard

11:22:19 AM twm1010: sounds pretty cool guys

11:22:28 AM themactech: sound great, but to drive in the point of my lack of knowledge, I have no idea what django is....

11:22:40 AM themactech: (wears the dunce hat)

11:22:50 AM themactech: (Sits in corner in shame)

11:23:02 AM SEJeff: themactech, A python web programming framework. It is like RubyOnRails but in python and not as sucky

11:23:09 AM SEJeff: http://www.djangoproject.com/

11:23:48 AM rmatte: themactech: this is the best guide for setting up LDAP on Ubuntu: docs/DOC-2510

11:23:56 AM themactech: even if I could become a python god overnight I still lack knowledge in the plumbing of Zenoss to be able to do the useful scripting I need

11:23:59 AM rmatte: there are some crucial steps in that guide which aren't listed in any others

11:24:05 AM themactech: I have tried it, I can't get it to work

11:24:17 AM rmatte: you tried it with that guide?

11:24:20 AM themactech: yes

11:24:29 AM SEJeff: themactech, Have you tried playing with the dmd?

11:24:36 AM rmatte: You did the part where it says "Link python-ldap components to Zenoss's site packages path"?

11:24:51 AM SEJeff: That is how you will learn it. Use find and grepdir. They will help you a lot. The guys here who work for zenoss are extremely helpful as well

11:24:56 AM rmatte: I have LDAP working perfectly in Ubuntu

11:25:02 AM themactech: from what I can tell, most of my problems come from the fact that all the recent plugins are made for python 2.6 and zenoss uses 2.4

11:25:05 AM rmatte: so it's definitely possible

11:25:14 AM rmatte: and that's the guide I used

11:25:15 AM themactech: which version of ubuntu are you using

11:25:22 AM rmatte: 8.4 at the moment

11:25:36 AM themactech: and did you download the plugin versions specified in the guide or the more recent versions

11:25:46 AM rmatte: the ones in the guide

mrayzenoss has changed the topic to: Zenoss Alpha #2 is Available:  docs/DOC-5854 (11:25:52 AM)

11:26:06 AM rmatte: though the more recent ones should work as well

11:26:11 AM mrayzenoss: gotta run, meeting

Comments (0)