XYMONPROXY(8)
๐ XYMONPROXY ๐
okay bestie, so this is xymonproxy, straight outta the System Manager's Manual, section 8. lowkey one of the most useful little gremlins in the whole Xymon family. let's get into it ๐ซถ
โจ NAME โจ
xymonproxy โ the Xymon message proxy ๐
๐ฆ SYNOPSIS ๐ฆ
xymonproxy [options] --server=$XYMSRV
๐ธ DESCRIPTION ๐ธ
okay so xymonproxy(8) is a proxy that forwards Xymon messages from one server to another. when do you even need it? classic scenario: your clients are sitting behind a firewall and literally cannot send their status messages to the Xymon server directly. that's the vibe, and this is the fix. ๐งฑ
and ngl, xymonproxy serves three purposes, and it's giving main character energy on all three:
- it's a regular proxy server. clients that can't connect directly to the Xymon servers can still send their data through it. and yes, it's optimized for handling status messages, but bestie it will forward all types of messages โ including notes- and data-messages. no gatekeeping here ๐
- it's a buffer. if a ton of clients all try to send status messages simultaneously (peak load chaos ๐ญ),
xymonproxysmooths that out. it can absorb messages very quickly, but it queues them up internally and forwards them to the Xymon server at a reasonable pace. queen of time management, fr fr โจ - it merges messages. small
"status"messages get merged into bigger"combo"messages. this can dramatically decrease the number of connections that need to go fromxymonproxyto the Xymon server. but heads up ๐ซฃ โ the merging of messages causes"status"messages to be delayed for up to 0.25 seconds before being sent off to the Xymon server. tiny price, huge payoff.
๐ OPTIONS ๐
--server=SERVERIP[:PORT][,SERVER2IP[:PORT]]โ tells it the IP-address and optional portnumber where incoming messages are forwarded to. the default portnumber is1984, the standard Xymon port number. if you've set up the normal Xymon environment, you can just use--server=$XYMSRV. up to 3 servers can be specified, and incoming messages are sent to all of them โ except"config","query"and"download"messages, which go to the LAST server only. and if you have Xymon clients sending their data via this proxy, note that the clients will receive their configuration data from the LAST of the servers listed here. ๐ this option is required.--listen=LOCALIP[:PORT]โ specifies the IP-adress wherexymonproxylistens for incoming connections. by default,xymonproxylistens on all IP-addresses assigned to the host. if no portnumber is given, port1984will be used. ๐ซ--timeout=Nโ the number of seconds after which a connection is aborted due to a timeout. default: 10 seconds. โฐ--report=[PROXYHOSTNAME.]SERVICEโ if given, this option causesxymonproxyto send a status report every 5 minutes to the Xymon server about itself (yes, self-reporting, we love an introspective icon โจ). if you've set the standard Xymon environment, you can use--report=xymonproxyto havexymonproxyreport its status to a"xymonproxy"column in Xymon. the default for PROXYHOSTNAME is the$MACHINEenvironment variable, i.e. the hostname of the server runningxymonproxy. scroll to REPORT OUTPUT below for what's actually in that report ๐ซถ--lqueue=Nโ the size of the listen-queue, aka where incoming connections can queue up before being processed. this should be large to accommodate bursts of activity from clients. default: 512. ๐--daemonโ run in daemon mode, i.e. detach and run as a background process. this is the default. โจ--no-daemonโ runsxymonproxyas a foreground process. ๐ง--pidfile=FILENAMEโ the location of a file containing the process-ID of thexymonproxydaemon process. default:/var/run/xymonproxy.pid.--logfile=FILENAMEโ sends all logging output to the specified file instead ofstderr.--log-detailsโ logs details (IP-address, message type and hostname) to the logfile. this can also be enabled and disabled at run-time by sending thexymonproxyprocess aSIGUSR1signal. ๐--debugโ enable debugging output. ๐
๐ REPORT OUTPUT ๐
if enabled via the --report option, xymonproxy will send a status message about itself to the Xymon server once every 5 minutes.
the status message includes the following information:
- Incoming messages โ the total number of connections accepted from clients since the proxy started. the
"(N msgs/second)"is the average number of messages per second over the past 5 minutes. - Outbound messages โ the total number of messages sent to the Xymon server. note that this is probably smaller than the number of incoming messages, since
xymonproxymerges messages before sending them. โ๏ธ - Incoming - Combo messages โ the number of
"combo"messages received from a client. - Incoming - Status messages โ the number of
"status"messages received from a client.xymonproxyattempts to merge these into"combo"messages. the"Messages merged"is the number of"status"messages that were merged into a combo message, and the"Resulting combos"is the number of"combo"messages that resulted from the merging. ๐งฌ - Incoming - Other messages โ the number of other messages (
data,notes,ack,query, ...) messages received from a client. - Proxy resources - Connection table size โ the number of connection table slots in the proxy. this measures the number of simultaneously active requests that the proxy has handled, so it gives you an idea about the peak number of clients that the proxy has handled simultaneously. ๐
- Proxy resources - Buffer space โ the number of KB memory allocated for network buffers.
- Timeout details - reading from client โ the number of messages dropped because reading the message from the client timed out. ๐
- Timeout details - connecting to server โ the number of messages dropped, because a connection to the Xymon server could not be established.
- Timeout details - sending to server โ the number of messages dropped because the communication to the Xymon server timed out after a connection was established.
- Timeout details - recovered โ when a timeout happens while sending the status message to the server,
xymonproxywill attempt to recover the message and retry sending it to the server after waiting a few seconds. this number is the number of messages that were recovered, and so were not lost. ๐ฉน - Timeout details - reading from server โ the number of response messages that timed out while attempting to read them from the server. note that this applies to the
"config"and"query"messages only, since all other message types do not get any response from the servers. - Timeout details - sending to client โ the number of response messages that timed out while attempting to send them to the client. note that this applies to the
"config"and"query"messages only, since all other message types do not get any response from the servers. - Average queue time โ the average time it took the proxy to process a message, calculated from the messages that have passed through the proxy during the past 5 minutes. this number is computed from the messages that actually end up establishing a connection to the Xymon server, i.e. status messages that were combined into combo-messages do not go into the calculation โ because if they did, it would reduce the average time, since it's faster to merge messages than send them out over the network. ๐ค
if you think the numbers do not add up, here is how they relate. ๐งฎ
the "Incoming messages" should be equal to the sum of the "Incoming Combo/Status/Page/Other messages", or slightly more because messages in transit are not included in the per-type message counts. ๐ง
the "Outbound messages" should be equal to the sum of the "Incoming Combo/Page/Other messages", plus the "Resulting combos" count, plus "Incoming Status messages" minus "Messages merged" (this latter number is the number of status messages that were NOT merged into combos, but sent directly). the "Outbound messages" may be slightly lower than that, because messages in transit are not included in the "Outbound messages" count until they have been fully sent. ๐
๐จ SIGNALS ๐จ
SIGHUPโ re-opens the logfile, e.g. after it has been rotated. ๐SIGTERMโ shut down the proxy. โ๏ธSIGUSR1โ toggles logging of individual messages. ๐
๐ SEE ALSO ๐
and that's the whole page, bestie ๐ this one's from Xymon Version 4.3.30, dated 4 Sep 2019. go forth and proxy, you've absolutely got this ๐ซถโจ
๐ฆ where this page comes from
- debian bookworm: xymon 4.3.30-1+b2 ยท GPL-2.0-only WITH OpenSSL exception
- debian trixie: xymon 4.3.30-4 ยท GPL-2.0-only WITH OpenSSL exception
- ubuntu jammy: xymon 4.3.30-1build2 ยท GPL-2.0-only WITH OpenSSL exception
- ubuntu jammy: xymon 4.3.30-1ubuntu0.1 ยท GPL-2.0-only WITH OpenSSL exception
- ubuntu noble: xymon 4.3.30-2build3 ยท GPL-2.0-only WITH OpenSSL exception
- ubuntu noble: xymon 4.3.30-2ubuntu0.1 ยท GPL-2.0-only WITH OpenSSL exception
- ubuntu questing: xymon 4.3.30-4
- ubuntu resolute: xymon 4.3.30-5 ยท GPL-2.0-only WITH OpenSSL exception
- ubuntu stonking: xymon 4.3.30-6 ยท GPL-2.0-only WITH OpenSSL exception
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms