From b8d0b51685c7e2b2a530742df551333bbaa9c921 Mon Sep 17 00:00:00 2001 From: Andris Reinman Date: Mon, 16 Mar 2020 12:54:47 +0200 Subject: [PATCH 1/2] Set up separate log files for different services --- .../00_install_global_functions_variables.sh | 32 +++++++++++++++++++ setup/01_install_commits.sh | 0 setup/02_install_prerequisites.sh | 0 setup/03_install_check_running_services.sh | 0 setup/04_install_import_keys.sh | 0 setup/05_install_packages.sh | 0 setup/06_install_enable_services.sh | 0 setup/07_install_wildduck.sh | 4 +++ setup/08_install_haraka.sh | 4 +++ setup/09_install_zone_mta.sh | 6 ++++ setup/10_install_wildduck_webmail.sh | 4 +++ setup/11_install_nginx.sh | 0 setup/12_install_ufw_rules.sh | 0 setup/13_install_ssl_certs.sh | 0 setup/14_install_start_services.sh | 6 ++++ setup/15_install_deploy.sh | 0 setup/get_install.sh | 4 ++- 17 files changed, 59 insertions(+), 1 deletion(-) mode change 100644 => 100755 setup/00_install_global_functions_variables.sh mode change 100644 => 100755 setup/01_install_commits.sh mode change 100644 => 100755 setup/02_install_prerequisites.sh mode change 100644 => 100755 setup/03_install_check_running_services.sh mode change 100644 => 100755 setup/04_install_import_keys.sh mode change 100644 => 100755 setup/05_install_packages.sh mode change 100644 => 100755 setup/06_install_enable_services.sh mode change 100644 => 100755 setup/07_install_wildduck.sh mode change 100644 => 100755 setup/08_install_haraka.sh mode change 100644 => 100755 setup/09_install_zone_mta.sh mode change 100644 => 100755 setup/10_install_wildduck_webmail.sh mode change 100644 => 100755 setup/11_install_nginx.sh mode change 100644 => 100755 setup/12_install_ufw_rules.sh mode change 100644 => 100755 setup/13_install_ssl_certs.sh mode change 100644 => 100755 setup/14_install_start_services.sh mode change 100644 => 100755 setup/15_install_deploy.sh mode change 100644 => 100755 setup/get_install.sh diff --git a/setup/00_install_global_functions_variables.sh b/setup/00_install_global_functions_variables.sh old mode 100644 new mode 100755 index ad70dd82..0a74fa11 --- a/setup/00_install_global_functions_variables.sh +++ b/setup/00_install_global_functions_variables.sh @@ -253,3 +253,35 @@ sudo $SYSTEMCTL_PATH restart $1 || echo \"Failed restarting service\"" > "/var/o chmod +x "/var/opt/$1.git/hooks/update" } export -f hook_script_bower + +function log_script { + +SERVICE_NAME=$1 + +# Ensure required files and permissions +echo "d /var/log/${SERVICE_NAME} 0750 syslog adm" > /etc/tmpfiles.d/${SERVICE_NAME}-log.conf + +# Redirect MongoDB log output from syslog to mongodb log file +echo "if ( \$programname startswith \"$SERVICE_NAME\" ) then { + action(type=\"omfile\" file=\"/var/log/${SERVICE_NAME}/${SERVICE_NAME}.log\") + stop +}" > /etc/rsyslog.d/25-${SERVICE_NAME}.conf + +# Setup log rotate +echo "/var/log/${SERVICE_NAME}/${SERVICE_NAME}.log { + daily + ifempty + missingok + rotate 7 + compress + create 640 syslog adm + su root root + sharedscripts + postrotate + systemctl kill --signal=SIGHUP --kill-who=main rsyslog.service 2>/dev/null || true + endscript +}" > /etc/logrotate.d/${SERVICE_NAME} + +} + +export -f log_script \ No newline at end of file diff --git a/setup/01_install_commits.sh b/setup/01_install_commits.sh old mode 100644 new mode 100755 diff --git a/setup/02_install_prerequisites.sh b/setup/02_install_prerequisites.sh old mode 100644 new mode 100755 diff --git a/setup/03_install_check_running_services.sh b/setup/03_install_check_running_services.sh old mode 100644 new mode 100755 diff --git a/setup/04_install_import_keys.sh b/setup/04_install_import_keys.sh old mode 100644 new mode 100755 diff --git a/setup/05_install_packages.sh b/setup/05_install_packages.sh old mode 100644 new mode 100755 diff --git a/setup/06_install_enable_services.sh b/setup/06_install_enable_services.sh old mode 100644 new mode 100755 diff --git a/setup/07_install_wildduck.sh b/setup/07_install_wildduck.sh old mode 100644 new mode 100755 index faf02bec..a92a466a --- a/setup/07_install_wildduck.sh +++ b/setup/07_install_wildduck.sh @@ -60,6 +60,10 @@ npm install --unsafe-perm --production chown -R deploy:deploy /var/opt/wildduck.git chown -R deploy:deploy /opt/wildduck +echo "d /opt/wildduck 0755 deploy deploy +d /etc/wildduck 0755 wildduck wildduck" > /etc/tmpfiles.d/zone-mta.conf +log_script "wildduck-server" + echo "[Unit] Description=WildDuck Mail Server Conflicts=cyrus.service dovecot.service diff --git a/setup/08_install_haraka.sh b/setup/08_install_haraka.sh old mode 100644 new mode 100755 index d72cacb4..d03a7954 --- a/setup/08_install_haraka.sh +++ b/setup/08_install_haraka.sh @@ -101,6 +101,10 @@ error=false' > config/clamd.ini cp plugins/wildduck/config/wildduck.yaml config/wildduck.yaml sed -i -e "s/secret value/$SRS_SECRET/g" config/wildduck.yaml +# Ensure required files and permissions +echo "d /opt/haraka 0755 deploy deploy" > /etc/tmpfiles.d/haraka.conf +log_script "haraka" + echo '[Unit] Description=Haraka MX Server After=mongod.service redis.service diff --git a/setup/09_install_zone_mta.sh b/setup/09_install_zone_mta.sh old mode 100644 new mode 100755 index 85726656..d73b2a22 --- a/setup/09_install_zone_mta.sh +++ b/setup/09_install_zone_mta.sh @@ -111,6 +111,12 @@ npm install --unsafe-perm --production chown -R deploy:deploy /var/opt/zone-mta.git chown -R deploy:deploy /var/opt/zonemta-wildduck.git chown -R deploy:deploy /opt/zone-mta +chown -R wildduck:wildduck /etc/zone-mta + +# Ensure required files and permissions +echo "d /opt/zone-mta 0755 deploy deploy +d /etc/zone-mta 0755 wildduck wildduck" > /etc/tmpfiles.d/zone-mta.conf +log_script "zone-mta" echo '[Unit] Description=Zone Mail Transport Agent diff --git a/setup/10_install_wildduck_webmail.sh b/setup/10_install_wildduck_webmail.sh old mode 100644 new mode 100755 index 36d3ffe2..6e5f3c79 --- a/setup/10_install_wildduck_webmail.sh +++ b/setup/10_install_wildduck_webmail.sh @@ -43,6 +43,10 @@ chown -R deploy:deploy /opt/wildduck-webmail HOME=/home/deploy sudo -u deploy npm install HOME=/home/deploy sudo -u deploy npm run bowerdeps + +echo "d /opt/wildduck-webmail 0755 deploy deploy" > /etc/tmpfiles.d/zone-mta.conf +log_script "wildduck-www" + echo '[Unit] Description=Wildduck Webmail After=wildduck.service diff --git a/setup/11_install_nginx.sh b/setup/11_install_nginx.sh old mode 100644 new mode 100755 diff --git a/setup/12_install_ufw_rules.sh b/setup/12_install_ufw_rules.sh old mode 100644 new mode 100755 diff --git a/setup/13_install_ssl_certs.sh b/setup/13_install_ssl_certs.sh old mode 100644 new mode 100755 diff --git a/setup/14_install_start_services.sh b/setup/14_install_start_services.sh old mode 100644 new mode 100755 index edb5785f..e71c2a5d --- a/setup/14_install_start_services.sh +++ b/setup/14_install_start_services.sh @@ -4,6 +4,12 @@ OURNAME=14_install_start_services.sh echo -e "\n-- Executing ${ORANGE}${OURNAME}${NC} subscript --" +# Run tmpfiles definitions to ensure required directories/files +systemd-tmpfiles --create --remove + +# Restart rsyslog for the changes to take effect +systemctl restart rsyslog + # update reload script for future updates echo "#!/bin/bash $SYSTEMCTL_PATH reload nginx diff --git a/setup/15_install_deploy.sh b/setup/15_install_deploy.sh old mode 100644 new mode 100755 diff --git a/setup/get_install.sh b/setup/get_install.sh old mode 100644 new mode 100755 index cdb28370..062e9dac --- a/setup/get_install.sh +++ b/setup/get_install.sh @@ -1,7 +1,9 @@ #! /bin/bash +BRANCH="${1:-master}" + # This script downloads all the installation files. -BASEURL="https://raw.githubusercontent.com/nodemailer/wildduck/master/setup/" +BASEURL="https://raw.githubusercontent.com/nodemailer/wildduck/$BRANCH/setup/" ## declare an array declare -a arr=( From 5f618bb18c199d4cdef8fcbda202e826a90bdc94 Mon Sep 17 00:00:00 2001 From: Andris Reinman Date: Mon, 16 Mar 2020 12:55:53 +0200 Subject: [PATCH 2/2] Set up separate log files for different services --- setup/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/setup/README.md b/setup/README.md index c047893b..98a017dc 100644 --- a/setup/README.md +++ b/setup/README.md @@ -53,6 +53,10 @@ Configuration files are installed to the following locations: 3. WildDuck Webmail: /etc/wildduck/wildduck-webmail.toml 4. Haraka: /opt/haraka/config +## Log files + +All `stdout` and `stderr` is written to service specific log files. For example WildDuck server logs can be found from `/var/log/wildduc-server/wildduck-server.log`. + ## Code changes Install script sets up applications as remote git repositories. You can clone these to your own machine using a special deploy user. If you push changes back to the remote repo, related services are restarted automatically.