GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
SYMON(8) FreeBSD System Manager's Manual SYMON(8)

symon
system monitor

symon [-dtuv] [-f filename]

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:

Stop symon from becoming a daemon and show debug information on stdout.
filename
Read configuration from filename instead of /etc/symon.conf.
Test configuration file and exit.
By default symon will chroot(2) into _symon user home directory. The -u disables this behaviour.
Show version information.

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.

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

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

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.

/var/run/symon.pid
Contains the program id of the symon daemon.
/etc/symon.conf
symon system wide configuration file.

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.

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.

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

symux(8)
April 4, 2012 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 8 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.