[Nagiosplug-devel] [patch] mysql_check.c & REQUIREMENTS

Daniël van Eeden nagios at myname.nl
Mon Apr 11 15:13:09 CEST 2011


 Hi,

 I've created a patch to fix the documentation in the REQUIREMENTS file 
 and to add some more comments to check_mysql.c

 SF.net BugID:
 http://sourceforge.net/tracker/?func=detail&aid=3269273&group_id=29880&atid=397597

 Regards,

 Daniël van Eeden

 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 at sbox.tu-graz.ac.at)
  * Copyright (c) 2000 Karl DeBisschop 
 (kdebisschop at 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 at 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;




More information about the Devel mailing list