Module: check_mk
Branch: master
Commit: c3b5e4851327eb25f6c5c2d05350e7070ad96d76
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c3b5e4851327eb…
Author: Konstantin Büttner <kb(a)mathias-kettner.de>
Date: Wed Dec 19 15:07:32 2018 +0100
6984 FIX docker_node_disk_usage, docker_node_info, docker_node_images,
docker_node_network: Extract sections to plugin
Due to poor performance of commands such as <tt>docker system df</tt> in some
environments, the
check_mk_agent would be slowed down to the point of unusability. To address this, these
sections
have been extracted into the <tt>mk_docker_node</tt> agent plugin, allowing
them to be run asynchronously.
If you update the agent and you need these sections, you will have to deploy the plugin to
continue
monitoring docker node information.
CMK-1413
Change-Id: I0687e757951f3505e91a167c4d3e4a383a012dca
---
.werks/6984 | 16 ++++++++++++++
agents/check_mk_agent.linux | 26 -----------------------
agents/plugins/mk_docker_node | 49 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 65 insertions(+), 26 deletions(-)
diff --git a/.werks/6984 b/.werks/6984
new file mode 100644
index 0000000..7b93260
--- /dev/null
+++ b/.werks/6984
@@ -0,0 +1,16 @@
+Title: docker_node_disk_usage, docker_node_info, docker_node_images, docker_node_network:
Extract sections to plugin
+Level: 2
+Component: checks
+Class: fix
+Compatible: incomp
+Edition: cre
+State: unknown
+Version: 1.6.0i1
+Date: 1545227106
+
+Due to poor performance of commands such as <tt>docker system df</tt> in some
environments, the
+check_mk_agent would be slowed down to the point of unusability. To address this, these
sections
+have been extracted into the <tt>mk_docker_node</tt> agent plugin, allowing
them to be run asynchronously.
+
+If you update the agent and you need these sections, you will have to deploy the plugin
to continue
+monitoring docker node information.
diff --git a/agents/check_mk_agent.linux b/agents/check_mk_agent.linux
index cc94e66..13e9f56 100755
--- a/agents/check_mk_agent.linux
+++ b/agents/check_mk_agent.linux
@@ -1032,32 +1032,6 @@ if type pvecm > /dev/null 2>&1 ; then
pvecm nodes
fi
-# Iterate all running containers and report piggyback data for them
-if type docker > /dev/null 2>&1; then
- echo "<<<docker_node_info:sep(58)>>>"
- # sed: protect leading whitespace
- docker info | sed 's/^/|/'
-
- echo "<<<docker_node_disk_usage:sep(0)>>>"
- docker system df
-
- echo "<<<docker_node_images>>>"
- echo "[[[images]]]"
- docker images --format "{{json .}}"
-
- echo "[[[image_inspect]]]"
- IMAGE_IDS=$(docker images | awk 'NR>1 {print $3}')
- docker image inspect $IMAGE_IDS
-
- echo "[[[containers]]]"
- # equivalent of 'docker ps' for newer docker versions: 'docker container
ls'
- docker ps --all --format "{{json .}}"
-
- echo "<<<docker_node_network:sep(0)>>>"
- NETWORK_IDS=$(docker network ls -f 'driver=bridge' | awk 'NR>1 {print
$1}')
- docker network inspect $NETWORK_IDS
-fi
-
# Start new liveupdate process in background on each agent execution. Starting
# a new live update process will terminate the old one automatically after
# max. 1 sec.
diff --git a/agents/plugins/mk_docker_node b/agents/plugins/mk_docker_node
new file mode 100755
index 0000000..7bc1080
--- /dev/null
+++ b/agents/plugins/mk_docker_node
@@ -0,0 +1,49 @@
+#!/bin/bash
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2016 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.
+
+if type docker > /dev/null 2>&1; then
+ echo "<<<docker_node_info:sep(58)>>>"
+ # sed: protect leading whitespace
+ docker info | sed 's/^/|/'
+
+ echo "<<<docker_node_disk_usage:sep(0)>>>"
+ docker system df
+
+ echo "<<<docker_node_images>>>"
+ echo "[[[images]]]"
+ docker images --format "{{json .}}"
+
+ echo "[[[image_inspect]]]"
+ IMAGE_IDS=$(docker images | awk 'NR>1 {print $3}')
+ docker image inspect $IMAGE_IDS
+
+ echo "[[[containers]]]"
+ # equivalent of 'docker ps' for newer docker versions: 'docker container
ls'
+ docker ps --all --format "{{json .}}"
+
+ echo "<<<docker_node_network:sep(0)>>>"
+ NETWORK_IDS=$(docker network ls -f 'driver=bridge' | awk 'NR>1 {print
$1}')
+ docker network inspect $NETWORK_IDS
+fi