Browse Source

Add support for package zabbix-plugins-client

Emmanuel Bouthenot 9 years ago
parent
commit
c1c6a379b9

+ 1 - 0
roles/monitoring/defaults/main.yml

@@ -19,5 +19,6 @@ munin_nodes:
 
 with_zabbix_agent: False
 zabbix_remote_server: 'zabbix.domain.tld'
+zabbix_plugins_config: Null
 
 # vim: ft=yaml

+ 22 - 0
roles/monitoring/tasks/zabbix.yml

@@ -9,3 +9,25 @@
   when: with_zabbix_agent
   notify:
     - Restart zabbix agent
+
+- name: Create zabbix plugins configuration directory
+  file:
+    path: '/etc/zabbix/zabbix_plugins.conf.d'
+    owner: 'root'
+    group: 'root'
+    mode: '0755'
+    state: 'directory'
+  when: with_zabbix_agent and zabbix_plugins_config
+
+- name: Install zabbix plugins configuration (ssl, web availability, web metrics)
+  template:
+    src: 'zabbix/plugins/{{ item }}.j2'
+    dest: '/etc/zabbix/zabbix_plugins.conf.d/{{ item }}.yml'
+    owner: 'root'
+    group: 'root'
+    mode: '0644'
+  with_items:
+    - 'ssl-discovery'
+    - 'web-metrics-discovery'
+    - 'web-availability-discovery'
+  when: with_zabbix_agent and zabbix_plugins_config

+ 10 - 0
roles/monitoring/templates/zabbix/plugins/ssl-discovery.j2

@@ -0,0 +1,10 @@
+{% if ansible_prolog -%}
+{% from 'templates/ansible/prolog.j2' import prolog with context %}
+{{ prolog() }}
+{% endif -%}
+{% if zabbix_plugins_config.discovery.ssl is defined %}
+{% for key in zabbix_plugins_config.discovery.ssl %}
+{{ key }}:
+    uri: '{{ zabbix_plugins_config.discovery.ssl[key]['uri'] }}'
+{% endfor %}
+{% endif %}

+ 13 - 0
roles/monitoring/templates/zabbix/plugins/web-availability-discovery.j2

@@ -0,0 +1,13 @@
+{% if ansible_prolog -%}
+{% from 'templates/ansible/prolog.j2' import prolog with context %}
+{{ prolog() }}
+{% endif -%}
+{% if zabbix_plugins_config.discovery.web.availability is defined %}
+{% for key in zabbix_plugins_config.discovery.web.availability %}
+{{ key }}:
+    url: '{{ zabbix_plugins_config.discovery.web.availability[key]['url'] }}'
+    status: {{ zabbix_plugins_config.discovery.web.availability[key]['status'] }}
+    timeout: {{ zabbix_plugins_config.discovery.web.availability[key]['timeout'] }}
+    regexp: '{{ zabbix_plugins_config.discovery.web.availability[key]['regexp'] }}'
+{% endfor %}
+{% endif %}

+ 11 - 0
roles/monitoring/templates/zabbix/plugins/web-metrics-discovery.j2

@@ -0,0 +1,11 @@
+{% if ansible_prolog -%}
+{% from 'templates/ansible/prolog.j2' import prolog with context %}
+{{ prolog() }}
+{% endif -%}
+{% if zabbix_plugins_config.discovery.web.metrics is defined %}
+{% for key in zabbix_plugins_config.discovery.web.metrics %}
+{{ key }}:
+    url: '{{ zabbix_plugins_config.discovery.web.metrics[key]['url'] }}'
+    timeout: {{ zabbix_plugins_config.discovery.web.metrics[key]['timeout'] }}
+{% endfor %}
+{% endif %}