diff options
-rwxr-xr-x | agent/mysql_repl (renamed from agent/mysql-repl) | 2 | ||||
-rw-r--r-- | checks/mysql_repl | 45 |
2 files changed, 46 insertions, 1 deletions
diff --git a/agent/mysql-repl b/agent/mysql_repl index 7a8b54f..fc2bf67 100755 --- a/agent/mysql-repl +++ b/agent/mysql_repl @@ -2,7 +2,7 @@ # # by Christain Pointner <equinox@helsinki.at> - 28/07/15 -echo "<<<mysql-repl>>>" +echo "<<<mysql_repl>>>" mysql --defaults-extra-file=/etc/mysql/debian.cnf -e "SHOW SLAVE STATUS\G" 2>/dev/null | sed 's/^ *//' | sed '/^*/d' 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', +} + |