diff options
Diffstat (limited to 'checks')
-rw-r--r-- | checks/mysql_repl | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/checks/mysql_repl b/checks/mysql_repl new file mode 100644 index 0000000..372eeb5 --- /dev/null +++ b/checks/mysql_repl @@ -0,0 +1,45 @@ +OK = 0 +WARN = 1 +CRIT = 2 +UNKNOWN = 3 + +def extract_values(info): + values = {} + for line in info: + key = line[0].replace(':','') + value = " ".join(line[1:]) + values[key] = value + + return values + +def inventory_mysql_repl_status(info): + inventory = [] + try: + values = extract_values(info) + if 'Slave_IO_Running' in values: + inventory.append(('Slave_IO_Running', ['IO'])) + if 'Slave_SQL_Running' in values: + inventory.append(('Slave_SQL_Running', ['SQL'])) + return inventory + except Exception, e: + return [] + +def check_mysql_repl_status(item, params, info): + try: + values = extract_values(info) + if item in values: + if values[item] == 'Yes': + return (OK, 'Slave %s is running' % params[0]) + + return (CRIT, 'Slave %s is not(!!) running' % params[0]) + + except Exception, e: + return (UNKNOWN, "mysql_repl check failed: %", e.message) + + +check_info["mysql_repl"] = { + 'check_function': check_mysql_repl_status, + 'inventory_function': inventory_mysql_repl_status, + 'service_description': 'mySQL Replication CLient Status', +} + |