Module: check_mk
Branch: master
Commit: 1061ae41c202a0c106897ddc6e2ab120b7da377e
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=1061ae41c202a0…
Author: Sven Panne <sp(a)mathias-kettner.de>
Date: Fri Mar 31 13:45:36 2017 +0200
Removed dead Python implementation.
Change-Id: If1deeca640634cec5fdf04bd54b359c15170b067
---
active_checks/check_mkevents.py | 164 ----------------------------------------
1 file changed, 164 deletions(-)
diff --git a/active_checks/check_mkevents.py b/active_checks/check_mkevents.py
deleted file mode 100755
index e5d40c7..0000000
--- a/active_checks/check_mkevents.py
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env python
-# -*- encoding: utf-8; py-indent-offset: 4 -*-
-# +------------------------------------------------------------------+
-# | ____ _ _ __ __ _ __ |
-# | / ___| |__ ___ ___| | __ | \/ | |/ / |
-# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
-# | | |___| | | | __/ (__| < | | | | . \ |
-# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
-# | |
-# | Copyright Mathias Kettner 2014 mk(a)mathias-kettner.de |
-# +------------------------------------------------------------------+
-#
-# This file is part of Check_MK.
-# The official homepage is at
http://mathias-kettner.de/check_mk.
-#
-# check_mk is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation in version 2. check_mk is distributed
-# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
-# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public License for more de-
-# tails. You should have received a copy of the GNU General Public
-# License along with GNU Make; see the file COPYING. If not, write
-# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-# Boston, MA 02110-1301 USA.
-
-# Old, outdated Python version of check_mkevents. Do not use
-# anymore...
-
-import os, socket, sys
-import ast
-
-try:
- socket_path = os.getenv("OMD_ROOT") + "/tmp/run/mkeventd/status"
# nosec
-except:
- sys.stdout.write("UNKNOWN - OMD_ROOT is not set, no socket path is
defined.\n")
- sys.exit(3)
-
-def query(query, remote_host):
- try:
- if remote_host:
- parts = remote_host.split(":")
- host = parts[0]
- if len(parts) == 2:
- port = int(parts[1])
- else:
- port = 6558
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.settimeout(10)
- sock.connect((host, port))
- else:
- sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- sock.settimeout(3)
- sock.connect(socket_path)
-
- sock.sendall(query)
- sock.shutdown(socket.SHUT_WR)
-
- response_text = ""
- while True:
- chunk = sock.recv(8192)
- response_text += chunk
- if not chunk:
- break
-
- return ast.literal_eval(response_text)
- except SyntaxError, e:
- sys.stdout.write("UNKNOWN - Invalid answer from event daemon\n%s\nQuery
was:\n%s\n" \
- % (e, query))
- sys.exit(3)
-
- except Exception, e:
- if remote_host:
- via = "TCP %s:%d" % (host, port)
- else:
- via = "UNIX socket %s" % socket_path
- sys.stdout.write("UNKNOWN - Cannot connect to event daemon via %s:
%s\n" % (via, e))
- sys.exit(3)
-
-try:
- remote_host = None
- try:
- del sys.argv[sys.argv.index('-a')]
- opt_ignore_acknowledged = True
- except:
- opt_ignore_acknowledged = False
-
- try:
- del sys.argv[sys.argv.index('-l')]
- opt_less_verbose = True
- except:
- opt_less_verbose = False
-
- if sys.argv[1] == '-H':
- remote_host = sys.argv[2]
- del sys.argv[1:3]
- host_name = sys.argv[1]
- if len(sys.argv) > 2:
- application = sys.argv[2]
- else:
- application = None
-except:
- sys.stdout.write("Usage: check_mkevents [-H (REMOTE:PORT|/path/to/unix/socket)]
[-a] [-l] HOST [APPLICATION]\n")
- sys.stdout.write("\n -a do not take into account acknowledged
events.\n")
- sys.stdout.write("\n -l less verbose output.\n")
- sys.stdout.write("\n")
- sys.exit(3)
-
-q = "GET events\n" \
- "Filter: event_host =~ %s\n" % host_name
-
-if application:
- q += "Filter: event_application ~~ %s\n" % application
-
-q += "Filter: event_phase in open ack\n"
-
-response = query(q, remote_host)
-headers = response[0]
-worst_state = 0
-worst_row = None
-count = 0
-unhandled = 0
-for line in response[1:]:
- count += 1
- row = dict(zip(headers, line))
- p = row["event_phase"]
- if p == 'open' or not opt_ignore_acknowledged:
- s = row["event_state"]
- if s == 3:
- if worst_state < 2:
- worst_state = 3
- worst_row = row
- elif s >= worst_state:
- worst_state = s
- worst_row = row
- if p == 'open':
- unhandled += 1
-
-core_state_names = {
- 0 : "OK",
- 1 : "WARN",
- 2 : "CRIT",
- 3 : "UNKNOWN",
-}
-
-if count == 0 and application:
- sys.stdout.write("OK - no events for %s on host %s\n" % (application,
host_name))
-elif count == 0:
- sys.stdout.write("OK - no events for %s\n" % host_name)
-else:
- if opt_less_verbose:
- sys.stdout.write(core_state_names[worst_state] + " - %d events" %
(count))
- if worst_row:
- sys.stdout.write(" (Worst line: %s)" %
(worst_row['event_text'].encode('utf-8')))
- else:
- sys.stdout.write(core_state_names[worst_state] + \
- " - %d events (%d unacknowledged)" % (count, unhandled))
- if worst_row:
- sys.stdout.write(", worst state is %s (Last line: %s)" % \
- (core_state_names[worst_state],
worst_row['event_text'].encode('utf-8')))
- sys.stdout.write("\n")
-
-sys.exit(worst_state)
-