Add telegraf role
This commit is contained in:
parent
7e6e1e157c
commit
497c70a3bf
56
roles/telegraf/defaults/main.yaml
Normal file
56
roles/telegraf/defaults/main.yaml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
telegraf_package_name: telegraf
|
||||||
|
telegraf_package_state: present
|
||||||
|
|
||||||
|
telegraf_service_name: telegraf
|
||||||
|
telegraf_service_state: started
|
||||||
|
telegraf_service_enabled: yes
|
||||||
|
|
||||||
|
telegraf_config_global_tags: {}
|
||||||
|
telegraf_config_agent:
|
||||||
|
interval: 10s
|
||||||
|
round_interval: true
|
||||||
|
metric_batch_size: 1000
|
||||||
|
metric_buffer_limit: 10000
|
||||||
|
collection_jitter: 0s
|
||||||
|
flush_interval: 10s
|
||||||
|
flush_jitter: 0s
|
||||||
|
precision:
|
||||||
|
hostname:
|
||||||
|
omit_hostname: false
|
||||||
|
telegraf_config_outputs:
|
||||||
|
influxdb: {}
|
||||||
|
telegraf_config_inputs:
|
||||||
|
cpu:
|
||||||
|
- percpu: true
|
||||||
|
totalcpu: true
|
||||||
|
collect_cpu_time: false
|
||||||
|
report_active: false
|
||||||
|
disk:
|
||||||
|
- ignore_fs:
|
||||||
|
- tmpfs
|
||||||
|
- devtmpfs
|
||||||
|
- devfs
|
||||||
|
- iso9660
|
||||||
|
- overlay
|
||||||
|
- aufs
|
||||||
|
- squashfs
|
||||||
|
diskio: []
|
||||||
|
kernel: []
|
||||||
|
mem: []
|
||||||
|
processes: []
|
||||||
|
swap: []
|
||||||
|
system: []
|
||||||
|
conntrack: []
|
||||||
|
ipset: []
|
||||||
|
iptables:
|
||||||
|
- table: filter
|
||||||
|
chains: [ "INPUT", "OUTPUT", "FORWARD", "LOG_DROP", "LOG_ACCEPT", "ICMP_FLOOD", "LIMIT_SSH" ]
|
||||||
|
- table: filter
|
||||||
|
name_override: ip6tables
|
||||||
|
chains: [ "INPUT", "OUTPUT", "FORWARD", "LOG_DROP", "LOG_ACCEPT", "ICMP_FLOOD", "LIMIT_SSH" ]
|
||||||
|
kernel_vmstat: []
|
||||||
|
net: []
|
||||||
|
netstat: []
|
||||||
|
procstat:
|
||||||
|
- systemd_unit: minecraft.service
|
14
roles/telegraf/handlers/main.yaml
Normal file
14
roles/telegraf/handlers/main.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: reload telegraf
|
||||||
|
service:
|
||||||
|
name: "{{ telegraf_service_name }}"
|
||||||
|
state: restarted
|
||||||
|
when: telegraf_service_enabled
|
||||||
|
|
||||||
|
- name: telegraf daemon-reload
|
||||||
|
systemd:
|
||||||
|
name: "{{ telegraf_service_name }}"
|
||||||
|
daemon_reload: yes
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
# vim:ft=yaml.ansible:
|
12
roles/telegraf/tasks/Debian.yaml
Normal file
12
roles/telegraf/tasks/Debian.yaml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
- name: add influx apt key
|
||||||
|
apt_key:
|
||||||
|
url: https://repos.influxdata.com/influxdb.key
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: configure apt repository
|
||||||
|
apt_repository:
|
||||||
|
repo: "deb https://repos.influxdata.com/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable"
|
||||||
|
filename: influxdb
|
||||||
|
update_cache: yes
|
||||||
|
state: present
|
52
roles/telegraf/tasks/main.yaml
Normal file
52
roles/telegraf/tasks/main.yaml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
#- name: gather OS specific variables
|
||||||
|
# include_vars: "{{ item }}"
|
||||||
|
# with_first_found:
|
||||||
|
# - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yaml"
|
||||||
|
# - "{{ ansible_distribution }}.yaml"
|
||||||
|
# - "{{ ansible_os_family }}.yaml"
|
||||||
|
|
||||||
|
- name: run os specific tasks
|
||||||
|
include: "{{ item }}"
|
||||||
|
with_first_found:
|
||||||
|
- "{{ ansible_os_family }}.yaml"
|
||||||
|
|
||||||
|
- name: manage package
|
||||||
|
package:
|
||||||
|
name: "{{ telegraf_package_name }}"
|
||||||
|
state: "{{ telegraf_package_state }}"
|
||||||
|
|
||||||
|
- name: configure
|
||||||
|
template:
|
||||||
|
src: telegraf.conf.j2
|
||||||
|
dest: /etc/telegraf/telegraf.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
notify: reload telegraf
|
||||||
|
|
||||||
|
- name: create systemd override directory
|
||||||
|
file:
|
||||||
|
path: /etc/systemd/system/telegraf.service.d
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0755
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: patch systemd unit
|
||||||
|
copy:
|
||||||
|
dest: /etc/systemd/system/telegraf.service.d/override.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
content: |
|
||||||
|
[Service]
|
||||||
|
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN
|
||||||
|
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN
|
||||||
|
notify: telegraf daemon-reload
|
||||||
|
|
||||||
|
- name: manage service
|
||||||
|
service:
|
||||||
|
name: "{{ telegraf_service_name }}"
|
||||||
|
state: "{{ telegraf_service_state }}"
|
||||||
|
enabled: "{{ telegraf_service_enabled }}"
|
96
roles/telegraf/templates/telegraf.conf.j2
Normal file
96
roles/telegraf/templates/telegraf.conf.j2
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
{% macro toml_scalar(v, seq=False) %}
|
||||||
|
{% if v is string %}
|
||||||
|
"{{ v | quote }}"{% if seq %},{% endif %}
|
||||||
|
{% elif v is sameas True or v is sameas False %}
|
||||||
|
{{ v | bool | lower }}{% if seq %},{% endif %}
|
||||||
|
{% elif v is sameas None %}
|
||||||
|
""{% if seq %},{% endif %}
|
||||||
|
{% elif v is number %}
|
||||||
|
{{ v }}{% if seq %},{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% if telegraf_config_global_tags %}
|
||||||
|
[global_tags]
|
||||||
|
{% for k, v in telegraf_config_global_tags.items() | default({}) %}
|
||||||
|
{% if v is string %}
|
||||||
|
{{ k }} = "{{ v | quote }}"
|
||||||
|
{% elif v is sameas True or v is sameas False %}
|
||||||
|
{{ k }} = {{ v | bool | lower }}
|
||||||
|
{% elif v is sameas None %}
|
||||||
|
{{ k }} = ""
|
||||||
|
{% else %}
|
||||||
|
{{ k }} = {{ v }}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if telegraf_config_agent %}
|
||||||
|
[agent]
|
||||||
|
{% for k, v in telegraf_config_agent.items() | default({}) %}
|
||||||
|
{% if v is string %}
|
||||||
|
{{ k }} = "{{ v | quote }}"
|
||||||
|
{% elif v is sameas True or v is sameas False %}
|
||||||
|
{{ k }} = {{ v | bool | lower }}
|
||||||
|
{% elif v is sameas None %}
|
||||||
|
{{ k }} = ""
|
||||||
|
{% else %}
|
||||||
|
{{ k }} = {{ v }}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if telegraf_config_outputs %}
|
||||||
|
{% for name, output in telegraf_config_outputs.items() | default({}) %}
|
||||||
|
[[outputs.{{ name }}]]
|
||||||
|
{% for k, v in output.items() | default({}) %}
|
||||||
|
{% if v is string %}
|
||||||
|
{{ k }} = "{{ v | quote }}"
|
||||||
|
{% elif v is sameas True or v is sameas False %}
|
||||||
|
{{ k }} = {{ v | bool | lower }}
|
||||||
|
{% elif v is sameas None %}
|
||||||
|
{{ k }} = ""
|
||||||
|
{% elif v is number %}
|
||||||
|
{{ k }} = {{ v }}
|
||||||
|
{% elif v is sequence %}
|
||||||
|
{{ k }} = [
|
||||||
|
{% for i in v | default([]) %}
|
||||||
|
{{ toml_scalar(i, seq=True) }}
|
||||||
|
{% endfor %}
|
||||||
|
]
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if telegraf_config_inputs %}
|
||||||
|
{% for name, items in telegraf_config_inputs.items() | default({}) %}
|
||||||
|
{% for item in items %}
|
||||||
|
[[inputs.{{ name }}]]
|
||||||
|
{% for k, v in item.items() | default({}) %}
|
||||||
|
{% if v is string %}
|
||||||
|
{{ k }} = "{{ v | quote }}"
|
||||||
|
{% elif v is sameas True or v is sameas False %}
|
||||||
|
{{ k }} = {{ v | bool | lower }}
|
||||||
|
{% elif v is sameas None %}
|
||||||
|
{{ k }} = ""
|
||||||
|
{% elif v is number %}
|
||||||
|
{{ k }} = {{ v }}
|
||||||
|
{% elif v is sequence %}
|
||||||
|
{{ k }} = [
|
||||||
|
{% for i in v | default([]) %}
|
||||||
|
{{ toml_scalar(i, seq=True) }}
|
||||||
|
{% endfor %}
|
||||||
|
]
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
[[inputs.{{ name }}]]
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
Loading…
Reference in New Issue
Block a user