summaryrefslogtreecommitdiffstats
path: root/web/attachments/406534-nagiosplug_mysql.diff
blob: 991ce1a19b27831c0d2fff485a31c0c3e0bd1f92 (plain)
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 --git a/REQUIREMENTS b/REQUIREMENTS
index fd41ded..33c5eb9 100644
--- a/REQUIREMENTS
+++ b/REQUIREMENTS
@@ -36,10 +36,9 @@ check_ldap:
 
 check_mysql, check_mysql_query:
 	- Requires the MySQL libraries available from
-	  http://www.mysql.org/
+	  http://dev.mysql.com/downloads/
 		Lib: libmysql, libmysqlclient
-		Redhat Powertools Source: mysql-3.20.32a-3.i386.rpm, mysql-devel-3.20.32a-3.i386.rpm (these seem to be broken, however)
-		RPMS from www.mysql.org work better
+		Redhat Source (RHEL6, YUM): mysql-devel, mysql-libs
 	  Must have mysql_config in PATH or specified with --with-mysql=DIR for DIR/bin/mysql_config
 
 check_pqsql:
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c
index d9b4e53..0dfb1fd 100644
--- a/plugins/check_mysql.c
+++ b/plugins/check_mysql.c
@@ -5,7 +5,7 @@
 * License: GPL
 * Copyright (c) 1999 Didi Rieder (adrieder@sbox.tu-graz.ac.at)
 * Copyright (c) 2000 Karl DeBisschop (kdebisschop@users.sourceforge.net)
-* Copyright (c) 1999-2009 Nagios Plugins Development Team
+* Copyright (c) 1999-2011 Nagios Plugins Development Team
 * 
 * Description:
 * 
@@ -31,7 +31,7 @@
 *****************************************************************************/
 
 const char *progname = "check_mysql";
-const char *copyright = "1999-2007";
+const char *copyright = "1999-2011";
 const char *email = "nagiosplug-devel@lists.sourceforge.net";
 
 #define SLAVERESULTSIZE 70
@@ -157,7 +157,7 @@ main (int argc, char **argv)
 			}
 
 		} else {
-			/* mysql 4.x.x */
+			/* mysql 4.x.x and mysql 5.x.x */
 			int slave_io_field = -1 , slave_sql_field = -1, seconds_behind_field = -1, i, num_fields;
 			MYSQL_FIELD* fields;
 
@@ -178,13 +178,17 @@ main (int argc, char **argv)
 				}
 			}
 
+			/* Check if slave status is available */
 			if ((slave_io_field < 0) || (slave_sql_field < 0) || (num_fields == 0)) {
 				mysql_free_result (res);
 				mysql_close (&mysql);
 				die (STATE_CRITICAL, "Slave status unavailable\n");
 			}
 
+			/* Save slave status in slaveresult */
 			snprintf (slaveresult, SLAVERESULTSIZE, "Slave IO: %s Slave SQL: %s Seconds Behind Master: %s", row[slave_io_field], row[slave_sql_field], seconds_behind_field!=-1?row[seconds_behind_field]:"Unknown");
+
+			/* Raise critical error if SQL THREAD or IO THREAD are stopped */
 			if (strcmp (row[slave_io_field], "Yes") != 0 || strcmp (row[slave_sql_field], "Yes") != 0) {
 				mysql_free_result (res);
 				mysql_close (&mysql);
@@ -199,6 +203,7 @@ main (int argc, char **argv)
 				}
 			}
 
+			/* Check Seconds Behind against threshold */
 			if ((seconds_behind_field != -1) && (strcmp (row[seconds_behind_field], "NULL") != 0)) {
 				double value = atof(row[seconds_behind_field]);
 				int status;