Bill Howe writes:
Is anyone aware of a way to generate reports via the CLI that show, for example, a host's CPU average over the last 30 days?
I can get the data in graph form via the xymon web portal's "Metrics Reports" page, but need to gather this data point for a large number of hosts.
I also looked at the manpage for 'xymon', and xymondboard appears to gather current stats, but I didn't see a way to gather a date range.
It depends upon what you mean by "a host's CPU average over the last 30 days". Do you mean one number that's the 30 day average? 30 numbers that each show a 1 day average? Every 5 minute number for 30 days?
In any case, the likely answer is to use rrdfetch and pull the data directly from the rrd files. Do read the RESOLUTION INTERVAL section of the rrdfetch manpage. If you don't have your boundries correct you won't get the answers you're expecting. Note that you likely don't have 5 minute resolution going back anywhere near 30 days. (By default you'll likely have 2 hour resolution for that period.)
For example, to get a 24hr average for each of the last 30 days: TIME=$(date +%s) RRDRES=86400 rrdtool fetch la.rrd AVERAGE -r $RRDRES -e $(($TIME/$RRDRES*$RRDRES)) -s e-30d
Also note that you need to adjust the results. For example:
7.3520000000e+01 = .73520000000 1.0855666667e+02 = 1.0855666667