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 |
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"; |
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> |
/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 |
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