The UNIX and Linux Forums  


Go Back   The UNIX and Linux Forums > Special Forums > Web Programming, Web 2.0 and Mashups
.
google unix.com




View Single Post in the UNIX and Linux Forums - Click on the Thread or Permalink to View Entire Thread -->
  #3 (permalink)  
Old 03-19-2009
Neo's Avatar
Neo Neo is online now Forum Staff  
Administrator
  
 

Join Date: Sep 2000
Location: Asia Pacific
Posts: 6,797
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.