最新消息:

php script to monitor OTRS queue size from SNMP

Linux / PHP admin 4浏览

最近公司上线OTRS,感觉还不错,顾问居然还给了数据库的结构图,闲下来就写了这个php脚本给Opsview用来监控OTRS支持队列的大小。别问我为什么用php…因为我实在是不会pel….

测试环境:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION=”Ubuntu 12.04.4 LTS”

废话不说,先帖脚本:

#!/usr/bin/php
n”;
echo ” QueueName: Queueu name to query, right now only in “allnew”,”escalated”,”first_level_support” and “second_level_support”n”;
echo ” WarnNumber: Tickets quantity start to be warn, requiredn”;
echo ” CriticalNumber: Tickets quantity start to be critical, must greater than WarnNumber, requiredn”;
exit(3);
}

# Double check query SQL
if(empty($sql)){
echo “UNKNOWN – Unknown errorn”;
exit(3);
}

# Check arguments again.
if(!is_numeric(“$warnlevel”)||!is_numeric(“$critilevel”)){
echo “UNKNOWN – Incorrect arguments.n”;
exit(3);
}elseif($warnlevel>=$critilevel){
echo “UNKNOWN – Incorrect warn/critical level.n”;
exit(3);
}

# connect to database
$conn = @mysql_connect(“localhost”,”readonly”,”readonly”) or die(“Cannot connect to DB”);
mysql_select_db(“otrs”,$conn);

# fetch data
$result = mysql_query(“$sql”,$conn) or die(“Query failed”);
$result = mysql_result($result,0);

# close db
mysql_close($conn);

if ($result>=$critilevel){
echo “CRITICAL – Queue size is $result, queue is huge!!!n”;
exit(2);
}elseif($result>=$warnlevel){
echo “WARN – Queue size is $result, queue is big!n”;
exit(1);
}else{
echo “OK – Queue size is $result, queue is OK.n”;
exit(0);
}

?>

脚本本身没什么好看的,不过最开始用来传参的东西还是蛮好玩的,这种脚本不能跟在web里面一直的传参,只能通过这个叫$argv的数组。

把脚本保存为

/usr/local/bin/check_otrs_queue

修改/etc/snmp/snmpd.conf,加上下面几行

exec otrs_new_tickets /usr/local/bin/check_otrs_queue allnew 15 20
exec first_level_support /usr/local/bin/check_otrs_queue first_level_support 30 50
exec second_level_support /usr/local/bin/check_otrs_queue second_level_support 10 15

最后就是使用check_snmp_exec.sh检测了~~

转载请注明:爱开源 » php script to monitor OTRS queue size from SNMP

转载请注明:爱开源 » php script to monitor OTRS queue size from SNMP