|
Version 3: Zabbix Scripts for Monitoring Apache2 (+ vBulletin)
We updated this Zabbix template and scripts we are using to monitor our Apache2 server. In this version, we add monitoring for web crawlers (spiders), Treason uncloaked! (TCP bug) and for vBulletin online users stats:
Here are the addition entries for zabbix_agentd.conf
Code:
UserParameter=spider.googlebot,cut -f1 -d":" /tmp/zabbix_spiders.dat
UserParameter=spider.slurp,cut -f2 -d":" /tmp/zabbix_spiders.dat
UserParameter=spider.others,cut -f3 -d":" /tmp/zabbix_spiders.dat
UserParameter=vbulletin.totalonline,cut -f1 -d":" /tmp/zabbix_vbulletin.txt
UserParameter=vbulletin.membersonline,cut -f2 -d":" /tmp/zabbix_vbulletin.txt
UserParameter=vbulletin.guestsonline,cut -f3 -d":" /tmp/zabbix_vbulletin.txt
UserParameter=security.treason,cut -f1 -d":" /tmp/zabbix_security.dat
Here are the scripts (we run them in cron):
This simple one is for detecting spiders with a two minute delay, to give time for the log file to catch up. However, during heavy load times, more delay might be needed:
Code:
#!/bin/bash
#spiders.sh
TIME=`date +%d/%b/%Y:%H:%M`
LOG="/website/logs/apache2/access.log"
sleep 120
GBOT=`grep "$TIME" "$LOG"| grep Googlebot |wc -l`
SLURP=`grep "$TIME" "$LOG"|grep "Yahoo! Slurp" |wc -l`
OTHER=`grep "$TIME" "$LOG"|grep -i bot| grep -v "Yahoo! Slurp"|grep -v Googlebot |grep -v Firefox|wc -l`
echo $GBOT:$SLURP:$OTHER > /tmp/zabbix_spiders.dat
This simple one is for detecting the Treason Uncloaked! TCP Bug:
Code:
#!/bin/bash
#security.sh
TIME=`date +%d/%b/%Y:%k:%M`
LOG="/var/log/kern.log"
sleep 60
TREASON=`grep "$TIME" "$LOG"| grep -i "Treason Uncloaked" |wc -l`
echo $TREASON: > /tmp/zabbix_security.dat
This simple php code is for writing vBulletin online user information to a temp file for Zabbix:
Code:
$ourFileName = "/tmp/zabbix_vbulletin.txt";
$zabbixfile = fopen($ourFileName, 'w+');
vfprintf($zabbixfile,"%s:%s:%s\n",array($totalonline,$numberregistered,$numberguest));
fclose($zabbixfile);
We call this from a modified index.php file from cron instead of directly from the vB production code to minimize the load.
|