mirror of
https://github.com/dj-wasabi/ansible-telegraf.git
synced 2025-07-17 08:46:37 +00:00
Compare commits
24 Commits
Author | SHA1 | Date | |
---|---|---|---|
a733de5695 | |||
f28ba37db5 | |||
54f2b75af5 | |||
bbcd52e32f | |||
e2205aa7d8 | |||
66e20cd7f6 | |||
720e9c94da | |||
ec993c2066 | |||
fabb511365 | |||
6f7d970595 | |||
18cfcd8cff | |||
5692928cb3 | |||
aa391d97f9 | |||
64f62c8dc5 | |||
8a869e7a0e | |||
ef8ecffbdf | |||
37f3a8e208 | |||
a3951d52a8 | |||
3f7f83cfc4 | |||
677950be23 | |||
a41e4f9c84 | |||
890e48c82d | |||
ac27a7a9eb | |||
7cc9e52d85 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
.kitchen/
|
.kitchen/
|
||||||
.kitchen.local.yml
|
.kitchen.local.yml
|
||||||
.idea/
|
.idea/
|
||||||
|
pmip
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
---
|
---
|
||||||
driver:
|
driver:
|
||||||
name: docker
|
name: docker
|
||||||
|
provision_command: sed -i '/tsflags=nodocs/d' /etc/yum.conf
|
||||||
|
|
||||||
provisioner:
|
provisioner:
|
||||||
name: ansible_playbook
|
name: ansible_playbook
|
||||||
ansible_yum_repo: "http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm"
|
ansible_yum_repo: "http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm"
|
||||||
hosts: localhost
|
hosts: localhost
|
||||||
|
require_chef_for_busser: false
|
||||||
|
require_ruby_for_busser: true
|
||||||
|
|
||||||
platforms:
|
platforms:
|
||||||
- name: centos-6.6
|
- name: centos-6.7
|
||||||
|
|
||||||
verifier:
|
verifier:
|
||||||
ruby_bindir: '/usr/bin'
|
ruby_bindir: '/usr/bin'
|
||||||
|
15
.travis.yml
Normal file
15
.travis.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
language: python
|
||||||
|
python: "2.7"
|
||||||
|
before_install:
|
||||||
|
- sudo apt-get update -qq
|
||||||
|
- sudo apt-get install -qq python-apt python-pycurl
|
||||||
|
install:
|
||||||
|
- pip install ansible==1.9.4
|
||||||
|
- echo -e 'localhost ansible_connection=local' > test/inventory
|
||||||
|
- echo -e '[defaults]\nroles_path = ../\nhostfile = ./test/inventory' > ansible.cfg
|
||||||
|
script:
|
||||||
|
- ansible-playbook test/integration/default.yml --syntax-check
|
||||||
|
- ansible-playbook test/integration/default.yml --connection=local --sudo
|
||||||
|
notifications:
|
||||||
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
34
CHANGELOG.md
34
CHANGELOG.md
@ -5,6 +5,38 @@ Below an overview of all changes in the releases.
|
|||||||
|
|
||||||
Version (Release date)
|
Version (Release date)
|
||||||
|
|
||||||
|
0.4.0 (2016-02-05)
|
||||||
|
|
||||||
|
* Fixed test for test-kitchen
|
||||||
|
* Added travis-ci test for testing default installation when PR is made
|
||||||
|
* Fixed Download url for Debian
|
||||||
|
* Removed default entry for telegraf_plugins_extra
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
* Fixed kitchen test setup
|
||||||
|
* Adding "net" to the telegraf_plugins_default property
|
||||||
|
* Update etc-opt-telegraf-telegraf.conf.j2 #2 (By pull request: aferrari-technisys (Thanks!))
|
||||||
|
* Improvement and upgrade for v0.2.0 of telegraf #1 (By pull request: aferrari-technisys (Thanks!))
|
||||||
|
|
||||||
|
0.1.0 (2015-09-23)
|
||||||
|
|
||||||
|
* Updated `telegraf_agent_version` to 0.1.9
|
||||||
|
* Added restart when package is changed (When updated for example)
|
||||||
|
* Added several plugin options:
|
||||||
|
* pass
|
||||||
|
* drop
|
||||||
|
* tagpass
|
||||||
|
* tagdrop
|
||||||
|
* interval
|
||||||
|
* Updated documentation
|
||||||
|
|
||||||
|
|
||||||
0.0.2 (2015-09-20)
|
0.0.2 (2015-09-20)
|
||||||
|
|
||||||
* Updated README dus to missing colon
|
* Updated README dus to missing colon
|
||||||
@ -13,4 +45,4 @@ Version (Release date)
|
|||||||
|
|
||||||
0.0.1 (2015-09-20)
|
0.0.1 (2015-09-20)
|
||||||
|
|
||||||
* Initial release
|
* Initial release
|
||||||
|
41
Gemfile.lock
Normal file
41
Gemfile.lock
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
faraday (0.9.2)
|
||||||
|
multipart-post (>= 1.2, < 3)
|
||||||
|
highline (1.7.8)
|
||||||
|
kitchen-ansible (0.0.30)
|
||||||
|
librarian-ansible
|
||||||
|
test-kitchen
|
||||||
|
kitchen-docker (2.3.0)
|
||||||
|
test-kitchen (>= 1.0.0)
|
||||||
|
librarian (0.1.2)
|
||||||
|
highline
|
||||||
|
thor (~> 0.15)
|
||||||
|
librarian-ansible (1.0.6)
|
||||||
|
faraday
|
||||||
|
librarian (~> 0.1.0)
|
||||||
|
mixlib-shellout (2.2.3)
|
||||||
|
multipart-post (2.0.0)
|
||||||
|
net-scp (1.2.1)
|
||||||
|
net-ssh (>= 2.6.5)
|
||||||
|
net-ssh (2.9.2)
|
||||||
|
safe_yaml (1.0.4)
|
||||||
|
test-kitchen (1.4.2)
|
||||||
|
mixlib-shellout (>= 1.2, < 3.0)
|
||||||
|
net-scp (~> 1.1)
|
||||||
|
net-ssh (~> 2.7, < 2.10)
|
||||||
|
safe_yaml (~> 1.0)
|
||||||
|
thor (~> 0.18)
|
||||||
|
thor (0.19.1)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
kitchen-ansible
|
||||||
|
kitchen-docker
|
||||||
|
test-kitchen
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.10.6
|
39
README.md
39
README.md
@ -1,6 +1,10 @@
|
|||||||
dj-wasabi.telegraf
|
dj-wasabi.telegraf
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
Build status:
|
||||||
|
|
||||||
|
[](https://travis-ci.org/dj-wasabi/ansible-telegraf)
|
||||||
|
|
||||||
This role will install and configure telegraf.
|
This role will install and configure telegraf.
|
||||||
|
|
||||||
Telegraf is an agent written in Go for collecting metrics from the system it's running on, or from other services, and writing them into InfluxDB.
|
Telegraf is an agent written in Go for collecting metrics from the system it's running on, or from other services, and writing them into InfluxDB.
|
||||||
@ -19,11 +23,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.1.8`
|
* `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_utc`: Option for outputting data in UTC. Default: `True`
|
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
|
||||||
* `telegraf_agent_precision`: Precision to write data at. Valid values for Precision are n, u, ms, s, m, and h. Default: `s`
|
* `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:
|
||||||
|
|
||||||
@ -36,7 +41,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:
|
||||||
@ -62,6 +67,7 @@ With the property `telegraf_plugins_default` it is set to use the default set of
|
|||||||
- plugin: mem
|
- plugin: mem
|
||||||
- plugin: system
|
- plugin: system
|
||||||
- plugin: swap
|
- plugin: swap
|
||||||
|
- plugin: netstat
|
||||||
|
|
||||||
Every telegraf agent has these as an default configuration.
|
Every telegraf agent has these as an default configuration.
|
||||||
|
|
||||||
@ -74,6 +80,25 @@ The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific t
|
|||||||
- servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"]
|
- servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"]
|
||||||
|
|
||||||
|
|
||||||
|
Telegraf plugin options:
|
||||||
|
|
||||||
|
* `pass`: An array of strings that is used to filter metrics generated by the current plugin. Each string in the array is tested as a prefix against metric names and if it matches, the metric is emitted.
|
||||||
|
* `drop`: The inverse of pass, if a metric name matches, it is not emitted.
|
||||||
|
* `tagpass`: (added in Telegraf 0.1.5) tag names and arrays of strings that are used to filter metrics by the current plugin. Each string in the array is tested as an exact match against the tag name, and if it matches the metric is emitted.
|
||||||
|
* `tagdrop`: (added in Telegraf 0.1.5) The inverse of tagpass. If a tag matches, the metric is not emitted. This is tested on metrics that have passed the tagpass test.
|
||||||
|
* `interval`: How often to gather this metric. Normal plugins use a single global interval, but if one particular plugin should be run less or more often, you can configure that here.
|
||||||
|
|
||||||
|
An example might look like this:
|
||||||
|
|
||||||
|
telegraf_plugins_default:
|
||||||
|
- plugin: disk
|
||||||
|
interval: 12
|
||||||
|
tagpass:
|
||||||
|
- fstype = [ "ext4", "xfs" ]
|
||||||
|
- path = [ "/opt", "/home" ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
------------
|
------------
|
||||||
No dependencies
|
No dependencies
|
||||||
@ -85,6 +110,12 @@ Example Playbook
|
|||||||
roles:
|
roles:
|
||||||
- { role: dj-wasabi.telegraf }
|
- { role: dj-wasabi.telegraf }
|
||||||
|
|
||||||
|
##Contributors
|
||||||
|
The following have contributed to this Ansible role:
|
||||||
|
|
||||||
|
* aferrari-technisys
|
||||||
|
|
||||||
|
|
||||||
Test Kitchen
|
Test Kitchen
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
---
|
---
|
||||||
# defaults file for ansible-telegraf
|
# defaults file for ansible-telegraf
|
||||||
|
|
||||||
telegraf_agent_version: 0.1.8
|
telegraf_agent_version: 0.10.1
|
||||||
telegraf_agent_interval: 10
|
telegraf_agent_interval: 10
|
||||||
telegraf_agent_debug: False
|
telegraf_agent_debug: False
|
||||||
telegraf_agent_utc: True
|
telegraf_agent_round_interval: True
|
||||||
telegraf_agent_precision: s
|
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
|
||||||
@ -22,7 +24,9 @@ telegraf_plugins_default:
|
|||||||
- plugin: disk
|
- plugin: disk
|
||||||
- plugin: io
|
- plugin: io
|
||||||
- plugin: mem
|
- plugin: mem
|
||||||
|
- plugin: net
|
||||||
- plugin: system
|
- plugin: system
|
||||||
- plugin: swap
|
- plugin: swap
|
||||||
|
- plugin: netstat
|
||||||
|
|
||||||
telegraf_plugins_extra:
|
telegraf_plugins_extra:
|
||||||
|
@ -2,12 +2,13 @@
|
|||||||
|
|
||||||
- name: "Fetch telegraf installation package | Debian"
|
- name: "Fetch telegraf installation package | Debian"
|
||||||
action: get_url
|
action: get_url
|
||||||
url=http://get.influxdb.org/telegraf/telegraf-{{ telegraf_agent_version }}_amd64.deb
|
url=http://get.influxdb.org/telegraf/telegraf_{{ telegraf_agent_version }}-1_amd64.deb
|
||||||
dest=/tmp/telegraf_{{ telegraf_agent_version }}_amd64.deb
|
dest=/tmp/telegraf_{{ telegraf_agent_version }}-1_amd64.deb
|
||||||
mode=0440
|
mode=0440
|
||||||
|
|
||||||
- name: "Install telegraf package | Debian"
|
- name: "Install telegraf package | Debian"
|
||||||
action: apt
|
action: apt
|
||||||
deb=/tmp/telegraf_{{ telegraf_agent_version }}_amd64.deb
|
deb=/tmp/telegraf_{{ telegraf_agent_version }}-1_amd64.deb
|
||||||
state=installed
|
state=installed
|
||||||
|
notify: "Restart Telegraf"
|
||||||
sudo: yes
|
sudo: yes
|
||||||
|
@ -10,4 +10,5 @@
|
|||||||
action: yum
|
action: yum
|
||||||
name=/tmp/telegraf_{{ telegraf_agent_version }}-1.x86_64.rpm
|
name=/tmp/telegraf_{{ telegraf_agent_version }}-1.x86_64.rpm
|
||||||
state=installed
|
state=installed
|
||||||
|
notify: "Restart Telegraf"
|
||||||
sudo: yes
|
sudo: yes
|
||||||
|
@ -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
|
sudo: yes
|
||||||
notify: "Restart Telegraf"
|
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
|
||||||
|
notify: "Restart Telegraf"
|
||||||
|
@ -12,8 +12,6 @@
|
|||||||
interval = "{{ telegraf_agent_interval }}s"
|
interval = "{{ telegraf_agent_interval }}s"
|
||||||
debug = {{ telegraf_agent_debug | lower }}
|
debug = {{ telegraf_agent_debug | lower }}
|
||||||
hostname = "{{ ansible_fqdn }}"
|
hostname = "{{ ansible_fqdn }}"
|
||||||
utc = {{ telegraf_agent_utc | lower }}
|
|
||||||
precision = "{{ telegraf_agent_precision }}"
|
|
||||||
|
|
||||||
# Configuration for influxdb server to send metrics to
|
# Configuration for influxdb server to send metrics to
|
||||||
[outputs]
|
[outputs]
|
||||||
@ -30,11 +28,45 @@
|
|||||||
{% if telegraf_plugins_default is defined and telegraf_plugins_default is iterable %}
|
{% if telegraf_plugins_default is defined and telegraf_plugins_default is iterable %}
|
||||||
{% for item in telegraf_plugins_default %}
|
{% for item in telegraf_plugins_default %}
|
||||||
[{{ item.plugin }}]
|
[{{ item.plugin }}]
|
||||||
|
{% if item.interval is defined %}
|
||||||
|
interval = "{{ item.interval }}s"
|
||||||
|
{% endif %}
|
||||||
{% if item.config is defined and item.config is iterable %}
|
{% if item.config is defined and item.config is iterable %}
|
||||||
{% for items in item.config %}
|
{% for items in item.config %}
|
||||||
{{ items }}
|
{{ items }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% 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 %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -42,11 +74,44 @@
|
|||||||
{% if telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable %}
|
{% if telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable %}
|
||||||
{% for item in telegraf_plugins_extra %}
|
{% for item in telegraf_plugins_extra %}
|
||||||
[{{ item.plugin }}]
|
[{{ item.plugin }}]
|
||||||
|
{% if item.interval is defined %}
|
||||||
|
interval = "{{ item.interval }}s"
|
||||||
|
{% endif %}
|
||||||
{% if item.config is defined and item.config is iterable %}
|
{% if item.config is defined and item.config is iterable %}
|
||||||
{% for items in item.config %}
|
{% for items in item.config %}
|
||||||
{{ items }}
|
{{ items }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% 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 %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
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 %}
|
@ -15,7 +15,7 @@ describe 'Telegraf Services' do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe 'Telegraf Configuration' do
|
describe 'Telegraf Configuration' do
|
||||||
describe file('/etc/opt/telegraf/telegraf.conf') do
|
describe file('/etc/telegraf/telegraf.conf') do
|
||||||
it { should be_file}
|
it { should be_file}
|
||||||
it { should be_owned_by 'root'}
|
it { should be_owned_by 'root'}
|
||||||
it { should be_grouped_into 'root'}
|
it { should be_grouped_into 'root'}
|
||||||
|
Reference in New Issue
Block a user