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.
- XYMSRV
- The IP-address used to contact the Xymon server. Default: Chosen when the
Xymon client was compiled.
- XYMSERVERS
- 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.
- XYMONDPORT
- The port number for used to contact the Xymon server. Default: 1984.
- XYMONHOME
- The Xymon client top-level directory. Default: The $XYMONCLIENTHOME
setting inherited from the "runclient.sh" script which starts
the Xymon client.
- XYMONCLIENTLOGS
- The directory for the Xymon clients' own log files. Default:
$XYMONHOME/logs
- XYMONTMP
- Directory used for temporary files. Default: $XYMONHOME/tmp/
- XYMONCLIENT_FS_INCLUDE_TYPES
- 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.
- XYMONCLIENT_FS_EXCLUDE_TYPES
- 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.
- XYMONCLIENT_FS_DF_LOCAL_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.
- XYMONCLIENT_FS_REMOTE_DF_BUDGET
- 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.
- XYMONCLIENT_FS_REMOTE_HARDBLOCK_TYPES
- 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.
- XYMON
- Full path to the xymon(1) client program. Default:
$XYMONHOME/bin/xymon.
- Commands
- 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:
- MACHINEDOTS
- The hostname of the local system. Default: Taken from "uname
-n".
- MACHINE
- The hostname of the local system, with dots replaced by commas. For
compatibility with Big Brother extension scripts.
- SERVEROSTYPE
- The operating system of the local system, in lowercase. Default: taken
from "uname -s".
- XYMONCLIENTHOME
- The top-level directory for the Xymon client. Default: The location of the
"runclient.sh" script.
- NAME
- DESCRIPTION
- SETTINGS
- INHERITED SETTINGS
- SEE ALSO