mirror of
https://github.com/dj-wasabi/ansible-telegraf.git
synced 2025-07-17 08:46:37 +00:00
Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
720e9c94da | |||
ec993c2066 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
.kitchen/
|
.kitchen/
|
||||||
.kitchen.local.yml
|
.kitchen.local.yml
|
||||||
.idea/
|
.idea/
|
||||||
|
pmip
|
||||||
|
@ -5,6 +5,11 @@ Below an overview of all changes in the releases.
|
|||||||
|
|
||||||
Version (Release date)
|
Version (Release date)
|
||||||
|
|
||||||
|
0.3.0 (2016-01-13)
|
||||||
|
|
||||||
|
* Made it work with telegraf 0.10.0
|
||||||
|
* Default installation: 0.10.0
|
||||||
|
|
||||||
0.2.0 (2015-11-14)
|
0.2.0 (2015-11-14)
|
||||||
|
|
||||||
* Fixed kitchen test setup
|
* Fixed kitchen test setup
|
||||||
|
@ -19,10 +19,12 @@ Role Variables
|
|||||||
|
|
||||||
The following parameters can be set for the Telegraf agent:
|
The following parameters can be set for the Telegraf agent:
|
||||||
|
|
||||||
* `telegraf_agent_version`: The version of Telegraf to install. Default: `0.2.0`
|
* `telegraf_agent_version`: The version of Telegraf to install. Default: `0.10.0`
|
||||||
* `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10`
|
* `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10`
|
||||||
* `telegraf_agent_debug`: Setting the Telegraf in debug mode. Default: `False`
|
* `telegraf_agent_debug`: Setting the Telegraf in debug mode. Default: `False`
|
||||||
|
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
|
||||||
|
* `telegraf_agent_flush_interval`: Default data flushing interval for all outputs. Default: 10
|
||||||
|
* `telegraf_agent_flush_jitter`: Jitter the flush interval by a random amount. Default: 0
|
||||||
|
|
||||||
You can set tags for the host running telegraf:
|
You can set tags for the host running telegraf:
|
||||||
|
|
||||||
@ -35,7 +37,7 @@ Specifying an output. The default is set to localhost, you'll have to specify th
|
|||||||
telegraf_agent_output:
|
telegraf_agent_output:
|
||||||
- type: influxdb
|
- type: influxdb
|
||||||
config:
|
config:
|
||||||
- url = "http://localhost:8086"
|
- urls = ["http://localhost:8086"]
|
||||||
- database = "telegraf"
|
- database = "telegraf"
|
||||||
|
|
||||||
The config will be printed line by line into the configuration, so you could also use:
|
The config will be printed line by line into the configuration, so you could also use:
|
||||||
|
@ -1,17 +1,21 @@
|
|||||||
---
|
---
|
||||||
# defaults file for ansible-telegraf
|
# defaults file for ansible-telegraf
|
||||||
|
|
||||||
telegraf_agent_version: 0.2.0
|
telegraf_agent_version: 0.10.0
|
||||||
telegraf_agent_interval: 10
|
telegraf_agent_interval: 10
|
||||||
telegraf_agent_debug: False
|
telegraf_agent_debug: False
|
||||||
|
telegraf_agent_round_interval: True
|
||||||
|
telegraf_agent_flush_interval: 10
|
||||||
|
telegraf_agent_flush_jitter: 0
|
||||||
|
|
||||||
telegraf_agent_tags:
|
telegraf_agent_tags:
|
||||||
|
|
||||||
telegraf_agent_output:
|
telegraf_agent_output:
|
||||||
- type: influxdb
|
- type: influxdb
|
||||||
config:
|
config:
|
||||||
- url = "http://localhost:8086"
|
- urls = ["http://localhost:8086"]
|
||||||
- database = "telegraf"
|
- database = "telegraf"
|
||||||
|
- precision = "s"
|
||||||
|
|
||||||
telegraf_plugins_default:
|
telegraf_plugins_default:
|
||||||
- plugin: cpu
|
- plugin: cpu
|
||||||
|
@ -9,12 +9,28 @@
|
|||||||
include: "Debian.yml"
|
include: "Debian.yml"
|
||||||
when: ansible_os_family == "Debian"
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
- name: "Copy the template"
|
- name: "Set fact by remove the dots from version"
|
||||||
|
action: set_fact
|
||||||
|
telegraf_ver="{{ telegraf_agent_version.replace('.','') }}"
|
||||||
|
|
||||||
|
- name: "Copy the template for versions < 0.10.0"
|
||||||
action: template
|
action: template
|
||||||
src=etc-opt-telegraf-telegraf.conf.j2
|
src=etc-opt-telegraf-telegraf.conf.j2
|
||||||
dest=/etc/opt/telegraf/telegraf.conf
|
dest=/etc/opt/telegraf/telegraf.conf
|
||||||
owner=root
|
owner=root
|
||||||
group=root
|
group=root
|
||||||
mode=644
|
mode=644
|
||||||
|
when: telegraf_ver < 100
|
||||||
|
sudo: yes
|
||||||
|
notify: "Restart Telegraf"
|
||||||
|
|
||||||
|
- name: "Copy the template for versions >= 0.10.0"
|
||||||
|
action: template
|
||||||
|
src=telegraf.conf.j2
|
||||||
|
dest=/etc/telegraf/telegraf.conf
|
||||||
|
owner=root
|
||||||
|
group=root
|
||||||
|
mode=644
|
||||||
|
when: telegraf_ver >= 100
|
||||||
sudo: yes
|
sudo: yes
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
|
123
templates/telegraf.conf.j2
Normal file
123
templates/telegraf.conf.j2
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
# Telegraf configuration
|
||||||
|
|
||||||
|
[tags]
|
||||||
|
{% if telegraf_agent_tags is defined and telegraf_agent_tags is iterable %}
|
||||||
|
{% for item in telegraf_agent_tags %}
|
||||||
|
{{ item.tag_name }} = "{{ item.tag_value }}"
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# Configuration for telegraf agent
|
||||||
|
[agent]
|
||||||
|
interval = "{{ telegraf_agent_interval }}s"
|
||||||
|
debug = {{ telegraf_agent_debug | lower }}
|
||||||
|
hostname = "{{ ansible_fqdn }}"
|
||||||
|
round_interval = {{ telegraf_agent_round_interval | lower }}
|
||||||
|
flush_interval = "{{ telegraf_agent_flush_interval }}s"
|
||||||
|
flush_jitter = "{{ telegraf_agent_flush_jitter }}s"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OUTPUTS #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
{% if telegraf_agent_output is defined and telegraf_agent_output is iterable %}
|
||||||
|
{% for item in telegraf_agent_output %}
|
||||||
|
[[outputs.{{ item.type }}]]
|
||||||
|
{% for items in item.config %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# INPUTS #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
{% if telegraf_plugins_default is defined and telegraf_plugins_default is iterable %}
|
||||||
|
{% for item in telegraf_plugins_default %}
|
||||||
|
[[inputs.{{ item.plugin }}]]
|
||||||
|
{% if item.interval is defined %}
|
||||||
|
interval = "{{ item.interval }}s"
|
||||||
|
{% endif %}
|
||||||
|
{% if item.config is defined and item.config is iterable %}
|
||||||
|
{% for items in item.config %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.tagpass is defined and item.tagpass is iterable %}
|
||||||
|
[{{ item.plugin }}.tagpass]
|
||||||
|
{% for items in item.tagpass %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.tagdrop is defined and item.tagdrop is iterable %}
|
||||||
|
[{{ item.plugin }}.tagdrop]
|
||||||
|
{% for items in item.tagdrop %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.pass is defined and item.pass is iterable %}
|
||||||
|
[{{ item.plugin }}.pass]
|
||||||
|
{% for items in item.pass %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.drop is defined and item.drop is iterable %}
|
||||||
|
[{{ item.plugin }}.drop]
|
||||||
|
{% for items in item.drop %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.specifications is defined and item.specifications is iterable %}
|
||||||
|
[[{{item.plugin}}.specifications]]
|
||||||
|
{% for items in item.specifications %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable %}
|
||||||
|
{% for item in telegraf_plugins_extra %}
|
||||||
|
[[inputs.{{ item.plugin }}]]
|
||||||
|
{% if item.interval is defined %}
|
||||||
|
interval = "{{ item.interval }}s"
|
||||||
|
{% endif %}
|
||||||
|
{% if item.config is defined and item.config is iterable %}
|
||||||
|
{% for items in item.config %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.tagpass is defined and item.tagpass is iterable %}
|
||||||
|
[{{ item.plugin }}.tagpass]
|
||||||
|
{% for items in item.tagpass %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.tagdrop is defined and item.tagdrop is iterable %}
|
||||||
|
[{{ item.plugin }}.tagdrop]
|
||||||
|
{% for items in item.tagdrop %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.pass is defined and item.pass is iterable %}
|
||||||
|
[{{ item.plugin }}.pass]
|
||||||
|
{% for items in item.pass %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.drop is defined and item.drop is iterable %}
|
||||||
|
[{{ item.plugin }}.drop]
|
||||||
|
{% for items in item.drop %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if item.specifications is defined and item.specifications is iterable %}
|
||||||
|
[[{{item.plugin}}.specifications]]
|
||||||
|
{% for items in item.specifications %}
|
||||||
|
{{ items }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
Reference in New Issue
Block a user