diff options
| author | M. Sean Finney <seanius@users.sourceforge.net> | 2005-05-26 02:13:19 +0000 |
|---|---|---|
| committer | M. Sean Finney <seanius@users.sourceforge.net> | 2005-05-26 02:13:19 +0000 |
| commit | 43ab308923919380cba2164490c1969add1c0d4d (patch) | |
| tree | 786c294a5971bd30c83c9f352e8b6dcdb9787217 | |
| parent | fd947321a36066417d400dbf169d560746a1c9b8 (diff) | |
| download | monitoring-plugins-43ab308923919380cba2164490c1969add1c0d4d.tar.gz | |
fix for check_msyql so that it doesn't use column numbers but the
names instead for determining slave status. thanks to james kingston.
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1185 f882894a-f735-0410-b71e-b25c423dba1c
| -rw-r--r-- | plugins/check_mysql.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index 25b7d7e6..20901e63 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c | |||
| @@ -123,18 +123,35 @@ main (int argc, char **argv) | |||
| 123 | die (STATE_CRITICAL, "%s\n", slaveresult); | 123 | die (STATE_CRITICAL, "%s\n", slaveresult); |
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | } else if (mysql_field_count (&mysql) == 33) { | 126 | } else { |
| 127 | /* mysql >= 4.1.1 */ | 127 | /* mysql 4.x.x */ |
| 128 | snprintf (slaveresult, SLAVERESULTSIZE, "Slave IO: %s Slave SQL: %s", row[10], row[11]); | 128 | int slave_io_field = -1 , slave_sql_field = -1, i, num_fields; |
| 129 | if (strcmp (row[10], "Yes") != 0 || strcmp (row[11], "Yes") != 0) { | 129 | MYSQL_FIELD* fields; |
| 130 | |||
| 131 | num_fields = mysql_num_fields(res); | ||
| 132 | fields = mysql_fetch_fields(res); | ||
| 133 | for(i = 0; i < num_fields; i++) | ||
| 134 | { | ||
| 135 | if (0 == strcmp(fields[i].name, "Slave_IO_Running")) | ||
| 136 | { | ||
| 137 | slave_io_field = i; | ||
| 138 | continue; | ||
| 139 | } | ||
| 140 | if (0 == strcmp(fields[i].name, "Slave_SQL_Running")) | ||
| 141 | { | ||
| 142 | slave_sql_field = i; | ||
| 143 | continue; | ||
| 144 | } | ||
| 145 | } | ||
| 146 | if ((slave_io_field < 0) || (slave_sql_field < 0) || (num_fields == 0)) | ||
| 147 | { | ||
| 130 | mysql_free_result (res); | 148 | mysql_free_result (res); |
| 131 | mysql_close (&mysql); | 149 | mysql_close (&mysql); |
| 132 | die (STATE_CRITICAL, "%s\n", slaveresult); | 150 | die (STATE_CRITICAL, "Slave status unavailable\n"); |
| 133 | } | 151 | } |
| 134 | } else { | 152 | |
| 135 | /* mysql 4.0.x or 4.1.0 */ | 153 | snprintf (slaveresult, SLAVERESULTSIZE, "Slave IO: %s Slave SQL: %s", row[slave_io_field], row[slave_sql_field]); |
| 136 | snprintf (slaveresult, SLAVERESULTSIZE, "Slave IO: %s Slave SQL: %s", row[9], row[10]); | 154 | if (strcmp (row[slave_io_field], "Yes") != 0 || strcmp (row[slave_sql_field], "Yes") != 0) { |
| 137 | if (strcmp (row[9], "Yes") != 0 || strcmp (row[10], "Yes") != 0) { | ||
| 138 | mysql_free_result (res); | 155 | mysql_free_result (res); |
| 139 | mysql_close (&mysql); | 156 | mysql_close (&mysql); |
| 140 | die (STATE_CRITICAL, "%s\n", slaveresult); | 157 | die (STATE_CRITICAL, "%s\n", slaveresult); |
