Zabbix Information and Tips

The time is now to abandon Nagios and Cacti for the light of Zabbix. With a distributed database-driven model that includes web-frontends, servers, proxies, and local agents as well as support for remote checks via SNMP, IPMI, agents, and script, Zabbix is truly a modern system for maintaining intelligence with a perspective across your your network.
Zabbix is Awesome.
Yayz Zabbz. I'm starting to write both a Guide to Creating a User Parameter and A Brief Tutorial on Installing Zabbix . I've also got a guide somewhere to creating a MacOS Zabbix pkg file with PackageMaker.
Making one trigger fire only if all checks fail
So the use case here is where you have individual checks for a process in a template, say pid names of "httpd," "apache," and "httpd-worker" where any one may be running, but you only care if none of them are running.
Neither httpd nor httpd-worker processes are running on {HOSTNAME}
{Template_Patrick_Linux:proc.num[httpd].last(0)}=0 & {Template_Patrick_Linux:proc.num[httpd-worker].last(0)}=0 
Neither apache2 nor apache found on {HOSTNAME}
{Template_Patrick_Linux:proc.num[apache2].last(0)}=0 & {Template_Patrick_Linux:proc.num[apache].last(0)}=0
Building Zabbix 1.8.9 on MacOS 10.7.2
Of course you have XCode installed, but your configure fails with:
checking for -rdynamic linking option... yes
checking for ICONV support... configure: error: Unable to find iconv.h "no"
And after you hack the configure script to return yes instead of no for iconv.h, build fails with:
gcc  -g -O2    -rdynamic   -o zabbix_agent zabbix_agent.o stats.o cpustat.o diskdevices.o perfstat.o vmstats.o zbxconf.o 
	../../src/libs/zbxsysinfo/libzbxagentsysinfo.a ../../src/libs/zbxsysinfo/osx/libspecsysinfo.a 
	../../src/libs/zbxsysinfo/common/libcommonsysinfo.a ../../src/libs/zbxsysinfo/simple/libsimplesysinfo.a 
	../../src/libs/zbxlog/libzbxlog.a ../../src/libs/zbxalgo/libzbxalgo.a ../../src/libs/zbxsys/libzbxsys.a 
	../../src/libs/zbxnix/libzbxnix.a ../../src/libs/zbxcomms/libzbxcomms.a ../../src/libs/zbxconf/libzbxconf.a 
	../../src/libs/zbxcommon/libzbxcommon.a ../../src/libs/zbxcrypto/libzbxcrypto.a 
	../../src/libs/zbxjson/libzbxjson.a ../../src/libs/zbxexec/libzbxexec.a  -lm  -lresolv 
Undefined symbols for architecture x86_64:
  "_iconv_open", referenced from:
      _convert_to_utf8 in libzbxcommon.a(str.o)
  "_iconv", referenced from:
      _convert_to_utf8 in libzbxcommon.a(str.o)
  "_iconv_close", referenced from:
      _convert_to_utf8 in libzbxcommon.a(str.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [zabbix_agent] Error 1
So instead just give it some hints:
% LIBS=-liconv LDFLAGS=-L/usr/lib ./configure   --enable-ipv6   --enable-agent ; make clean ; make
[...]
Making all in upgrades
make[1]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all-am'.
% src/zabbix_agent/zabbix_agent -V
Zabbix Agent v1.8.9 (revision 23398) (22 November 2011)
Compilation time: Nov 24 2011 18:35:40
If that works, you might build a binary optimized for your CPU:
% sysctl machdep.cpu.brand_string
machdep.cpu.brand_string: Intel(R) Core(TM)2 Duo CPU     E8135  @ 2.66GHz
% CFLAGS="-pipe -O3 -march=core2" LIBS=-liconv LDFLAGS=-L/usr/lib ./configure   --enable-ipv6   --enable-agent
[...]
gcc  -pipe -O3 -march=core2    -rdynamic -L/usr/lib  -o zabbix_sender zabbix_sender.o
[...]
Thanks,
Copyright © 2011 Patrick Tudor