[Xymon] Need client for Mac hosts

Jeremy Laidman jeremy at laidman.org
Sat Dec 23 04:02:34 CET 2023


The only binary that the Xymon client actually requires for all data
collecting features is the logfetch program. This is only used for three
things: 3) to get the log messages since the last time it was run (and keep
track of its position in the log files) for MSGS entries in analysis.cfg,
2) to get file and dir information for "FILE" and "DIR" entries in
analysis.cfg, and 1) to get the timestamp for the [clock] section of the
client data message. If you don't need any of these features, then you can
simply copy the xymonclient.sh and xymonclient-darwin.sh scripts into place
and run the former, which executes the latter. Almost.

What else would be missing is the xymon binary, which is used by
xymonclient.sh to send the client data message it has constructed, to the
Xymon server. You have a few options here. You could copy "xymon" onto your
Mac, and setup the environment appropriately, and it would probably work
just fine. Or instead use one of the
<https://xymon.sourceforge.io/xymon/help/xymon-tips.html#noinstall>bash,
perl or telnet scripts that emulate the Xymon client binary.

The xymond-rclient.sh script mentioned by others would probably do what you
want also. It essentially copies the client .sh files through an SSH
connection, every time it runs. To be honest, I don't think this is the
best option - the rclient script is really only a last resort for
unsupported platforms that run UNIXy operating systems, as it's a massive
and not well-structured script that probably has bugs galore, probably uses
far more resources than it deserves, and also seems to uncover
idiosyncrasies in some versions of UNIX that trip it up. Feel free to give
it a go, and if it works, let the author (yours truly) know so Darwin/MacOS
can be added to the "works on" list.

There is an alternative to rclient that might work for you. Let me know if
you're interested. It's a lot leaner and simpler (the comments, error
handling and argument parsing are probably more lines than the core code
that does the work). I call it a "thin client" because that it's a Xymon
client with the absolute bare minimum. It was specifically written so that
no foreign (to the OS) binaries are required, and it provides most of the
client features using only shell scripts and built-in OS binaries.

This "thin client" script essentially runs the xymonclient-<OS>.sh script,
captures the output, appends a [clock] section, prepends the Xymon message
header for a client message, and that's it. How you get the output to the
Xymon server is then up to you. You could send the output to a file, and
collect it periodically using rsync/scp/NFS. If you want your clock
timestamp to be useful, you probably want to run it in real time, so from
your Xymon server you can do "ssh <host> /usr/local/bin/xymon-thin-client |
xymon 127.1 @" - probably run from a tasks.cfg entry. In your case, you
just need the thin client script and the xymonclient-darwin.sh script on
your Mac, plus an ssh key in ~xymon/.ssh/authorized_keys, then with a
suitable task on your Xymon server you're done.

Just to re-state the caveat: because logfetch is not used, what's missing
is log message collection and file/dir data required for MSGS, FILE and DIR
checks in analysis.cfg.

Cheers
Jeremy


On Fri, 22 Dec 2023 at 18:38, Brian Scott <bscott at bunyatech.com.au> wrote:

> Hi Kris,
>
> There's more to it than that. You need something to run it regularly and
> you need some way of getting the output back to your server.
>
> The stock standard way is like any other unix/linux system. You have a
> program called xymonlaunch running full time on the system. At regular (5
> minute) intervals and under control of clientlaunch.cfg, it loads up the
> environment from the config file (xymonclient.cfg) and kicks in the
> xymonclient.sh script into action. This script does various pieces of
> housekeeping and runs the architecture dependant script (in your case
> xymonclient-darwin.sh). It then runs the binary file xymon to send the
> results back to your server.
>
> As Ralph has pointed out, you can avoid running xymonlaunch and schedule
> the process using cron or whatever apple uses for running jobs these days.
> These is no systemd or init.d processing on a Mac. It's much uglier 😛.
>
> The other approach is to use the rclient script.
>
> Assuming you have ssh access to the Mac, you set up a certificate based
> ssh login on the Mac. On your server you then schedule regular running of
> the rclient script. This works through each required system and runs the
> script as a sequence of commands over ssh, capturing the output and handing
> it back to the main xymon processes. The advantage of this is that your
> don't need any binaries on the target system, just an ssh login. Setting up
> rclient and ssh keys could be a little daunting if you're not familiar with
> that sort of thing.
>
> If you have a Mac laptop with Apple's developer tools installed, you could
> build your own binaries. Download the whole xymon source archive, unpack it
> and run 'configure --client'. Follow the prompts to install the result in
> an out of the way place (I use /usr/local/xymon). When built, copy that
> whole directory over to your target machine. Apple have recently changed
> processors from intel to arm so you need to make sure you are building
> compatible binaries. This approach is going to be much safer than trusting
> some random person on the internet to give you pre-compiled binaries to run.
>
> Alternatively, installing via homebrew would be relatively painless and a
> little more trustworthy. It's actually quite simple and well designed.
>
> Hope some of this helps,
>
> Brian
> On 22/12/2023 1:57 pm, IO Support wrote:
>
> So I copied xymonclient-darwin.sh onto a Mac laptop I have and just ran it
> from a terminal to see if it would do anything.  It did display a lot of
> great info in the terminal, but there's nothing in the script that dumps
> the output to a tmp file or points to a Server address.  So I pulled a few
> more files from the Sourceforge /client/ folder in the hopes that the
> script would look for the xymonclient.cfg and send some data to the
> server.  Running the xymonclient.sh script tries to do somethings, but it's
> looking for things in paths that don't exist since I'm not actually
> installing anything, I'm just manually running a script.  I'm obviously
> missing some vital piece of this puzzle.  Does anyone have some simple
> instructions or point me at whatever it is I'm missing here?  I find it
> hard to believe there isn't someone out there that's got this figured out
> already.
>
> Thank You,
> Kris Springer
>
>
> On 12/20/23 12:47 AM, Ralph M wrote:
>
> As far as autostart goes, I have a bunch of clients running from cron.
> Forget runclient.sh, just start the main xymonclient.sh every five
> minutes.  That is, you don't need to fight with systemd or init.d to get
> the client to report.
>
> Ralph Mitchell
>
>
> On Wed, Dec 20, 2023 at 1:27 AM Brian Scott <bscott at bunyatech.com.au>
> wrote:
>
>> A few years ago I built a client for a Macos server. The target server is
>> quite a few versions of macos old so probably not what you are looking for.
>> I just built it on my Mac laptop then bundled it all up in a tar file and
>> copied it over and did some installation. My current laptop is an M2 so I
>> doubt I could do it again right now.
>>
>> As I recall the xymonclient-darwin script was mostly fine. There was a
>> little entertainment with the way Apple manages it's disks these days. I've
>> attached what looks like the changes I made as a diff.
>>
>> I'm not at $work at the moment so I can't check exactly what else I did.
>> I must have done something to get it to auto start at boot. Probably didn't
>> keep any notes either. I'll try to have a look next time I'm there.
>>
>> Also quite possible that rclient will work well. There's some fixes that
>> I had to do recently to account for some dropped commands from rclient when
>> talking to FreeBSD systems so that may also be relevant.
>>
>> Cheers,
>>
>> Brian
>>
>>
>> On 19/12/2023 3:58 pm, Ralph M wrote:
>>
>> I would guess the script in the repository is the latest version.  I'm
>> not a Mac user, so take that as an opinion, not a fact.  As part of the
>> main distribution, any changes would have been rolled into that file.
>>
>> Ralph Mitchell
>>
>>
>>
>>
>> On Mon, Dec 18, 2023 at 11:04 PM IO Support <support at ionetworkadmin.com>
>> wrote:
>>
>>> Where would I obtain a semi-current xymonclient-darwin.sh script?  I
>>> will try to use the one I found in the latest branch on Sourceforge that JC
>>> has been working on, but it was last edited in 2015.
>>> https://sourceforge.net/p/xymon/code/HEAD/tree/branches/4.x-master/client/xymonclient-darwin.sh
>>>
>>> Does anyone have anything a little more current that they use?
>>>
>>> Thank You,
>>> Kris Springer
>>>
>>>
>>>
>>> On 12/14/23 12:21 PM, Ralph M wrote:
>>>
>>> Would this do it for you??
>>>
>>>      http://tools.rebel-it.com.au/xymon-rclient/
>>>
>>> Nothing to install on the remote host, other than SSH keys.  It fires
>>> the appropriate xymonclient-[OS].sh script down the SSH connection and
>>> collects the results.  I don't know anything about Macs, but the
>>> xymonclient-darwin.sh script is for MacOS X so that might be a good
>>> starting point.
>>>
>>> Ralph Mitchell
>>>
>>>
>>>
>>> On Thu, Dec 14, 2023 at 2:38 AM I/O Network Administration <
>>> support at ionetworkadmin.com> wrote:
>>>
>>>> Anyone have a modern xymon-client script or app that will run on Mac?
>>>> I'm aware of the macport method, but that's a large footprint and heavy
>>>> handed solution to the simple need of collecting performance data and
>>>> uploading it to the Server.
>>>>
>>>>
>>>>
>>>> Thank You,
>>>> Kris Springer​
>>>> I/O Network Administration
>>>> https://www.ionetworkadmin.com
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Xymon mailing list
>>>> Xymon at xymon.com
>>>> http://lists.xymon.com/mailman/listinfo/xymon
>>>>
>>>
>>>
>> _______________________________________________
>> Xymon mailing listXymon at xymon.comhttp://lists.xymon.com/mailman/listinfo/xymon
>>
>> _______________________________________________
>> Xymon mailing list
>> Xymon at xymon.com
>> http://lists.xymon.com/mailman/listinfo/xymon
>>
>
> _______________________________________________
> Xymon mailing listXymon at xymon.comhttp://lists.xymon.com/mailman/listinfo/xymon
>
>
> _______________________________________________
> Xymon mailing list
> Xymon at xymon.com
> http://lists.xymon.com/mailman/listinfo/xymon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20231223/226b7344/attachment.htm>


More information about the Xymon mailing list