My company is looking to use Xymon in production. It's my job to operationalize it: test it, write about its behavior, document any issues, and create documentation for our run teams.
I've found a behavior of the Xymon server's service that I'm trying to understand: It maintains the host name to OSType mapping until the service is restarted. For example:
Edit the server's hosts.cfg file. Insert a non-existent server'server01' and give it a fake/real IP.
Edit the server's client-local.cfg file. Create several entrieswithin for different OS types:
a. Linux
b. Win32
c. AIX
d. Etc.
Make sure that each section for the OSType contains a unique stringor command. You will use this to identify which OSType the Xymon server service identified 'server01' as.
Wait for 'server01' to show up on the web site. It won't have anystatus data to report yet. This is OK. NOTE: Do not restart the Xymon service.
Find a computer (real/VM) to pretend to be 'server01'. It doesn'tmatter which OS the client has, just as long as you are comfortable running custom scripts upon it.
From 'server01', issue this command, replacing OSType and HostClasswith your favorite values:
a. "client server01.<OSType> <HostClass>"
If you're lucky, the Xymon server will respond back with theappropriate unique string for your OSType from the client-local.cfg file.
Now, change OSType and rerun the command from the same clientmachine. For example, if you first used "win32", now use "linux" instead.
a. "client server01.win32 <HostClass>"
b. "client server01.linux <HostClass>"
Did the Xymon server respond with the unique string from thenew/second OSType? I betcha it didn't. It's still responding with the unique string from the first OSType you used, right?
Edit the server's hosts.cfg file. Insert a non-existent server 'server02' and give it a fake/real IP.
Wait for 'server02' to appear in the web page.
Log on to the server as the user 'xymon' and issue a rename command:
a. ./server/bin/xymon 127.0.0.1 "rename server01 server02"
Wait for the web page to update, showing status information for 'server02', but not 'server01'.
Now, issue the following commands from the client, but use the new/second OSType for both:
a. "client server01.<OSType> <HostClass>"
b. "client server02.<OSType> <HostClass>"
Did the Xymon server respond to 'server01' with the original/first OSType you used? When I performed these steps, I got back the unique string for the original/first OSType, but I was expecting to get back the new/second OSType.
Did the Xymon server respond to 'server02' with the new/second OSType you used? When I performed these steps, I got back the unique string for the new/second OSType.
Edit the server's hosts.cfg file. Remove 'server01' and 'server02'.
Log on to the server as the user 'xymon' and issue a rename commands:
a. ./server/bin/xymon 127.0.0.1 "remove server01"
b. ./server/bin/xymon 127.0.0.1 "remove server02"
Wait for the web site to stop showing server01 and server02.
Edit the server's hosts.cfg file.
a. Insert a non-existent server 'server01' and give it a fake/real IP.
b. Insert a non-existent server 'server02' and give it a fake/real IP.
Wait for 'server01' and 'server02' to appear in the web page.
Now, issue the following commands from the client, but use the new/second OSType for both:
a. "client server01.<OSType> <HostClass>"
b. "client server02.<OSType> <HostClass>"
Did the Xymon server respond to 'server01' with the original/first OSType you used? When I performed these steps, I got back the unique string for the original/first OSType, but I was expecting to get back the new/second OSType.
Did the Xymon server respond to 'server02' with the new/second OSType you used? When I performed these steps, I got back the unique string for the new/second OSType.
Log on to the Xymon server and restart the Xymon service.
Go back through the steps above, you'll see that after a fresh restart, the Xymon service will parse the "client" string, discover the OSType, and maintain an OSType <--> Hostname association until the service is restarted. Is this the expected behavior? I can see how this behavior would get in the way of architecting and rapid testing of a client-local.cfg file with multiple OSType, HostClass, and Hostname entries.