summaryrefslogtreecommitdiff
path: root/roles/monitoring/collectd/network/server
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring/collectd/network/server')
-rw-r--r--roles/monitoring/collectd/network/server/defaults/main.yml8
-rw-r--r--roles/monitoring/collectd/network/server/handlers/main.yml5
-rw-r--r--roles/monitoring/collectd/network/server/tasks/main.yml40
-rw-r--r--roles/monitoring/collectd/network/server/templates/network-server.conf.j217
4 files changed, 70 insertions, 0 deletions
diff --git a/roles/monitoring/collectd/network/server/defaults/main.yml b/roles/monitoring/collectd/network/server/defaults/main.yml
new file mode 100644
index 00000000..0f531395
--- /dev/null
+++ b/roles/monitoring/collectd/network/server/defaults/main.yml
@@ -0,0 +1,8 @@
+---
+# collectd_network_server_listen:
+# - "192.0.2.1"
+
+# collectd_network_server_auth:
+# level: (Sign|Encrypt)
+# users:
+# foo: "secret"
diff --git a/roles/monitoring/collectd/network/server/handlers/main.yml b/roles/monitoring/collectd/network/server/handlers/main.yml
new file mode 100644
index 00000000..6bb81b5a
--- /dev/null
+++ b/roles/monitoring/collectd/network/server/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+- name: restart collectd
+ service:
+ name: collectd
+ state: restarted
diff --git a/roles/monitoring/collectd/network/server/tasks/main.yml b/roles/monitoring/collectd/network/server/tasks/main.yml
new file mode 100644
index 00000000..63eb9221
--- /dev/null
+++ b/roles/monitoring/collectd/network/server/tasks/main.yml
@@ -0,0 +1,40 @@
+---
+- name: install network-server config
+ template:
+ src: network-server.conf.j2
+ dest: /etc/collectd/conf.d/network-server.conf
+ mode: 0644
+ notify: restart collectd
+
+- name: install auth information
+ when: collectd_network_server_auth is defined
+ copy:
+ content: |
+ {% for user, password in collectd_network_server_auth.users.items() %}
+ {{ user }}: {{ password }}
+ {% endfor %}
+ dest: /etc/collectd/conf.d/auth_file
+ mode: 0400
+ notify: restart collectd
+
+- name: install custom types.db
+ when: collectd_network_server_custom_types is defined
+ block:
+ - name: generate custom types.db
+ copy:
+ content: |+
+ {% for name, spec in collectd_network_server_custom_types.items() %}
+ {{ name }} {{ spec }}
+ {% endfor %}
+ dest: /etc/collectd/conf.d/types.db.custom
+ mode: 0644
+ notify: restart collectd
+
+ - name: enable custom types.db
+ copy:
+ content: |
+ TypesDB "/usr/share/collectd/types.db"
+ TypesDB "/etc/collectd/conf.d/types.db.custom"
+ dest: /etc/collectd/conf.d/types.conf
+ mode: 0644
+ notify: restart collectd
diff --git a/roles/monitoring/collectd/network/server/templates/network-server.conf.j2 b/roles/monitoring/collectd/network/server/templates/network-server.conf.j2
new file mode 100644
index 00000000..95fe5092
--- /dev/null
+++ b/roles/monitoring/collectd/network/server/templates/network-server.conf.j2
@@ -0,0 +1,17 @@
+LoadPlugin network
+
+<Plugin "network">
+{% for addr in collectd_network_server_listen %}
+{% if collectd_network_server_auth is defined %}
+{% if not loop.first %}
+
+{% endif %}
+ <Listen "{{ addr }}">
+ SecurityLevel "{{ collectd_network_server_auth.level }}"
+ AuthFile "/etc/collectd/conf.d/auth_file"
+ </Listen>
+{% else %}
+ Listen "{{ addr }}"
+{% endif %}
+{% endfor %}
+</Plugin>