From 22d3c280de70895fe5df15d4f57a87be17362a51 Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" <csa@suren.me> Date: Thu, 29 Aug 2019 00:27:14 +0200 Subject: Move datafile lock into the database folder and keep the rest of run files outside of the volume (since UNIX domain sockets can't be created on GlusterFS) --- Dockerfile | 14 +++++++------- munin-graph-logging.patch | 10 ---------- munin-update-logging.patch | 10 ---------- munin.conf | 2 +- patches/munin-ds-datalock.patch | 11 +++++++++++ patches/munin-graph-logging.patch | 10 ++++++++++ patches/munin-update-logging.patch | 10 ++++++++++ start-munin.sh | 2 +- test/start_test.sh | 2 +- 9 files changed, 41 insertions(+), 30 deletions(-) delete mode 100644 munin-graph-logging.patch delete mode 100644 munin-update-logging.patch create mode 100644 patches/munin-ds-datalock.patch create mode 100644 patches/munin-graph-logging.patch create mode 100644 patches/munin-update-logging.patch diff --git a/Dockerfile b/Dockerfile index fd9120e..cf26e49 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0. SUPERCRONIC=supercronic-linux-amd64 \ SUPERCRONIC_SHA1SUM=be43e64c45acd6ec4fce5831e03759c89676a0ea -VOLUME /munin +VOLUME /munin/db #Only small temporary files, doesn't need volume #VOLUME /var/lib/nginx @@ -22,8 +22,7 @@ ADD ./munin.conf /etc/munin/munin.conf ADD ./nginx.conf /etc/nginx/nginx.conf ADD ./nginx-munin /etc/nginx/sites-enabled/munin ADD ./start-munin.sh /munin.sh -ADD ./munin-graph-logging.patch /usr/lib/munin -ADD ./munin-update-logging.patch /usr/lib/munin +ADD ./patches /patches # rsyslog is not actually used, but I keep here configuration just in case # Nginx always creates error_log in /var/log/nginx, but doesn't write there if other locating is configured @@ -41,16 +40,17 @@ RUN \ rm -f /etc/nginx/sites-enabled/default && \ \ ln -s /usr/share/webapps/munin/cgi /usr/lib/munin/cgi && \ - cd /usr/lib/munin && patch munin-graph < munin-graph-logging.patch && patch munin-update < munin-update-logging.patch && \ + cd /usr/lib/munin && patch munin-graph < /patches/munin-graph-logging.patch && patch munin-update < /patches/munin-update-logging.patch && \ + cd /usr/share/perl5/vendor_perl/Munin/Master/ && patch Update.pm < /patches/munin-ds-datalock.patch && \ sed -re "/@[[:alnum:]]+/ d; s|munin if|if|" /etc/munin/munin.cron.sample > /etc/munin/munin.cron && \ \ - bash -c "mkdir -p /munin/{db,run,log,www/cache}" && \ + bash -c "mkdir -p /munin/{db,log,www/cache}" && \ ln -s ../www/cache /munin/db/cgi-tmp && \ rm -rf /var/lib/munin/cgi-tmp && \ ln -s /munin/www/cache /var/lib/munin/cgi-tmp && \ \ - chgrp -R root /munin /etc/munin/munin.conf /var/tmp/nginx /var/lib/nginx && \ - chmod -R g+rw /munin /etc/munin/munin.conf /var/tmp/nginx && \ + chgrp -R root /munin /var/run/munin /etc/munin/munin.conf /var/tmp/nginx /var/lib/nginx && \ + chmod -R g+rw /munin /var/run/munin /etc/munin/munin.conf /var/tmp/nginx && \ for name in "/var/tmp/nginx /munin/"; do find $name -type d -print0 | xargs -0 chmod g+x; done EXPOSE 8080 diff --git a/munin-graph-logging.patch b/munin-graph-logging.patch deleted file mode 100644 index aa4fc56..0000000 --- a/munin-graph-logging.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- /usr/share/munin/munin-graph 2015-11-28 00:45:25.274878597 +0100 -+++ /usr/share/munin/munin-graph 2015-11-28 00:45:44.622466044 +0100 -@@ -73,6 +73,7 @@ - - logger_open($config->{'logdir'}); - logger_debug() if $config->{debug} or defined($ENV{CGI_DEBUG}); -+logger_level("warn"); - - if (! graph_check_cron() ) { - # Should not be launched from cron. diff --git a/munin-update-logging.patch b/munin-update-logging.patch deleted file mode 100644 index 4f8e87b..0000000 --- a/munin-update-logging.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- /usr/share/munin/munin-update 2015-11-28 00:44:27.175435050 +0100 -+++ /usr/share/munin/munin-update 2015-11-28 00:44:57.313544402 +0100 -@@ -34,6 +34,7 @@ - - logger_open($config->{'logdir'}); - logger_debug() if $config->{debug}; -+ logger_level("warn"); - - my $update = Munin::Master::Update->new(); - $update->run(); diff --git a/munin.conf b/munin.conf index 5ceff3f..a331659 100644 --- a/munin.conf +++ b/munin.conf @@ -1,5 +1,5 @@ dbdir /munin/db -rundir /munin/run +rundir /var/run/munin htmldir /munin/www logdir /munin/log diff --git a/patches/munin-ds-datalock.patch b/patches/munin-ds-datalock.patch new file mode 100644 index 0000000..3ec249b --- /dev/null +++ b/patches/munin-ds-datalock.patch @@ -0,0 +1,11 @@ +--- Munin/Master/Update.pm ++++ Munin-ds/Master/Update.pm +@@ -265,7 +265,7 @@ + sub _write_new_service_configs_locked { + my ($self) = @_; + +- my $lock_file = "$config->{rundir}/munin-datafile.lock"; ++ my $lock_file = "$config->{dbdir}/datafile.lock"; + munin_runlock($lock_file); + + my $config_dump_file = $self->{config_dump_file}; diff --git a/patches/munin-graph-logging.patch b/patches/munin-graph-logging.patch new file mode 100644 index 0000000..aa4fc56 --- /dev/null +++ b/patches/munin-graph-logging.patch @@ -0,0 +1,10 @@ +--- /usr/share/munin/munin-graph 2015-11-28 00:45:25.274878597 +0100 ++++ /usr/share/munin/munin-graph 2015-11-28 00:45:44.622466044 +0100 +@@ -73,6 +73,7 @@ + + logger_open($config->{'logdir'}); + logger_debug() if $config->{debug} or defined($ENV{CGI_DEBUG}); ++logger_level("warn"); + + if (! graph_check_cron() ) { + # Should not be launched from cron. diff --git a/patches/munin-update-logging.patch b/patches/munin-update-logging.patch new file mode 100644 index 0000000..4f8e87b --- /dev/null +++ b/patches/munin-update-logging.patch @@ -0,0 +1,10 @@ +--- /usr/share/munin/munin-update 2015-11-28 00:44:27.175435050 +0100 ++++ /usr/share/munin/munin-update 2015-11-28 00:44:57.313544402 +0100 +@@ -34,6 +34,7 @@ + + logger_open($config->{'logdir'}); + logger_debug() if $config->{debug}; ++ logger_level("warn"); + + my $update = Munin::Master::Update->new(); + $update->run(); diff --git a/start-munin.sh b/start-munin.sh index e224de1..564eada 100755 --- a/start-munin.sh +++ b/start-munin.sh @@ -12,7 +12,7 @@ SMTP_MESSAGE_DEFAULT='[${var:group};${var:host}] -> ${var:graph_title} -> warnin SMTP_MESSAGE="${SMTP_MESSAGE:-$SMTP_MESSAGE_DEFAULT}" -mkdir -p /munin/{db,run,log,www/cache} +mkdir -p /munin/{db,log,www/cache} [ -a /munin/db/cgi-tmp ] || ln -s ../www/cache /munin/db/cgi-tmp [ -a /var/lib/munin/cgi-tmp ] || ln -s /munin/www/cache /var/lib/munin/cgi-tmp [ -a /var/log/nginx ] || ln -s /tmp /var/log/nginx diff --git a/test/start_test.sh b/test/start_test.sh index f348c7b..9366ff2 100755 --- a/test/start_test.sh +++ b/test/start_test.sh @@ -10,6 +10,6 @@ basedir="$( cd -P "$( dirname "$0" )" && pwd )/munin" docker run -it \ -u 1001 \ -p 8080:8080 \ - -v $basedir:/munin \ + -v $basedir:/munin/db \ -e NODES="styx:192.168.26.117" \ "$@" -- cgit v1.2.3