Kleines Go-Monitoring für Rootserver.
Features:
- HTTP/HTTPS Website Checks
- TCP Port Checks
- systemd Service Checks
- Docker Container Checks
- Mailversand über lokalen Postfix / SMTP
- State-Datei, damit nur bei Statuswechseln Mails gesendet werden
- Recovery-Mail, wenn ein Check wieder UP ist
go build -o webcheck main.gosudo mkdir -p /opt/webcheck /var/lib/webcheck
sudo cp webcheck /opt/webcheck/
sudo cp config.example.json /opt/webcheck/config.json
sudo nano /opt/webcheck/config.jsoncd /opt/webcheck
./webcheck -config config.json0 * * * * cd /opt/webcheck && ./webcheck -config config.json >> /var/log/webcheck.log 2>&1{
"name": "example.com",
"type": "http",
"target": "https://example.com"
}Erfolgreich ist jeder HTTP-Status von 200 bis 399.
{
"name": "SMTP lokal",
"type": "tcp",
"target": "127.0.0.1:25"
}{
"name": "HAProxy systemd",
"type": "service",
"target": "haproxy"
}Intern wird verwendet:
systemctl is-active --quiet haproxy{
"name": "Docker Container nextcloud",
"type": "docker",
"target": "nextcloud"
}Intern wird verwendet:
docker inspect --format '{{.State.Running}}' nextcloudDer User, der den Cronjob ausführt, braucht Zugriff auf Docker.