gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-grid5k] 127/141: add log backup


From: gnunet
Subject: [taler-grid5k] 127/141: add log backup
Date: Thu, 18 Nov 2021 14:51:08 +0100

This is an automated email from the git hooks/post-receive script.

marco-boss pushed a commit to branch master
in repository grid5k.

commit 9cefaca85dab5121d21f08dcbf0028d31cc6b0cf
Author: Boss Marco <bossm8@bfh.ch>
AuthorDate: Fri Nov 12 11:52:13 2021 +0100

    add log backup
---
 configs/etc/rsyslog.d/taler.conf                       |  5 +++++
 configs/usr/lib/systemd/system/taler-logbackup.service | 11 +++++++++++
 configs/usr/lib/systemd/system/taler-logbackup.timer   | 10 ++++++++++
 experiment/run.sh                                      |  4 ++++
 experiment/scripts/log-save.sh                         | 13 +++++++++++--
 experiment/setup.sh                                    |  9 +++++----
 6 files changed, 46 insertions(+), 6 deletions(-)

diff --git a/configs/etc/rsyslog.d/taler.conf b/configs/etc/rsyslog.d/taler.conf
index ce535a7..34bcc72 100644
--- a/configs/etc/rsyslog.d/taler.conf
+++ b/configs/etc/rsyslog.d/taler.conf
@@ -1,7 +1,10 @@
 module(load="omprog")
 # Need to load due to parser error https://github.com/grafana/loki/issues/1783
 module(load="mmutf8fix")
+
+# Set the filename for the log backup
 $template FileName,"/tmp/taler/%programname%.log"
+
 if ($programname startswith 'taler' or $syslogtag startswith 'taler') then {
   action(type="mmutf8fix" replacementChar="?")
 # 
https://grafana.com/docs/loki/latest/clients/promtail/scraping/#rsyslog-output-configuration
@@ -12,7 +15,9 @@ if ($programname startswith 'taler' or $syslogtag startswith 
'taler') then {
          Template="RSYSLOG_SyslogProtocol23Format"
          TCP_Framing="octet-counted"
          KeepAlive="on")
+  # Write all logs also to the file - will periodcally be rotaded by 
taler-logbackup.service
   *.* ?FileName
+  # Do not do any further steps with logs which matched this rule
   & stop
 }
 
diff --git a/configs/usr/lib/systemd/system/taler-logbackup.service 
b/configs/usr/lib/systemd/system/taler-logbackup.service
new file mode 100644
index 0000000..ed81bc6
--- /dev/null
+++ b/configs/usr/lib/systemd/system/taler-logbackup.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Compresses and moves taler logs to the grid5000 nfs
+Wants=taler-logbackup.timer
+
+[Service]
+EnvironmentFile=/etc/environment
+Type=oneshot
+ExecStart=/root/scripts/log-save.sh 
+
+[Install]
+WantedBy=multi-user.target
diff --git a/configs/usr/lib/systemd/system/taler-logbackup.timer 
b/configs/usr/lib/systemd/system/taler-logbackup.timer
new file mode 100644
index 0000000..a602e2b
--- /dev/null
+++ b/configs/usr/lib/systemd/system/taler-logbackup.timer
@@ -0,0 +1,10 @@
+[Unit]
+Description=Compresses and moves taler logs to the grid5000 nfs
+Requires=taler-logbackup.service
+
+[Timer]
+Unit=taler-logbackup.service
+OnCalendar=*:0/10
+
+[Install]
+WantedBy=timers.target
diff --git a/experiment/run.sh b/experiment/run.sh
index 93c6066..36ab35c 100644
--- a/experiment/run.sh
+++ b/experiment/run.sh
@@ -29,6 +29,10 @@ function enable_netdelay() {
   systemctl restart taler-netdelay.timer
 }
 
+function enable_logbackup() {
+
+}
+
 if [[ "${ENABLE_EXPORTERS}" == "true" ]]; 
 then
   systemctl restart prometheus-node-exporter
diff --git a/experiment/scripts/log-save.sh b/experiment/scripts/log-save.sh
index 81e2a74..bbdfe74 100755
--- a/experiment/scripts/log-save.sh
+++ b/experiment/scripts/log-save.sh
@@ -1,4 +1,6 @@
 #!/bin/bash
+# Runs logrotate on the logs written to LOG_DIR
+# Assumes rsyslog to be configured to log files there
 
 LOG_DIR=/tmp/taler
 
@@ -8,5 +10,12 @@ if [ ! -d "${EXPORT_DIR}" ]; then
   mkdir "${EXPORT_DIR}"
 fi
 
-logrotate -f /etc/logrotate.d/taler
-cp ${LOG_DIR}/*.gz ${EXPORT_DIR}
+logrotate /etc/logrotate.d/taler
+
+TS=$(date +%s)
+
+if [ -d "${LOG_DIR}" ]; then
+  for FILE in $(find ${LOG_DIR} -iname "*.gz"); do
+    mv ${FILE} ${EXPORT_DIR}/$(basename -- ${FILE%.gz}.${TS}.gz)
+  done
+fi
diff --git a/experiment/setup.sh b/experiment/setup.sh
index d06e444..f27e03c 100644
--- a/experiment/setup.sh
+++ b/experiment/setup.sh
@@ -3,6 +3,7 @@
 set -euax
 
 source .env
+# Add the environment config for following shells
 cat .env | tee -a /etc/environment
 echo "G5K_USER=$(cat experiment-info.json | jq -r '.user.name')" >> 
/etc/environment
 
@@ -23,9 +24,6 @@ cp -r "${G5K_HOME}"/configs/* /
 sed -i "s/<MONITOR_DOMAIN_HERE>/${MONITOR_DOMAIN}/g" \
        /etc/rsyslog.d/taler.conf
 
-echo "*/10 * * * * root /bin/bash /root/scripts/log-save.sh" \
-      >> /etc/crontab
-
 # Add the dyndns key which will be used by the dns update
 cat << EOF > /root/ddns.key 
 key "ddns-key.perf.taler" {
@@ -35,6 +33,8 @@ key "ddns-key.perf.taler" {
 EOF
 
 if ! grep -Fxq "server=/${DNS_ZONE}/${NS_IP}" /etc/dnsmasq.conf ; then
+
+  # Read grid5k DNS servers from resolv.conf and add them to dnsmasq
   grep nameserver /etc/resolv.conf | \
        awk '{print "server="$2}' \
        >> /etc/dnsmasq.conf
@@ -42,10 +42,11 @@ if ! grep -Fxq "server=/${DNS_ZONE}/${NS_IP}" 
/etc/dnsmasq.conf ; then
   echo "server=/${DNS_ZONE}/${NS_IP}" >> /etc/dnsmasq.conf
 fi
 
+# Set dnsmasq to be the resolver
 echo "nameserver 127.0.0.1" > /etc/resolv.conf
 
 systemctl daemon-reload
-systemctl restart dnsmasq
+systemctl restart dnsmasq 
 
 if [ -f ~/taler-perf.sh ]; then
   mv ~/taler-perf.sh /usr/local/bin/taler-perf

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]