SYMON(8) BSD System Manager's Manual SYMON(8)NAMEsymon — system monitor
SYNOPSISsymon [-dtuv] [-f filename]
DESCRIPTIONsymon is a lightweight system monitor that measures cpu, load, filesys‐
tem, interface, disk, memory, pf, pf queues, mbuf, proc and sensor sta‐
tistics every 5 seconds. This information is then spooled to symux(8) for
further processing.
symon has been designed to inflict minimal performance and security
impact on the system it monitors. symux(8) has performance impact pro‐
portional to the amount of streams it needs to manage. Ideally symux
should live on a different system and collect data from several symon
instances in a LAN.
By default, symon will drop privileges and chroot(2) to home of the symon
user. This behaviour is not strictly needed for the cpu, mem, mbuf, disk
debug and interface probes as these will work even when symon is started
as nobody.
The options:
-d Stop symon from becoming a daemon and show debug information on
stdout.
-f filename
Read configuration from filename instead of /etc/symon.conf.
-t Test configuration file and exit.
-u By default symon will chroot(2) into _symon user home directory.
The -u disables this behaviour.
-v Show version information.
CONFIGURATIONsymon obtains configuration data from /etc/symon.conf. The configuration
file contains monitor stanzas that define what resources should be moni‐
tored and to which symux(8) the information should be streamed to.
Multiple monitor statements are allowed. Whitespace, newlines and text
behind '#' are ignored. The format in BNF:
monitor-rule = "monitor" "{" resources "}" [every]
"stream" ["from" host] ["to"] host [ port ]
resources = resource [ version ] ["(" argument ")"]
[ ","|" " resources ]
resource = "cpu" | "cpuiow" | "debug" | "df" | "flukso" |
"if" | "io" | "load" | "mbuf" | "mem" | "pf" |
"pfq" | "proc" | "sensor" | "smart"
version = number
argument = number | name
every = "every" time
time = "second" | number "seconds"
host = ip4addr | ip6addr | hostname
port = [ "port" | "," ] portnumber
Note that symux(8) data files default to receiving data every 5 seconds.
Adjusting the monitoring interval will also require adjusting the associ‐
ated symux(8)datafile(s).
The pf probe will return data that is collected for the loginterface set
in /etc/pf.conf(5).
The Linux io, df, and smart probes support device names via id, label,
path and uuid.
The FreeBSD io, df, and smart probes support gpt names, ufs names, ufs
ids and paths.
The OpenBSD io probe supports device uuids.
EXAMPLE
Here is an example OpenBSD symon.conf that monitors cpu, memory, pf,
interfaces xl0/de0/lo0/wi0, disks wd[0-3]/cd[0-1], debug variables debug0
to debug19 and streams that information to localhost on port 2100.
monitor { cpu(0), mem, pf, if(xl0), if(de0),
if(lo0), if(wi0), io(wd0), io(wd1),
io(wd2), io(wd3), io(cd0), io(cd1),
io(ccd0), df(sd0a), df(sd0d), df(sd0e),
debug, proc(httpd) } stream to 127.0.0.1 2100
EXAMPLE
Here is an example Linux symon.conf that monitors cpu including iowait,
memory, load, interface eth0, io and df for a set of disks every 5 sec‐
onds. Smart data is to be collected every 60 seconds. Disks in the smart
and io statements are identified using ids, filesystem volumes in df
using labels.
monitor { smart(ata-Hitachi_HDS722020ALA330_JK1130ABABABAB),
smart(ata-Hitachi_HDS722020ALA330_JK1130ACACACAC),
} every 60 seconds stream to 192.168.0.2 port 2100
monitor { cpuiow(0), cpuiow(1), mem, if(eth0),
io(ata-Hitachi_HDS722020ALA330_JK1130ABABABAB),
io(ata-Hitachi_HDS722020ALA330_JK1130ACACACAC),
df(data_1),
df(data_2),
df(data_3),
df(home),
df(var),
load
} stream to 192.168.0.2 port 2100
SIGNALS
SIGHUP Causes symon to read /etc/symon.conf. symon will keep the old
configuration if errors occured during parsing of the configura‐
tion file. Note that the chroot(2) may cause resources to become
unattainable, most notably the configuration file itself.
FILES
/var/run/symon.pid
Contains the program id of the symon daemon.
/etc/symon.conf
symon system wide configuration file.
BUGS
Every monitored resource mentioned /etc/symon.conf gets queried. Mention‐
ing, for example, cpu(0) twice for different muxes will result in two
distinct cpu(0) measurement actions.
The proc module is too simple: memory shared between two instances of the
same process is simply counted twice.
symon does not check whether all resources mentioned in /etc/symon.conf
exist.
AUTHOR
Willem Dijkstra <wpd@xs4all.nl>. Daniel Hartmeier helped to port to big-
endian architectures. Matthew Gream helped to port symon to other BSD
platforms.
Port contributors: Marc Balmer, Tito Dal Canton, Matthew Gream, Daniel
Hartmeier, Lars Kotthoff, Constantine A. Murenin, J. Martin Petersen,
Fredrik Soderblom, Harm Schotanus and Martin van der Werff.
SEE ALSOsymux(8)BSD April 4, 2012 BSD