No Description

Suren A. Chilingaryan 6a486b088b Optimize dockerfile 4 years ago
files 6a486b088b Optimize dockerfile 4 years ago
test 22d3c280de Move datafile lock into the database folder and keep the rest of run files outside of the volume (since UNIX domain sockets can't be created on GlusterFS) 4 years ago
.gitignore aa2d22c92a Support CGI graphs 7 years ago
Dockerfile 6348285571 Fix redirect 4 years ago
README.md d6e30533d7 OpenShift support 4 years ago

README.md

Docker image for munin server

Note

The package is based on the original Scalingo docker image which was modified to run OpenShift platform. Major modifications:

  • Runs under non-privileged user
  • Based on Alpine Linux
  • Database and lockfiles can be mounted as a single volume
  • Authentication support is dropped, email notifications are not checked

Configuration

All the configuration is done through the environment.

SMTP info for alerts

Email credentials used to send emails (like alerts)

  • SMTP_HOST
  • SMTP_PORT
  • SMTP_USERNAME
  • SMTP_PASSWORD
  • SMTP_USE_TLS
  • SMTP_ALWAYS_SEND
  • SMTP_MESSAGE

Alert target

Email addressed used for the alerts, require SMTP credentials.

  • ALERT_RECIPIENT
  • ALERT_SENDER

List of the nodes to check

The port is always optional, default is 4949

  • NODES format: name1:ip1[:port1] name2:ip2[:port2] …
  • SNMP_NODES format: name1:ip1[:port1]
  • SSH_NODES format: name1:ip1[:port1]

Port

Container is listening on the port 8080

Volumes

For a bit of persistency

  • /minin -> everything: configuration, database, locks, and log files
  • /munin/db -> db
  • /munin/run -> locks
  • /munin/log -> log files

How to use the image

docker build -t munin-server .
docker run -d \
  -p 8080:8080 \
  -v /var/lib/munin:/munin \
  -e SMTP_HOST=smtp.example.com \
  -e SMTP_PORT=587 \
  -e SMTP_USERNAME=smtp-username \
  -e SMTP_PASSWORD=smtp-password \
  -e SMTP_USE_TLS=false \
  -e SMTP_ALWAYS_SEND=true \
  -e SMTP_MESSAGE='[${var:group};${var:host}] -> ${var:graph_title} -> warnings: ${loop<,>:wfields  ${var:label}=${var:value}} / criticals: ${loop<,>:cfields  ${var:label}=${var:value}}' \
  -e ALERT_RECIPIENT=monitoring@example.com \
  -e ALERT_SENDER=alerts@example.com \
  -e NODES="server1:10.0.0.1 server2:10.0.0.2" \
  -e SNMP_NODES="router1:10.0.0.254:9999" \
  munin-server