PDA

View Full Version : Zabbix Agent or SNMPD monitoring ?


Calimero
24-11-2006, 13:01
Hi,

I'm preparing a demo/test Zabbix server (currently there's no monitoring/performance historization at all). So far I've mainly focused on simple checks. I've also played with zabbix agent (both on Windows and Linux).
I now have to choose (or at least gather info to choose) between Zabbix Agent and SNMPD (NetSNMP) monitoring.

Typical hosts to monitor:
Windows 2000/2003 + IIS
Windows 2000/20003 + MS SQL Server 2000
Windows 2000/20003 + MS SQL Server 2000 + IIS

Linux (Redhat but more and more Debian as it's the new official choice)
Linux + Apache/PHP
Linux + MySQL
Linux + Apache/PHP + MySQL

Things we'd like to monitor, plateforms listed in brackets [Lx = Linux, W = windows]:

Load average and/or CPU load [Lx, W]
MySQL system variables (through mysqladmin or custom script) [Lx]
Free disk space/disk usage on different disks or partitions [Lx, W]
Size of specific folders (not mountpoints) [Lx, W]
Number of processes [Lx, W]
Network trafic [Lx, W]
SQL Server health (not familiar with this yet...) [W]
... maybe more, but these are probably the most common/needed items

We really like Zabbix' ability to run custom commands (even with parameters, with Linux/Unix agent). One "problem" we have is that our new servers will (more than probably) run with GRSec kernels, leaving zabbix unable to poll some info from /proc (number of processes, network traffic....)

Net-snmpd allows custom commands but it doesn't seem to be as flexible. I'm going to test it to get a better idea.
snmpd - being run as root - has full access to any information required.

One thing that bothers me with SNMPD is how storage "geometry" is reported.
With zabbix, you specify what mounpoint you need info about, and you get it ! Like "vfs.fs.size[/var,free]" .

With SNMP it looks like you first have to find out which OID you're going to use. I've done some snmpwalking to get this:


HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: Real Memory
HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: Swap Space
HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: /
HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: /sys
HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: /proc/bus/usb
HOST-RESOURCES-MIB::hrStorageDescr.7 = STRING: /var
HOST-RESOURCES-MIB::hrStorageDescr.8 = STRING: /wrk1
HOST-RESOURCES-MIB::hrStorageDescr.9 = STRING: /tmp


.4 is for /
.7 is for /var
and so on

How is that order determined ? Partition number (hda[0-n]) ? Order reported by "mount" or /etc/mtab ?
What if I have hosts with /var being the first partition while on other hosts /var is the last one ?
Because if I define zabbix templates with items like "Free space on /var; SNMP OID=... .7" while OID isn't constant, I'm going to end up with some nice mess. ;)

In short: people using Zabbix with SNMP, how do you define your templates ? :)

I've also read that SNMP configuration on Windows isn't all that easy (at least not as easy as dropping a standard snmpd.conf file in /etc/snmp).

On the other hand, what speaks for SNMP is that security/networking folks don't know much about Zabbix. snmpd is installed (but not configured by default) on their "corporate" Debian install.
I don't know if SNMP is in use on windows Hosts. SNMP would be easier to push to them. Not really a technical argument, but it must be taken into account.

If you have any thoughts regarding the choice between Zabbix Agent and SNMP, feel free to join the discussion. :D

Thanks for your help ! :)
Calimero

bbrendon
03-12-2006, 21:54
I'll tell you, I've used SNMP and agents. I no longer use SNMP to monitor hosts, especially with Zabbix. SNMP and Zabbix work, but its so tedious to configure so I don't do it.