Turn munin role suitable for OpenBSD
This commit is contained in:
parent
5b2ab0d8d3
commit
ade957c08d
87
munin/tasks/debian.yml
Normal file
87
munin/tasks/debian.yml
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Ensure that Munin is installed
|
||||||
|
apt:
|
||||||
|
name: '{{ item }}'
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- munin
|
||||||
|
- munin-node
|
||||||
|
- munin-plugins-core
|
||||||
|
- munin-plugins-extra
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
- packages
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Replace localdomain in Munin config
|
||||||
|
replace:
|
||||||
|
dest: /etc/munin/munin.conf
|
||||||
|
regexp: 'localhost.localdomain'
|
||||||
|
replace: '{{ ansible_fqdn }}'
|
||||||
|
notify: restart munin-node
|
||||||
|
|
||||||
|
- name: Rename the localdomain data dir
|
||||||
|
command: mv /var/lib/munin/localdomain /var/lib/munin/{{ ansible_domain }}
|
||||||
|
args:
|
||||||
|
creates: /var/lib/munin/{{ ansible_domain }}
|
||||||
|
removes: /var/lib/munin/localdomain
|
||||||
|
notify: restart munin-node
|
||||||
|
|
||||||
|
when: not ansible_hostname == "localdomain"
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Ensure some Munin plugins are disabled
|
||||||
|
file:
|
||||||
|
path: '/etc/munin/plugins/{{ item }}'
|
||||||
|
state: absent
|
||||||
|
with_items:
|
||||||
|
- http_loadtime
|
||||||
|
- exim_mailqueue
|
||||||
|
- exim_mailstats
|
||||||
|
- nfsd
|
||||||
|
- nfsd4
|
||||||
|
- nfs_client
|
||||||
|
- nfs4_client
|
||||||
|
notify: restart munin-node
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Ensure some Munin plugins are enabled
|
||||||
|
file:
|
||||||
|
src: "/usr/share/munin/plugins/{{ item }}"
|
||||||
|
dest: "/etc/munin/plugins/{{ item }}"
|
||||||
|
state: link
|
||||||
|
with_items:
|
||||||
|
- meminfo
|
||||||
|
- netstat_multi
|
||||||
|
- tcp
|
||||||
|
notify: restart munin-node
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Enable sensors plugin unless VM detected
|
||||||
|
file:
|
||||||
|
src: /usr/share/munin/plugins/sensors_
|
||||||
|
dest: /etc/munin/plugins/sensors_temp
|
||||||
|
state: link
|
||||||
|
when: ansible_virtualization_role != "guest"
|
||||||
|
notify: restart munin-node
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: adjustments for grsec kernel
|
||||||
|
blockinfile:
|
||||||
|
dest: /etc/munin/plugin-conf.d/munin-node
|
||||||
|
block: |
|
||||||
|
|
||||||
|
[processes]
|
||||||
|
user root
|
||||||
|
|
||||||
|
[vmstat]
|
||||||
|
user root
|
||||||
|
|
||||||
|
[swap]
|
||||||
|
user root
|
||||||
|
when: ansible_kernel | search("-grs-")
|
|
@ -1,87 +1,6 @@
|
||||||
---
|
---
|
||||||
|
- include: debian.yml
|
||||||
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
- name: Ensure that Munin is installed
|
- include: openbsd.yml
|
||||||
apt:
|
when: ansible_os_family == "OpenBSD"
|
||||||
name: '{{ item }}'
|
|
||||||
state: present
|
|
||||||
with_items:
|
|
||||||
- munin
|
|
||||||
- munin-node
|
|
||||||
- munin-plugins-core
|
|
||||||
- munin-plugins-extra
|
|
||||||
tags:
|
|
||||||
- munin
|
|
||||||
- packages
|
|
||||||
|
|
||||||
- block:
|
|
||||||
- name: Replace localdomain in Munin config
|
|
||||||
replace:
|
|
||||||
dest: /etc/munin/munin.conf
|
|
||||||
regexp: 'localhost.localdomain'
|
|
||||||
replace: '{{ ansible_fqdn }}'
|
|
||||||
notify: restart munin-node
|
|
||||||
|
|
||||||
- name: Rename the localdomain data dir
|
|
||||||
command: mv /var/lib/munin/localdomain /var/lib/munin/{{ ansible_domain }}
|
|
||||||
args:
|
|
||||||
creates: /var/lib/munin/{{ ansible_domain }}
|
|
||||||
removes: /var/lib/munin/localdomain
|
|
||||||
notify: restart munin-node
|
|
||||||
|
|
||||||
when: not ansible_hostname == "localdomain"
|
|
||||||
tags:
|
|
||||||
- munin
|
|
||||||
|
|
||||||
- name: Ensure some Munin plugins are disabled
|
|
||||||
file:
|
|
||||||
path: '/etc/munin/plugins/{{ item }}'
|
|
||||||
state: absent
|
|
||||||
with_items:
|
|
||||||
- http_loadtime
|
|
||||||
- exim_mailqueue
|
|
||||||
- exim_mailstats
|
|
||||||
- nfsd
|
|
||||||
- nfsd4
|
|
||||||
- nfs_client
|
|
||||||
- nfs4_client
|
|
||||||
notify: restart munin-node
|
|
||||||
tags:
|
|
||||||
- munin
|
|
||||||
|
|
||||||
- name: Ensure some Munin plugins are enabled
|
|
||||||
file:
|
|
||||||
src: "/usr/share/munin/plugins/{{ item }}"
|
|
||||||
dest: "/etc/munin/plugins/{{ item }}"
|
|
||||||
state: link
|
|
||||||
with_items:
|
|
||||||
- meminfo
|
|
||||||
- netstat_multi
|
|
||||||
- tcp
|
|
||||||
notify: restart munin-node
|
|
||||||
tags:
|
|
||||||
- munin
|
|
||||||
|
|
||||||
- name: Enable sensors plugin unless VM detected
|
|
||||||
file:
|
|
||||||
src: /usr/share/munin/plugins/sensors_
|
|
||||||
dest: /etc/munin/plugins/sensors_temp
|
|
||||||
state: link
|
|
||||||
when: ansible_virtualization_role != "guest"
|
|
||||||
notify: restart munin-node
|
|
||||||
tags:
|
|
||||||
- munin
|
|
||||||
|
|
||||||
- name: adjustments for grsec kernel
|
|
||||||
blockinfile:
|
|
||||||
dest: /etc/munin/plugin-conf.d/munin-node
|
|
||||||
block: |
|
|
||||||
|
|
||||||
[processes]
|
|
||||||
user root
|
|
||||||
|
|
||||||
[vmstat]
|
|
||||||
user root
|
|
||||||
|
|
||||||
[swap]
|
|
||||||
user root
|
|
||||||
when: ansible_kernel | search("-grs-")
|
|
||||||
|
|
100
munin/tasks/openbsd.yml
Normal file
100
munin/tasks/openbsd.yml
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Ensure that Munin is installed
|
||||||
|
openbsd_pkg:
|
||||||
|
name: '{{ item }}'
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- munin-server
|
||||||
|
- munin-node
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
- packages
|
||||||
|
|
||||||
|
- name: Set munin.conf file
|
||||||
|
template:
|
||||||
|
src: munin.conf.j2
|
||||||
|
dest: /etc/munin/munin.conf
|
||||||
|
mode: "0644"
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Create munin www directory
|
||||||
|
file:
|
||||||
|
path: '{{ munin_dir }}'
|
||||||
|
state: directory
|
||||||
|
owner: _munin
|
||||||
|
group: www
|
||||||
|
mode: "0755"
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Change hostname in munin-node config
|
||||||
|
replace:
|
||||||
|
dest: /etc/munin/munin-node.conf
|
||||||
|
regexp: '#?host_name .*'
|
||||||
|
replace: 'host_name {{ ansible_hostname }}'
|
||||||
|
notify: restart munin_node
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Install munin cron
|
||||||
|
copy:
|
||||||
|
src: "crontab"
|
||||||
|
dest: "/var/cron/tabs/_munin"
|
||||||
|
owner: "_munin"
|
||||||
|
group: "crontab"
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Enable munin plugins
|
||||||
|
file:
|
||||||
|
src: "/usr/local/libexec/munin/plugins/{{ item }}"
|
||||||
|
dest: "/etc/munin/plugins/{{ item }}"
|
||||||
|
state: link
|
||||||
|
with_items:
|
||||||
|
- 'cpu'
|
||||||
|
- 'df'
|
||||||
|
- 'df_inode'
|
||||||
|
- 'load'
|
||||||
|
- 'memory'
|
||||||
|
- 'munin_stats'
|
||||||
|
- 'netstat'
|
||||||
|
- 'open_files'
|
||||||
|
- 'pf_changes'
|
||||||
|
- 'pf_searches'
|
||||||
|
- 'pf_states'
|
||||||
|
- 'processes'
|
||||||
|
- 'systat'
|
||||||
|
- 'uptime'
|
||||||
|
- 'users'
|
||||||
|
- 'vmstat'
|
||||||
|
notify: restart munin_node
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Enable network graphs
|
||||||
|
file:
|
||||||
|
src: "/usr/local/libexec/munin/plugins/if_"
|
||||||
|
dest: "/etc/munin/plugins/if_{{ item }}"
|
||||||
|
state: link
|
||||||
|
with_items: "{{ ansible_interfaces }}"
|
||||||
|
|
||||||
|
- name: Enable sensors plugin unless VM detected
|
||||||
|
file:
|
||||||
|
src: /usr/share/munin/plugins/sensors_
|
||||||
|
dest: /etc/munin/plugins/sensors_temp
|
||||||
|
state: link
|
||||||
|
when: ansible_vio0 is undefined
|
||||||
|
notify: restart munin_node
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- name: Activating munin_node
|
||||||
|
service:
|
||||||
|
name: munin_node
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
tags:
|
||||||
|
- munin
|
||||||
|
|
146
munin/templates/munin.conf.j2
Normal file
146
munin/templates/munin.conf.j2
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
# Example configuration file for Munin, generated by 'make build'
|
||||||
|
|
||||||
|
# The next three variables specifies where the location of the RRD
|
||||||
|
# databases, the HTML output, logs and the lock/pid files. They all
|
||||||
|
# must be writable by the user running munin-cron. They are all
|
||||||
|
# defaulted to the values you see here.
|
||||||
|
#
|
||||||
|
#dbdir /var/db/munin
|
||||||
|
htmldir {{ munin_dir }}
|
||||||
|
#logdir /var/log/munin
|
||||||
|
#rundir /var/run/munin
|
||||||
|
|
||||||
|
# Where to look for the HTML templates
|
||||||
|
#
|
||||||
|
#tmpldir /etc/munin/templates
|
||||||
|
|
||||||
|
# Where to look for the static www files
|
||||||
|
#
|
||||||
|
#staticdir /etc/munin/static
|
||||||
|
|
||||||
|
# temporary cgi files are here. note that it has to be writable by
|
||||||
|
# the cgi user (usually nobody or httpd).
|
||||||
|
#
|
||||||
|
# cgitmpdir /var/db/munin/cgi-tmp
|
||||||
|
|
||||||
|
# (Exactly one) directory to include all files from.
|
||||||
|
includedir /etc/munin/munin-conf.d
|
||||||
|
|
||||||
|
# You can choose the time reference for "DERIVE" like graphs, and show
|
||||||
|
# "per minute", "per hour" values instead of the default "per second"
|
||||||
|
#
|
||||||
|
#graph_period second
|
||||||
|
|
||||||
|
# Graphics files are generated either via cron or by a CGI process.
|
||||||
|
# See http://munin-monitoring.org/wiki/CgiHowto2 for more
|
||||||
|
# documentation.
|
||||||
|
# Since 2.0, munin-graph has been rewritten to use the cgi code.
|
||||||
|
# It is single threaded *by design* now.
|
||||||
|
#
|
||||||
|
#graph_strategy cron
|
||||||
|
|
||||||
|
# munin-cgi-graph is invoked by the web server up to very many times at the
|
||||||
|
# same time. This is not optimal since it results in high CPU and memory
|
||||||
|
# consumption to the degree that the system can thrash. Again the default is
|
||||||
|
# 6. Most likely the optimal number for max_cgi_graph_jobs is the same as
|
||||||
|
# max_graph_jobs.
|
||||||
|
#
|
||||||
|
#munin_cgi_graph_jobs 6
|
||||||
|
|
||||||
|
# If the automatic CGI url is wrong for your system override it here:
|
||||||
|
#
|
||||||
|
cgiurl_graph /cgi-bin/munin-cgi-graph
|
||||||
|
|
||||||
|
# max_size_x and max_size_y are the max size of images in pixel.
|
||||||
|
# Default is 4000. Do not make it too large otherwise RRD might use all
|
||||||
|
# RAM to generate the images.
|
||||||
|
#
|
||||||
|
#max_size_x 4000
|
||||||
|
#max_size_y 4000
|
||||||
|
|
||||||
|
# HTML files are normally generated by munin-html, no matter if the
|
||||||
|
# files are used or not. You can change this to on-demand generation
|
||||||
|
# by following the instructions in http://munin-monitoring.org/wiki/CgiHowto2
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# - moving to CGI for HTML means you cannot have graph generated by cron.
|
||||||
|
# - cgi html has some bugs, mostly you still have to launch munin-html by hand
|
||||||
|
#
|
||||||
|
#html_strategy cron
|
||||||
|
|
||||||
|
# munin-update runs in parallel.
|
||||||
|
#
|
||||||
|
# The default max number of processes is 16, and is probably ok for you.
|
||||||
|
#
|
||||||
|
# If set too high, it might hit some process/ram/filedesc limits.
|
||||||
|
# If set too low, munin-update might take more than 5 min.
|
||||||
|
#
|
||||||
|
# If you want munin-update to not be parallel set it to 0.
|
||||||
|
#
|
||||||
|
#max_processes 16
|
||||||
|
|
||||||
|
# RRD updates are per default, performed directly on the rrd files.
|
||||||
|
# To reduce IO and enable the use of the rrdcached, uncomment it and set it to
|
||||||
|
# the location of the socket that rrdcached uses.
|
||||||
|
#
|
||||||
|
#rrdcached_socket /var/run/rrdcached.sock
|
||||||
|
|
||||||
|
# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
|
||||||
|
# something changes (OK -> WARNING, CRITICAL -> OK, etc)
|
||||||
|
#contact.someuser.command mail -s "Munin notification" somejuser@fnord.comm
|
||||||
|
#contact.anotheruser.command mail -s "Munin notification" anotheruser@blibb.comm
|
||||||
|
#
|
||||||
|
# For those with Nagios, the following might come in handy. In addition,
|
||||||
|
# the services must be defined in the Nagios server as well.
|
||||||
|
#contact.nagios.command /usr/bin/send_nsca nagios.host.comm -c /etc/nsca.conf
|
||||||
|
|
||||||
|
# a simple host tree
|
||||||
|
[{{ ansible_fqdn }}]
|
||||||
|
address 127.0.0.1
|
||||||
|
use_node_name yes
|
||||||
|
|
||||||
|
#
|
||||||
|
# A more complex example of a host tree
|
||||||
|
#
|
||||||
|
## First our "normal" host.
|
||||||
|
# [fii.foo.com]
|
||||||
|
# address foo
|
||||||
|
#
|
||||||
|
## Then our other host...
|
||||||
|
# [fay.foo.com]
|
||||||
|
# address fay
|
||||||
|
#
|
||||||
|
## IPv6 host. note that the ip adress has to be in brackets
|
||||||
|
# [ip6.foo.com]
|
||||||
|
# address [2001::1234:1]
|
||||||
|
#
|
||||||
|
## Then we want totals...
|
||||||
|
# [foo.com;Totals] #Force it into the "foo.com"-domain...
|
||||||
|
# update no # Turn off data-fetching for this "host".
|
||||||
|
#
|
||||||
|
# # The graph "load1". We want to see the loads of both machines...
|
||||||
|
# # "fii=fii.foo.com:load.load" means "label=machine:graph.field"
|
||||||
|
# load1.graph_title Loads side by side
|
||||||
|
# load1.graph_order fii=fii.foo.com:load.load fay=fay.foo.com:load.load
|
||||||
|
#
|
||||||
|
# # The graph "load2". Now we want them stacked on top of each other.
|
||||||
|
# load2.graph_title Loads on top of each other
|
||||||
|
# load2.dummy_field.stack fii=fii.foo.com:load.load fay=fay.foo.com:load.load
|
||||||
|
# load2.dummy_field.draw AREA # We want area instead the default LINE2.
|
||||||
|
# load2.dummy_field.label dummy # This is needed. Silly, really.
|
||||||
|
#
|
||||||
|
# # The graph "load3". Now we want them summarised into one field
|
||||||
|
# load3.graph_title Loads summarised
|
||||||
|
# load3.combined_loads.sum fii.foo.com:load.load fay.foo.com:load.load
|
||||||
|
# load3.combined_loads.label Combined loads # Must be set, as this is
|
||||||
|
# # not a dummy field!
|
||||||
|
#
|
||||||
|
## ...and on a side note, I want them listen in another order (default is
|
||||||
|
## alphabetically)
|
||||||
|
#
|
||||||
|
# # Since [foo.com] would be interpreted as a host in the domain "com", we
|
||||||
|
# # specify that this is a domain by adding a semicolon.
|
||||||
|
# [foo.com;]
|
||||||
|
# node_order Totals fii.foo.com fay.foo.com
|
||||||
|
#
|
||||||
|
|
2
munin/vars/main.yml
Normal file
2
munin/vars/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
munin_dir: /home/www/munin
|
Loading…
Reference in a new issue