XYMONCLIENT.CFG

Section: File Formats (5)
Updated: Version 4.3.30: 4 Sep 2019
Index Return to Main Contents

 

xymonclient.cfg - Xymon client environment variables

 

Xymon programs use multiple environment variables beside the normal set of variables. For the Xymon client, the environment definitions are stored in the ~xymon/client/etc/xymonclient.cfg file. Each line in this file is of the form NAME=VALUE and defines one environment variable NAME with the value VALUE.

 

The IP-address used to contact the Xymon server. Default: Chosen when the Xymon client was compiled.

List of IP-addresses of Xymon servers. Data will be sent to all of the servers listed here. This setting is only used if XYMSRV=0.0.0.0.

The port number for used to contact the Xymon server. Default: 1984.

The Xymon client top-level directory. Default: The $XYMONCLIENTHOME setting inherited from the "runclient.sh" script which starts the Xymon client.

The directory for the Xymon clients' own log files. Default: $XYMONHOME/logs

Directory used for temporary files. Default: $XYMONHOME/tmp/

Whitespace-separated filesystem types to include in the client's disk (and, where supported, inode) reports even when the client's defaults would exclude them. Types are matched as exact df type tokens (on macOS, mount attributes are matched as well; on AIX, matching is against the vfs column of mount(8)). The default exclusions and the mechanism are per-OS, and clients not listed here do not use the variable. Including remote filesystems also requires XYMONCLIENT_FS_DF_LOCAL_ONLY=no.
On Linux: types normally excluded as pseudo (nodev) filesystems. Defaults to zfs virtiofs tmpfs — real local filesystems that merely happen to be flagged nodev. Set to "" to restore the historical behaviour of dropping every nodev type. The noisy tmpfs mounts (/run, /run/lock, /run/user/N) are filtered server-side by the CLASS=linux block in analysis.cfg, not here.
On FreeBSD: names types from the default df exclude set (nullfs cd9660 procfs devfs linprocfs fdescfs autofs, passed to df as one comma-joined -tno<list> argument) to surface again. Empty by default. The inode report additionally drops zfs and tmpfs, whose inode counts carry no signal (zfs has no inode limit; FreeBSD tmpfs reports a constant itotal of 2^31-1); naming them here restores them to the inode report as well.
On NetBSD: names types from the default df exclude set (kernfs procfs cd9660 null ptyfs, passed to df as -tno<list>) to surface again. Empty by default. The ptyfs exclusion is an upgrade-visible change; set XYMONCLIENT_FS_INCLUDE_TYPES="ptyfs" to report it again. The inode report additionally drops zfs (no fixed inode pool) and rows without usable inode accounting; naming zfs here restores it to the inode report as well. NetBSD tmpfs is kept in both reports — its inode counts are memory-derived, so they can signal exhaustion.
On OpenBSD: names types from the default df exclude set (kernfs procfs cd9660, passed to df as -tno<list>) to surface again. Empty by default. The inode report additionally drops rows without usable inode accounting (OpenBSD df -i reports those as itotal 0, not as "-"). OpenBSD tmpfs is kept in both reports, for the same reason as on NetBSD.
On macOS: values are mount attributes as well as types; the defaults drop nobrowse and read-only mounts, and the inode report skips apfs. Empty by default. The "root data" volume — the one holding every user file, which Catalina and later flag nobrowse — is exempt from those two default drops, so it is still reported; an explicit XYMONCLIENT_FS_EXCLUDE_TYPES entry that matches it (for instance "apfs") still removes it. Including "nobrowse" switches that default drop off entirely — devfs and the autofs map come back too — so pair it with XYMONCLIENT_FS_EXCLUDE_TYPES="devfs autofs".
On AIX: names types from the default exclude set (procfs ahafs namefs autofs cdrfs) to surface again. Empty by default. AIX df cannot exclude by type, so the disk report drops excluded types by mount point, from the vfs column of mount(8); the inode report is not covered, its own guard already skipping rows without inode accounting.

Whitespace-separated filesystem types (attributes as well, on macOS) to exclude in addition to the client's default exclusions. Matching is on the exact df type token (on AIX, on the vfs column of mount(8)). If a type appears in both include and exclude settings, exclusion takes precedence on every OS.
On Linux: nodev types (overlay, fuse, ...) are already excluded by default, so an effective entry names a type that is not a nodev default — a device-backed type, or a specific FUSE subtype such as fuse.sshfs that the bare nodev fuse default cannot match. Defaults to iso9660 squashfs fuse.snapfuse — read-only images reported 100% full by design (snaps mount as squashfs, or as fuse.snapfuse where snapd falls back to FUSE); none is a nodev type, so they must be named here. Set to "" to monitor these too. The full default exclusion list is the nodev entries in /proc/filesystems (rootfs is always kept, and the XYMONCLIENT_FS_INCLUDE_TYPES above are kept back), together with the explicit XYMONCLIENT_FS_EXCLUDE_TYPES above. When /proc/filesystems is not readable the dynamic nodev exclusions are disabled; the explicit XYMONCLIENT_FS_EXCLUDE_TYPES and the local-only df -l behaviour remain active. The script does not fall back to deriving exclusions from mount(8), so it is not a drop-in replacement for distro patches (such as Debian's) that do.
On FreeBSD: adds types to the df -tno<list> exclude set (default nullfs cd9660 procfs devfs linprocfs fdescfs autofs). Empty by default. tmpfs and mfs are deliberately kept in the disk report — RAM-backed capacity is real and fills up — so name them here to drop them.
On NetBSD: adds types to the df -tno<list> exclude set (default kernfs procfs cd9660 null ptyfs). Empty by default. tmpfs is kept in both reports, so name it here to drop it.
On OpenBSD: adds types to the df -tno<list> exclude set (default kernfs procfs cd9660). Empty by default. tmpfs is kept in both reports, so name it here to drop it.
On macOS: excludes types or attributes on top of the defaults. Empty by default. It is applied unconditionally, so it wins over both an include entry and the "root data" exemption above. Useful entries include lifs (external FAT/exFAT/NTFS media, mounted through LiveFiles on Ventura and later) and fusefs (macFUSE volumes mounted "-o local"). Beware attributes most mounts carry: excluding "local" drops everything.
On AIX: adds types to the default exclude set (procfs ahafs namefs autofs cdrfs). Empty by default. Tokens are matched against the vfs column of mount(8) — AIX df names no filesystem types — and applied to the disk report only.

Linux, FreeBSD, NetBSD, OpenBSD, macOS and AIX; other clients ignore it. Set to yes (the default) to pass -l to df and report local filesystems only. AIX df has no -l; it is given -T local, which selects the same set. That flag needs AIX 7.1, which is the client's floor. Its inode df (/usr/sysv/bin/df) is given -l, that command's spelling of the same thing, since guarding one report and not the other would leave the same mount able to wedge the run.
With no on AIX, a remote filesystem whose server does not supply all the statistics is reported as df writes it — blanks rather than values — and is dropped from the inode report, which needs a usable count. Set to no to report remote filesystems as well. Invalid values produce a warning and use the safe default. On macOS, where df is invoked per path, the same effect is achieved by keeping only mounts flagged "local" (MNT_LOCAL, what df -l selects elsewhere). With no, a stale or hard-blocked remote mount can wedge df indefinitely (an uninterruptible D-state wait): the client run never finishes, so the whole host goes purple — no data for all metrics, not just disk — until the mount recovers or the host reboots. On Linux, FreeBSD, NetBSD, OpenBSD and macOS this is bounded by the remote-df sentinel described below (XYMONCLIENT_FS_REMOTE_DF_BUDGET). AIX has no sentinel, so no carries that risk in full there.
A df that exits non-zero with no output (a real error, not a hang) is marked failed (yellow) rather than left empty, so a failed filesystem probe is not silently reported green. This does not cover the hang above: a wedged df never exits.

Linux, FreeBSD, NetBSD, OpenBSD and macOS. Seconds to wait for the remote df probe before giving up for this cycle. Defaults to 30, capped at 3600; empty, zero or non-numeric values fall back to the default.
This is a poll budget, not a kill timeout. A df blocked on a dead server sits in uninterruptible D-state, where even SIGKILL is ignored, so it cannot be killed and is deliberately left running: the next cycle finds it through a pidfile in $XYMONTMP and reports the mounts unavailable instead of starting a second one. At most one df is ever outstanding per report, so nothing accumulates, and collection resumes by itself once the server answers.
Only the remote set runs behind the sentinel. The local set is collected separately with df -l, which never stats a remote server, so local filesystems stay fresh throughout an outage instead of being lost with the host.
While a remote mount is unreachable its row is reported as 100% full, which turns that one filesystem red rather than letting it vanish from the report — an absent filesystem reads as green. Note that this row also reaches the RRD, so the disk graph shows 100% used (and a used-space figure of one block) for the duration of the outage.
The sentinel needs a writable probe directory and uses $XYMONTMP. If $XYMONTMP is itself on a hard-blocking filesystem the sentinel reports the remote mounts unavailable rather than touching it, since even testing such a path blocks. Keep $XYMONTMP on local storage. Symbolic links are not resolved, for the same reason.

Linux, FreeBSD, NetBSD, OpenBSD and macOS. The filesystem types whose stat() hard-blocks when the server is unreachable, and which are therefore collected behind the sentinel. The default names each OS's own spellings, e.g. nfs nfs4 cifs smb3 ceph glusterfs fuse.glusterfs lustre afs on Linux and nfs nfs4 smbfs cifs afpfs webdav ceph glusterfs lustre afs on macOS. Types are matched as exact type tokens, so fuse.glusterfs is compared literally rather than as a pattern. Only consulted with XYMONCLIENT_FS_DF_LOCAL_ONLY=no, since df -l keeps these mounts out entirely otherwise -- except on macOS, whose df has no such flag and where the mount list is filtered instead.

Full path to the xymon(1) client program. Default: $XYMONHOME/bin/xymon.

Many extension scripts expect a series of environment variables to point at various system utilities. These are included in the file when the client is built.

 

Some environment variables are inherited from the "runclient.sh" script which launches the Xymon client:

The hostname of the local system. Default: Taken from "uname -n".

The hostname of the local system, with dots replaced by commas. For compatibility with Big Brother extension scripts.

The operating system of the local system, in lowercase. Default: taken from "uname -s".

The top-level directory for the Xymon client. Default: The location of the "runclient.sh" script.

 

xymon(7)

 

NAME
DESCRIPTION
SETTINGS
INHERITED SETTINGS
SEE ALSO

This document was created by mandoc, using the manual pages.