DragonFly On-Line Manual Pages
SYMON(8) DragonFly System Manager's Manual SYMON(8)
NAME
symon - system monitor
SYNOPSIS
symon [-dtuv] [-f filename]
DESCRIPTION
symon is a lightweight system monitor that measures cpu, load,
filesystem, interface, disk, memory, pf, pf queues, mbuf, proc and sensor
statistics 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
proportional 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.
CONFIGURATION
symon obtains configuration data from /etc/symon.conf. The configuration
file contains monitor stanzas that define what resources should be
monitored 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
associated 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
seconds. 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
configuration 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.
Mentioning, 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 ALSO
symux(8)
DragonFly 6.5-DEVELOPMENT April 4, 2012 DragonFly 6.5-DEVELOPMENT