OpenBSD Journal

Monitoring OpenBSD

Contributed by jose on from the spyware dept.

Willem Dijkstra writes:
" symon is an active minimalistic system monitor that can report cpu, memory, interface, disk and pf statistics to a gatherer somewhere on the network every 5 seconds. It can do all this without noticable impact on system performance -- I use it to measure my soekris, for example.

The package comes with a monitor (symon), a gatherer (symux) that can handle arbitrary numbers of symons and a web frontend (symon2web).

Although symon is ideal for profiling jobs, it might also fill some people's daily administration needs.

Source, manuals, port Makefile and pretty pictures on:

(It was announced on tech@ in "

This looks like a pretty neat way to keep a quick eye on several hosts easily, ie a server farm or a headless server. A test port is also on the site. Glad to see it's getting active development and feedback.

(Comments are closed)

  1. By Theodore () on

  2. By Matt Burke () on

    Also, an interesting project that's being worked on which you might find useful/interesting is Hotsanic - (

    1. By Matt Burke () on

      so what happened to this automagic text->html url conversion then? ;)

  3. By -- () -- on --

    How does this compare to snmp v3 and rmon?

    1. By Willem Dijkstra () on

      Symon's functionality can be compared to rmon.

      One of the design decisions, however, was that the action of monitoring should lead to no (and failing that, little) impact on the monitored system.

      This means that the probes are configured a priori and that symon will not act on incoming network traffic (it only spews data).

      rmon is for interchange of primarily network related data. symon has this data, but also data with slightly different semantics. (host data like memory usage)

      The difference between symon and snmp is far and wide. snmp means polling for information periodically, where the period is normally between one and 5 minutes. symon is about actively forwarding monitored information every 5 seconds. With snmp, you need to traverse the MIB to get particular information, with symon you get what you specified in the configuration file. symon was specifically built to not take actions on any incoming traffic. (I use OpenBSD because I'm a paranoid freak - this stance is reflected in the way that the program was built)

      To me, it is clear that symon will not scale to hundreds of hosts. (Who would need 5 second statistics for hundreds of hosts anyway?) snmp will scale, because you're not asking every host and router to report their stuff every 5 seconds.

      symon is intended for near real-time monitoring purposes. It was built for profiling jobs and/or keeping a close eye on your true network assets. (main firewall, main webservers)

  4. By Gimlet () on

    Okay, I fought the new php4 and I appeared to have won...

    Now I'm trying to get symon2web to generate me some graphs! I've got my .rrd files in /usr/local/share/symon (the default). I have the web files in /var/www/htdocs/symon, with including the following:


    In /usr/local/symon I have a symlink 'hostname' to /usr/local/share/symon. I get broken graphs. Am I just being impatient in waiting for data, or have I made a fundamental mistake?


    1. By Gimlet () on

      I needed to turn on global variables in the php.ini.

      My face is slightly less red since it doesn't mention it in the install docs. ;^)

  5. By Tom Buskey () on

    How does this compile/run on NetBSD, Solaris, Linux, etc? This looks like a very cool system to monitor many systems.

    I used to use mrtg to monitor every port on my network: switches, routers, etc. Then I could point to individual bandwith users if there was a problem. I could also show everyone in the company that 'the internet is slow' was not our link.

    1. By Willem Dijkstra () on

      The probe (symon) is built on top of a number of sysctls. Porting this to other operating systems is a question of rewriting the different data gatherers. As I wanted to test the waters first, I have only looked into OpenBSD sofar. This might change :)

      The rest of the code (symux = gatherer, symon2web) could be made to run on any of the above with very little effort.

  6. By Anonymous Coward () on

    bash-2.05# cd /usr/ports/sysutils/sysmon/
    bash-2.05# make
    Fatal: Need version 1.502 of
    *** Error code 1


    1. By Willem Dijkstra () on

      2 solutions:

      1) Look at the port Makefile and remove the NEED_VERSION.

      (The porting documentation states that the developer of the port should put this in. It is to make sure that when you use functionality, you are sure that the current version supports that.

      I'm not doing very weird stuff, so it should run without the NEED_VERSION.)

      2) Get a more current ports.tar.gz. This should not break anything. (Famous last words)

      1. By sam () on

        how about only running a -current ports on a -current system as the instructions state?

        Might be a better idea than hacking stuff and causing more problems in the future.

        1. By Anonymous Coward () on

          His website states this utility is compatible with OpenBSD 3.0 and up.

          I am having these problems on 3.0, Even after the makefile is edited, it will not compile. I think he should change his website.

      2. By Anonymous Coward () on


Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]