- blog.up-link.ro - https://blog.up-link.ro -

FreeBSD: System Monitoring with MRTG

The Multi Router Traffic Grapher, or just simply MRTG, is free software for monitoring and measuring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form.

1. Installing Apache2 HTTP Server

Install Apache on the server you wish to display MRTG stats from:

cd /usr/ports/www/apache22
make install clean

To run Apache2 at system startup, append the following line to /etc/rc.conf :

apache22_enable="YES"

Start Apache2, enter:

/usr/local/etc/rc.d/apache22 start

NOTE: Apache2.2 wants to load an Accept Filter and if you don't load accf_http module on startup, you will get an error everytime you start apache. Run the following command:

echo 'accf_http_load="YES"' >> /boot/loader.conf

We can load the module manually by running:

# kldload accf_http

Stop and start apache22 service:

/usr/local/etc/rc.d/apache22 stop
/usr/local/etc/rc.d/apache22 start

2. Installing SNMP

To install and configure SNMP use this tutorial [1].

3. Installing and configuring MRTG

To install MRTG from ports, enter:

cd /usr/ports/net-mgmt/mrtg
make install clean

Configure MRTG using cfgmaker:

cfgmaker --global 'WorkDir: /usr/local/www/apache22/data/mrtg' --global 'Options[_]: growright,unknaszero' --output /usr/local/etc/mrtg/mrtg.cfg snmp_community@localhost

/usr/local/www/apache22/data/mrtg - the location you want at your webserver
/usr/local/etc/mrtg/mrtg.cfg - the location for mrtg configuration

Do not forget to change snmp community according to your snmp configuration.

Create Workdir, enter:

mkdir /usr/local/www/apache22/data/mrtg

Change current directory to mrtg directory and create index.html:

cd /usr/local/www/apache22/data/mrtg
indexmaker --title="FreeBSD Server Monitoring" --output=index.html --columns=1 /usr/local/etc/mrtg/mrtg.cfg

Now everything should be setup right try run:

/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

Adding the following command to /etc/crontab will update mrtg graphs every 5th minute.

*/5 * * * * root /usr/bin/env LANG=C /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log > /dev/null 2>1&

4. MRTG - mrtg.cfg configuration for CPU and Disk usage

Here [2] is a sample configuration of mrtg.cfg used to monitor: