Monit é um serviço que faz monitoramento do sistema que pode ser visualizado via browser. É acessado via usuário e senha.
Primeiramente devemos habilitar o repositório backports no debian 10
# printf '%s\n' "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list # apt update # apt install monit
Por padrão o monit não consegue executar com o certificado do site utilizando o certbot.
Site de referencia para a configuração do certificado
# cp /etc/letsencrypt/live/server_fqdn/fullchain.pem /etc/ssl/certs/monit.pem # cat /etc/letsencrypt/live/server_fqdn/privkey.pem >> /etc/ssl/certs/monit.pem
Gere os parâmetros Diffie-Hellman, levará tempo
# openssl dhparam -2 2048 >> /etc/ssl/certs/monit.pem
Definir proprietário e permissões nesse arquivo
# chmod 0600 /etc/ssl/certs/monit.pem # chown root:root /etc/ssl/certs/monit.pem
Antes de iniciar o monit devemos configurar algumas coisas para deixar o mesmo mais seguro.
# nano /etc/monit/monitrc
set daemon 60 # check services at 2-minute intervals
check process apache with pidfile /run/apache2/apache2.pid start program = "systemctl restart apache2" with timeout 60 seconds stop program = "systemctl stop apache2"
set httpd port 2832 and # use address localhost # only accept connection from localhost (drop if you use M/Monit) allow 0.0.0.0/0.0.0.0 # allow localhost to connect to the server and allow "usuario":"senha" # require user 'admin' with password 'monit'
ufw allow 2812 ufw reload
# cd /etc/monit/conf.d
check process mysqld with pidfile /run/mysqld/mysqld.pid start program = "systemctl start mariadb start" stop program = "systemctl stop mariadb" if failed unixsocket /var/run/mysqld/mysqld.sock then restart
check filesystem rootfs with path / if space usage > 90% then alert
check process sshd with pidfile /run/sshd.pid start program = "systemctl start sshd" stop program = "systemctl stop sshd" if failed port 2228 protocol ssh then restart