summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xagent/mysql_repl (renamed from agent/mysql-repl)2
-rw-r--r--checks/mysql_repl45
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',
+}
+