Jeg har gemt selve modulet i /opt/nagios/mysql_conn.php:
#!/usr/bin/php
<?
# Copyright (c) 2013 Mikkel Mikjaer Christensen
function get_args()
{
global $argv;
$a = $argv;
unset($a[0]);
$b = preg_split("/-/",implode(" ",$a),NULL,PREG_SPLIT_NO_EMPTY);
foreach ($b as $_)
{
$c = preg_split("/ /",$_,NULL,PREG_SPLIT_NO_EMPTY);
$ret[$c[0]]=$c[1];
}
return $ret;
}
$a = get_args();
$warning = $a["w"];
$critical = $a["c"];
mysql_connect("localhost","root","p3wOgsq8");
$conn = mysql_num_rows(mysql_query("show processlist"));
if ($conn >= $critical)
{
print "CRITICAL, MySQL Connections: $conn\n";
die(2);
} else if ($conn >= $warning) {
print "WARNING, MySQL Connections: $conn\n";
die(1);
} else {
print "OK, MySQL Connections: $conn\n";
die(0);
}
?>
Jeg satte den op via nrpe, så på min mysql server i /etc/nagios/nrpe.cfg indsatte jeg flg. linie:
command[check_mysql_conn]=/opt/nagios/mysql_conn.php -w 300 -c 400
og på nagios serveren tilføjede jeg flg. i /etc/nagios-plugins/config/nrpe.cfg:
define command{
command_name check_mysql_conn
command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c check_mysql_conn -u # -w 30
}
og til sidst kan du oprette flg. service-definition:
define service{
use generic-service ; Inherit default values from a template
host_name mysql.example.com
service_description Current MySQL Connections
check_command check_mysql_conn
}