Ansible Role: Munin

Build Status

Installs munin, a monitoring system, on RedHat/CentOS or Debian/Ubuntu Linux servers.

Requirements

If you are running a RedHat-based distribution, you need to install the EPEL repository, which can be simply installed via the geerlingguy.repo-epel role.

If you would like to view munin's graphs and output via HTTP, you will need an HTTP server like Apache or Nginx running.

Role Variables

Available variables are listed below, along with default values (see vars/main.yml):

munin_dbdir: /var/lib/munin
munin_htmldir: /var/www/html/munin
munin_logdir: /var/log/munin
munin_rundir: /var/run/munin
munin_includedir: /etc/munin/conf.d

Some default locations for Munin-generated files, configurations, logs, etc.

munin_html_strategy: cron
munin_max_processes: 12

See the official Munin documentation for munin.conf for more information on these and other optional directives.

munin_cron_job: present

Determines whether the munin cron job (which runs every 5 minutes) should be active. By setting this to absent, you can leave munin installed and configured on your server but effectively disable it. This allows quick enabling or disabling for munin monitoring.

munin_admin_user: munin
munin_admin_password: munin

These values will be used to generate a user via htpasswd under which the munin pages will be password protected with basic HTTP authentication. (Note: This method only works when Munin is running under default Apache configurations; if you use Nginx or a customized Apache server, you will need to configure authentication on your own).

munin_hosts:
  - {
    name: "localhost",
    address: "127.0.0.1",
    extra: ["use_node_name yes"]
  }

A listing of hosts to which munin will connect and monitor. Each item in the list will be added to your munin configuration like the following (assuming you're using the above example):

[localhost]
  address: 127.0.0.1
  use_node_name yes

See documentation for Munin Node Definitions for more details as to what values to use here.

You can enable mail alerts by adding :

munin_alerts:
  - {
    name: "JohnDoe",
    email: "johndoe@example.com",
    subject: "Munin-notification for ${var:group} :: ${var:host}",
    level: "warning critical"
  }

Dependencies

None.

Example Playbook

- hosts: servers
  roles:
    - { role: geerlingguy.munin }

License

MIT / BSD

Author Information

This role was created in 2014 by Jeff Geerling, author of Ansible for DevOps.