summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Dockerfile2
-rw-r--r--README.md1
-rw-r--r--nginx.conf2
-rwxr-xr-xstart-munin.sh36
4 files changed, 34 insertions, 7 deletions
diff --git a/Dockerfile b/Dockerfile
index e3cacde..c87f487 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,7 +12,7 @@ VOLUME /var/lib/munin
VOLUME /var/log/munin
ADD ./munin.conf /etc/munin/munin.conf
-AdD ./nginx.conf /etc/nginx/nginx.conf
+ADD ./nginx.conf /etc/nginx/nginx.conf
ADD ./nginx-munin /etc/nginx/sites-enabled/munin
ADD ./start-munin.sh /munin
ADD ./munin-graph-logging.patch /usr/share/munin
diff --git a/README.md b/README.md
index d32553d..cc39d1b 100644
--- a/README.md
+++ b/README.md
@@ -36,6 +36,7 @@ The port is always optional, default is 4949
* `NODES` format: `name1:ip1[:port1] name2:ip2[:port2] …`
* `SNMP_NODES` format: `name1:ip1[:port1]` …
+* `SSH_NODES` format: `name1:ip1[:port1]` …
## Port
diff --git a/nginx.conf b/nginx.conf
index baac5b6..7fb8e46 100644
--- a/nginx.conf
+++ b/nginx.conf
@@ -26,5 +26,3 @@ http {
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
-
-
diff --git a/start-munin.sh b/start-munin.sh
index fef4449..71b2359 100755
--- a/start-munin.sh
+++ b/start-munin.sh
@@ -1,6 +1,7 @@
#!/bin/bash
NODES=${NODES:-}
SNMP_NODES=${SNMP_NODES:-}
+SSH_NODES=${SSH_NODES:-}
MUNIN_USERS=${MUNIN_USERS:-${MUNIN_USER:-user}}
MUNIN_PASSWORDS=${MUNIN_PASSWORDS:-${MUNIN_PASSWORD:-password}}
MAIL_CONF_PATH='/var/lib/munin/.mailrc'
@@ -49,7 +50,7 @@ fi
# generate the Munin auth username/password file
if [ ! -f /etc/munin/htpasswd.users ]; then
- uc = 0
+ uc=0
IFS=' ' read -ra ARR_USERS <<< "$MUNIN_USERS"
IFS=' ' read -ra ARR_PASSWORDS <<< "$MUNIN_PASSWORDS"
for u in "${ARR_USERS[@]}"; do
@@ -67,7 +68,7 @@ do
if [ ${#PORT} -eq 0 ]; then
PORT=4949
fi
- if ! grep -q $HOST /etc/munin/munin.conf ; then
+ if ! grep -q "'^$HOST$'" /etc/munin/munin.conf ; then
cat << EOF >> /etc/munin/munin.conf
[$NAME]
address $HOST
@@ -75,6 +76,7 @@ do
port $PORT
EOF
+ echo "Added node '$NAME' '$HOST'"
fi
done
@@ -87,7 +89,7 @@ do
if [ ${#PORT} -eq 0 ]; then
PORT=4949
fi
- if ! grep -q $HOST /etc/munin/munin.conf ; then
+ if ! grep -q "'^$HOST$'" /etc/munin/munin.conf ; then
cat << EOF >> /etc/munin/munin.conf
[$NAME]
address $HOST
@@ -95,6 +97,27 @@ do
port $PORT
EOF
+ echo "Added SNMP node '$NAME' '$HOST'"
+ fi
+done
+
+for SSH_NODE in $SSH_NODES
+do
+ NAME=`echo $SSH_NODE | cut -d ":" -f1`
+ HOST=`echo $SSH_NODE | cut -d ":" -f2`
+ PORT=`echo $SSH_NODE | cut -d ":" -f3`
+ if [ ${#PORT} -eq 0 ]; then
+ PORT=4949
+ fi
+ if ! grep -q "'^$HOST$'" /etc/munin/munin.conf ; then
+ cat << EOF >> /etc/munin/munin.conf
+[$NAME]
+ address ssh://$HOST/usr/bin/nc localhost 4949
+ use_node_name yes
+ port $PORT
+
+EOF
+ echo "Added SSH node '$NAME' '$HOST'"
fi
done
@@ -119,16 +142,21 @@ fi
/usr/sbin/rsyslogd
# start cron
/usr/sbin/cron
+# Issue: 'NUMBER OF HARD LINKS > 1' prevents cron exec in container
+# https://github.com/phusion/baseimage-docker/issues/198
+touch /etc/crontab /etc/cron.d/*
# start local munin-node
/usr/sbin/munin-node
echo "Using the following munin nodes:"
echo $NODES
+echo "(ssh) $SSH_NODES"
+echo "(snmp) $SNMP_NODES"
# start spawn-cgi to enable CGI interface with munin (dynamix graph generation)
spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U munin -u munin -g munin /usr/lib/munin/cgi/munin-cgi-graph
# start nginx
/usr/sbin/nginx
# show logs
-echo "Tailing /var/log/syslog..."
+echo "Tailing syslog and munin-update log..."
tail -F /var/log/syslog /var/log/munin/munin-update.log & pid=$!
echo "tail -F running in $pid"