home | help
SYMON(8)		     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 moni-
     tored and to which symux(8) the information should be streamed to.

     Multiple monitor statements are allowed. Whitespace, newlines and text  be-
     hind '#' 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, inter-
     faces xl0/de0/lo0/wi0, disks wd[0-3]/cd[0-1], debug variables debug0 to de-
     bug19 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 con-
	     figuration if errors occured during parsing  of  the  configuration
	     file.  Note  that the chroot(2) may cause resources to become unat-
	     tainable, 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 dis-
     tinct 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 ex-
     ist.

AUTHOR
     Willem Dijkstra <wpd@xs4all.nl>. Daniel Hartmeier helped to port to big-en-
     dian  architectures.  Matthew Gream helped to port symon to other BSD plat-
     forms.

     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.

     Valeriy   Leshchinskiy   maintains    a	windows    symon    client    at
     https://github.com/ValHazelwood/SymonClient .

SEE ALSO
     symux(8)

FreeBSD ports 15.quarterly	  April 4, 2012 			SYMON(8)

home | help