1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
diff -Naur nagiosplug/plugins/check_mysql.c nagiosplug.new/plugins/check_mysql.c
--- nagiosplug/plugins/check_mysql.c 2011-09-13 15:56:05.667051730 +0300
+++ nagiosplug.new/plugins/check_mysql.c 2011-09-13 15:57:08.786832084 +0300
@@ -42,6 +42,7 @@
#include "netutils.h"
#include <mysql.h>
+#include <mysqld_error.h>
#include <errmsg.h>
char *db_user = NULL;
@@ -51,6 +52,7 @@
char *db = NULL;
unsigned int db_port = MYSQL_PORT;
int check_slave = 0, warn_sec = 0, crit_sec = 0;
+int ignore_auth = 0;
int verbose = 0;
thresholds *my_threshold = NULL;
@@ -91,7 +93,16 @@
/* establish a connection to the server and error checking */
if (!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,db_socket,0)) {
- if (mysql_errno (&mysql) == CR_UNKNOWN_HOST)
+ if (ignore_auth && mysql_errno (&mysql) == ER_ACCESS_DENIED_ERROR)
+ {
+ printf("MySQL OK - Version: %s (protocol %d)\n",
+ mysql_get_server_info(&mysql),
+ mysql_get_proto_info(&mysql)
+ );
+ mysql_close (&mysql);
+ return STATE_OK;
+ }
+ else if (mysql_errno (&mysql) == CR_UNKNOWN_HOST)
die (STATE_WARNING, "%s\n", mysql_error (&mysql));
else if (mysql_errno (&mysql) == CR_VERSION_ERROR)
die (STATE_WARNING, "%s\n", mysql_error (&mysql));
@@ -252,6 +263,7 @@
{"critical", required_argument, 0, 'c'},
{"warning", required_argument, 0, 'w'},
{"check-slave", no_argument, 0, 'S'},
+ {"ignore-auth", no_argument, 0, 'n'},
{"verbose", no_argument, 0, 'v'},
{"version", no_argument, 0, 'V'},
{"help", no_argument, 0, 'h'},
@@ -262,7 +274,7 @@
return ERROR;
while (1) {
- c = getopt_long (argc, argv, "hvVSP:p:u:d:H:s:c:w:", longopts, &option);
+ c = getopt_long (argc, argv, "hvVSnP:p:u:d:H:s:c:w:", longopts, &option);
if (c == -1 || c == EOF)
break;
@@ -300,6 +312,9 @@
case 'S':
check_slave = 1; /* check-slave */
break;
+ case 'n':
+ ignore_auth = 1; /* ignore-auth */
+ break;
case 'w':
warning = optarg;
break;
@@ -385,6 +400,9 @@
printf (UT_EXTRA_OPTS);
printf (UT_HOST_PORT, 'P', myport);
+ printf (" %s\n", "-n, --ignore-auth");
+ printf (" %s\n", _("Ignore authentication failure and check for mysql connectivity only"));
+
printf (" %s\n", "-s, --socket=STRING");
printf (" %s\n", _("Use the specified socket (has no effect if -H is used)"));
|