summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/defaults/commands.pp8
-rw-r--r--manifests/service/mysql.pp45
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}",
+ }
+ }
+
}