63 lines
2.2 KiB
Bash
63 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
source ./lib.sh
|
|
|
|
log "Monit konfigurieren…"
|
|
cat > /etc/monit/monitrc <<'EOF'
|
|
set daemon 60
|
|
set logfile syslog facility log_daemon
|
|
|
|
check process postfix with pidfile /var/spool/postfix/pid/master.pid
|
|
start program = "/bin/systemctl start postfix"
|
|
stop program = "/bin/systemctl stop postfix"
|
|
if failed port 25 protocol smtp then restart
|
|
if failed port 465 type tcp ssl then restart
|
|
if failed port 587 type tcp then restart
|
|
|
|
check process dovecot with pidfile /var/run/dovecot/master.pid
|
|
start program = "/bin/systemctl start dovecot"
|
|
stop program = "/bin/systemctl stop dovecot"
|
|
if failed port 143 type tcp then restart
|
|
if failed port 993 type tcp ssl then restart
|
|
if failed port 110 type tcp then restart
|
|
if failed port 995 type tcp ssl then restart
|
|
|
|
check process mariadb with pidfile /var/run/mysqld/mysqld.pid
|
|
start program = "/bin/systemctl start mariadb"
|
|
stop program = "/bin/systemctl stop mariadb"
|
|
if failed port 3306 type tcp then restart
|
|
|
|
check process redis-server with pidfile /run/redis/redis-server.pid
|
|
start program = "/bin/systemctl start redis-server"
|
|
stop program = "/bin/systemctl stop redis-server"
|
|
if failed port 6379 type tcp then restart
|
|
|
|
check process rspamd with pidfile /run/rspamd/rspamd.pid
|
|
start program = "/bin/systemctl start rspamd"
|
|
stop program = "/bin/systemctl stop rspamd"
|
|
if failed port 11332 type tcp then restart
|
|
|
|
check process opendkim with pidfile /run/opendkim/opendkim.pid
|
|
start program = "/bin/systemctl start opendkim"
|
|
stop program = "/bin/systemctl stop opendkim"
|
|
if failed port 8891 type tcp then restart
|
|
|
|
check process nginx with pidfile /run/nginx.pid
|
|
start program = "/bin/systemctl start nginx"
|
|
stop program = "/bin/systemctl stop nginx"
|
|
if failed port 80 type tcp then restart
|
|
if failed port 443 type tcp ssl then restart
|
|
|
|
# Reverb WebSocket
|
|
check process mailwolt-ws matching "reverb:start"
|
|
start program = "/bin/systemctl start mailwolt-ws"
|
|
stop program = "/bin/systemctl stop mailwolt-ws"
|
|
if failed host 127.0.0.1 port 8080 type tcp for 2 cycles then restart
|
|
if 5 restarts within 5 cycles then timeout
|
|
EOF
|
|
|
|
chmod 600 /etc/monit/monitrc
|
|
monit -t && systemctl enable --now monit
|
|
monit reload
|
|
monit summary || true
|