From 9c5e3367a6106fbf46aa53014cf5bfa026195d71 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Mon, 28 Dec 2009 15:10:13 -0500 Subject: add port and database options to mysql service, use 'hostname' plugin parameter to specify socket --- manifests/defaults/commands.pp | 8 +++----- manifests/service/mysql.pp | 45 ++++++++++++++++++++++++++++++------------ 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp index 795c526..af4c770 100644 --- a/manifests/defaults/commands.pp +++ b/manifests/defaults/commands.pp @@ -36,11 +36,9 @@ class nagios::defaults::commands { check_https_url_regex: command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$'; check_mysql: - command_line => '$USER1$/check_mysql -u $ARG1$ -p $ARG2$'; - check_mysql_socket: - command_line => '$USER1$/check_mysql -s $ARG1$ -u $ARG2$ -p $ARG3$'; - check_mysql_tcp: - command_line => '$USER1$/check_mysql -H $ARG1$ -u $ARG2$ -p $ARG3$'; + command_line => '$USER1$/check_mysql -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$'; + check_mysql_db: + command_line => '$USER1$/check_mysql -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -d $ARG5$'; check_ntp_time: command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1'; check_silc: diff --git a/manifests/service/mysql.pp b/manifests/service/mysql.pp index 9d99d09..ca2ae15 100644 --- a/manifests/service/mysql.pp +++ b/manifests/service/mysql.pp @@ -1,29 +1,48 @@ +# Checks a mysql instance via tcp or socket + define nagios::service::mysql( $ensure = present, - $check_hostname = 'localhost', - $check_socket = 'absent', + $check_hostname = 'absent', + $check_port = '3306', $check_username = 'nagios', $check_password = '', + $check_database = 'absent', $check_mode = 'tcp' ){ + if ($check_hostname == 'absent') { + fail("Please specify a hostname, ip address or socket to check a mysql instance.") + } case $check_mode { - # Check MySQL using TCP 'tcp': { - nagios::service { 'mysql_tcp': - ensure => $ensure, - check_command => "check_mysql_tcp!${check_hostname}!${check_username}!${check_password}", + if ($check_hostname == 'localhost') { + $real_check_hostname = '127.0.0.1' + } + else { + $real_check_hostname = $check_hostname } } - # Check MySQL using local socket default: { - nagios::service { 'mysql_socket': - ensure => $ensure, - check_command => $check_socket ? { - 'absent' => "check_mysql!${check_username}!${check_password}!${check_database}", - default => "check_mysql_socket!${check_socket}!${check_username}!${check_password}", - }, + if ($check_hostname == '127.0.0.1') { + $real_check_hostname = 'localhost' } + else { + $real_check_hostname = $check_hostname + } + } + } + + if ($check_database == 'absent') { + nagios::service { 'mysql': + ensure => $ensure, + check_command => "check_mysql!${real_check_hostname}!${check_port}!${check_username}!${check_password}", } } + else { + nagios::service { "mysql_${check_database}": + ensure => $ensure, + check_command => "check_mysql_db!${real_check_hostname}!${check_port}!${check_username}!${check_password}!${check_database}", + } + } + } -- cgit v1.2.3