[Xymon] Xymon script for linux
Japheth Cleaver
cleaver at terabithia.org
Mon Sep 23 20:14:08 CEST 2019
On 9/23/2019 4:46 AM, Bruce Ferrell wrote:
> On 9/22/19 6:31 PM, Jeremy Laidman wrote:
>> On Sat, 21 Sep 2019 at 10:30, Bruce Ferrell <bferrell at baywinds.org
>> <mailto:bferrell at baywinds.org>> wrote:
>>
>>
>> I'm curious how you propose actually using sar data in a client
>> message. On my system /var/log/sa is 44M of text data.
>>
>>
>> Yeah, I could have been clearer in describing what I had in mind.
>>
>>
>> vmstat (procps) is already used and feeds rrd on the server via
>> the client message; which is a MUCH more compact, long term storage
>> format (The rrds for the same system are
>> only 13M).
>>
>>
>> If "sar [some options]" can produce equivalent output to (say)
>> "vmstat 300 2", then it's likely to take the same amount of storage
>> and bytes transmitted. But it has the added benefit that the same sar
>> output from Solaris and AIX and Linux can all be parsed by the same
>> code on the Xymon server. So the one client-side command to create
>> [vmstat] in the client message will be universal across a wide range
>> of OSes. If we can replace [vmstat] in this way, we may be able to do
>> the same for [netstat] and [iostat] and a few others (by using sar
>> with other options). We might also introduce an equivalent to
>> [iostatdisk] and other things that don't yet exist in some OSes'
>> client messages.
>>
> Interesting idea... but sa doesn't work like that at all.
>
> sar can collect individualized sets of stats, but the default the cron
> jobs that come in the sysstat package run sa to collect all system
> stats at "cron interval". Then it has to be sliced and diced after the
> fact.... It's semi non-trivial to extract "just the latest update
> changes for the stat set you want" to transmit the the server. Not
> that it can't be done, but it's a pain.
>
> SO "just drop sar on... " become "just drop sar and modify it's
> defaults". If sar is already there and I'm the admin, I'm going to be
> a wee touch miffed if someone messes with my system wide, long term
> stats collection or creates a duplicate, parallel, space gobbling
> collection dataset at the client.
That's basically how the version I had spec'd out operated. It would be
a set of parallel sadc processes writing out to temp files, get turned
into textual output by 'sar', and then payloaded up in the client message:
> $SADC -F ${SADCOPTS} -L ${SADCFREQ}
$XYMONTMP/xymon_sadc.$MACHINEDOTS.$$; $SAR -A -f
$XYMONTMP/xymon_sadc.$MACHINEDOTS.$$ >
$XYMONTMP/xymon_sar.$MACHINEDOTS.$$; mv
$XYMONTMP/xymon_sar.$MACHINEDOTS.$$ $XYMONTMP/xymon_sar.$MACHINEDOTS; rm
-f $XYMONTMP/xymon_sadc.$MACHINEDOTS.$$
Another option would be to transmit just the sadc binary datafile, but
it seemed likely that could vary in structure among differing releases,
while sar-processing scripts and tools that can interpret the text feed
are pretty numerous.
As a side benefit, having per-minute sar output for the 5 minutes prior
to an event occurring in the client message could be useful for postmortems.
The downside, of course, is that the text output is indeed huge. Even if
it's transmitted compressed, it's still greatly bumping up your resource
utilization. That suggests that the benefits of having full text output
in the client message might be outweighed by the space savings in just
having clients send direct "sar" data messages back themselves.
>
> vm/io/whatever stat collects a sample and sends just that sample. All
> storage is at the xymon server MUCH cleaner even if adding the
> rare/exotic new thing is harder when they come up. BTW, sar on OS X
> is a way different beast too, so it violates the premise that the same
> code works. but *stat works out of the box.
Of course OS X has to be different :)
-jc
More information about the Xymon
mailing list