From 8d396664238cdaa5635eaa22f5a04c285b8b95fb Mon Sep 17 00:00:00 2001 From: Ambroise Rosset Date: Fri, 5 Aug 2022 12:29:28 +0200 Subject: [PATCH] add script to monitor redis application through the check_mk agent --- agent-local/redis | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 agent-local/redis diff --git a/agent-local/redis b/agent-local/redis new file mode 100755 index 000000000..c7067bc04 --- /dev/null +++ b/agent-local/redis @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 + +import json +import subprocess + +shell_cmd = "redis-cli info" +all_data = ( + subprocess.Popen(shell_cmd, shell=True, stdout=subprocess.PIPE) + .stdout.read() + .split(b"\n") +) + +version = 1 +error = 0 +error_string = "" +redis_data = {} + +# stdout list to json +try: + category = "" + for d in all_data: + d = d.replace(b"\r", b"") + + if d in [b""]: + continue + + if d.startswith(b"#"): + category = d.replace(b"# ", b"").decode("utf-8") + redis_data[category] = {} + continue + + if not len(category): + error = 2 + error_string = "category not defined" + break + + k, v = d.split(b":") + k = k.decode("utf-8") + v = v.decode("utf-8") + + redis_data[category][k] = v + +except: + error = 1 + error_string = "data extracting error" + +output = { + "version": version, + "error": error, + "errorString": error_string, + "data": redis_data, +} +print("<<>>") +print(json.dumps(output))