Network Monitoring With Zabbix

Zabbix has the capability to monitor just a about any event on your network from network traffic to how many papers are left in your printer. It produces really cool grahps.

In this howto we install software that has an agent and a server side. The goal is to end up with a setup that has a nice web interface that you can show off to your boss ;)
It's a great open source tool that lets you know what's out there.
This howto will not go into setting up the network but I might rewrite it one day so I really like your input on this. Much of what is covered here is in the online documentation however if you are like me new to this all this might be of some help to you.

The ZABBIX server requires the following system resources:

  • 10 MB of disk space (100 MB recommended)
  • 64 MB of RAM (128 MB recommended)
  • MySQL or PostgreSQL as backend database
  • Net-SNMP libraries

First we define 2 locations:

The Server, here comes all the info together and is processed in a database, note that the server can be monitored to so it runs an agent too.

The Agent, Information is gathered and polled by the server.

Setup of the Server:

http://prdownloads.sourceforge.net/zabbix/zabbix-1.1beta8.tar.gz?download

1 - Make the zabbix user and group

groupadd zabbix 
useradd -c 'Zabbix' -d /home/zabbix -g zabbix -s /bin/bash zabbix
mkdir /home/zabbix
chown -R zabbix.zabbix /home/zabbix

2 - Untar the sources

cd /home/zabbix
tar zxvpf zabbix-1.1beta8.tar.gz
mv zabbix-1.1beta7 zabbix
cd zabbix
chown -R zabbix.zabbix .
su - zabbix

3 - Create a zabbix database and populate it

mysql -p -u root
create database zabbix;
quit;
cd create/mysql
mysql -u root -p zabbix < schema.sql
cd ../data
mysql -u root -p zabbix < data.sql
cd ../../

4 - Configure, compile and install the server

We run an agent on the server to so we compile that too ;)

./configure --prefix=/usr --with-mysql --with-net-snmp \ 
--enable-server --enable-agent &&
make
su
make install
exit

5 - Prepare the rest of the system

As root edit /etc/services.

vi /etc/services

Add:

zabbix_agent 10050/tcp # Zabbix ports 
zabbix_trap 10051/tcp
mkdir /etc/zabbix
chown -R zabbix.zabbix /etc/zabbix/
cp misc/conf/zabbix_* /etc/zabbix/

Edit /etc/zabbix/zabbix_agentd.conf:

vi /etc/zabbix/zabbix_agentd.conf

Make sure that the Server parameter points to the server address, for the agent that runs on the server it is like this:

Server=127.0.0.1

Edit /etc/zabbix/zabbix_server.conf:

vi /etc/zabbix/zabbix_server.conf

For small sites this default file will do, however if you are into tweaking your config for your 10+ hosts site, this is the place.

Change this:

# Database password
# Comment this line if no password used

DBPassword=Secret

Start the server :

su - zabbix 
zabbix_server
exit

Start the client:

su - zabbix 
zabbix_agentd
exit

6 - Configure web interface

Edit frontends/php/include/db.inc.php:

$DB_TYPE ="MYSQL";
$DB_SERVER ="localhost";
$DB_DATABASE ="zabbix";
$DB_USER ="root";
$DB_PWD ="secret";
mkdir /home/zabbix/public_html
cp -R frontends/php/* /home/zabbix/public_html/
cd ../public_html && chown -R zabbix.zabbix .

Edit /etc/apache/httpd.conf:

vi /etc/apache/httpd.conf

Make this work:

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
/etc/init.d/apache restart

Setup of an Agent

http://prdownloads.sourceforge.net/zabbix/zabbix-1.1beta8.tar.gz?download

1 - Make the zabbix user and group

groupadd zabbix
useradd -c 'Zabbix' -d /home/zabbix -g zabbix -s /bin/bash zabbix
mkdir /home/zabbix
chown -R zabbix.zabbix /home/zabbix

2 - Untar the sources

cd /home/zabbix
tar zxvpf zabbix-1.1beta8.tar.gz
mv zabbix-1.1beta8 zabbix
cd zabbix
chown -R zabbix.zabbix .
su - zabbix

3 - Configure compile and install the agent

./configure --prefix=/usr --with-mysql --with-net-snmp --enable-agent 
make
su
make install
exit
mkdir /etc/zabbix 
cp misc/conf/zabbix_agentd.conf /etc/zabbix/

Edit /etc/zabbix/zabbix_agentd.conf:

vi /etc/zabbix/zabbix_agentd.conf

Make sure that the Server parameter points to the server address:

Server=xxx.xxx.xxx.xxx

4 - Prepare the rest of the system

Edit /etc/services:

vi /etc/services

Add:

zabbix_agent 10050/tcp # Zabbix ports
zabbix_trap 10051/tcp

5 - Start the agent

su - zabbix 
zabbix_agentd
exit

What's next ?

Now point your browser to:

http://www.example.com/~zabbix

Log in with username: Admin
No Password

First go to the tab Configuration and then Hosts.

Now create a host-group, see that you can give it some templates, e.g: Application.MySQL, Host.SNMP, Host.Standalone, Host.Unix.

Then some hosts:

Select your host-group and use Link with Template Host.Unix

Now a lot of triggers are imported and the game begins.

Go to the monitoring tab and watch the latest values roll in.

Here you can really knock your self out.
This howto intended to show you how to install this mother. Configuring the monitoring functions is a whole other ballgame.

For now I leave you here with some pointers to documentation

http://www.zabbix.com/documentation.php
http://sourceforge.net/projects/zabbix
http://www.google.com/search?q=zabbix

Changelog

2006-03-29 Updated to version beta8

Share this page:

12 Comment(s)