mirror of
https://github.com/dj-wasabi/ansible-telegraf.git
synced 2025-07-17 08:46:37 +00:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
720e9c94da | |||
ec993c2066 | |||
fabb511365 | |||
6f7d970595 | |||
18cfcd8cff | |||
5692928cb3 | |||
aa391d97f9 | |||
64f62c8dc5 | |||
8a869e7a0e | |||
ef8ecffbdf | |||
37f3a8e208 | |||
a3951d52a8 | |||
3f7f83cfc4 | |||
677950be23 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
.kitchen/
|
||||
.kitchen.local.yml
|
||||
.idea/
|
||||
pmip
|
||||
|
@ -1,14 +1,17 @@
|
||||
---
|
||||
driver:
|
||||
name: docker
|
||||
provision_command: sed -i '/tsflags=nodocs/d' /etc/yum.conf
|
||||
|
||||
provisioner:
|
||||
name: ansible_playbook
|
||||
ansible_yum_repo: "http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm"
|
||||
hosts: localhost
|
||||
require_chef_for_busser: false
|
||||
require_ruby_for_busser: true
|
||||
|
||||
platforms:
|
||||
- name: centos-6.6
|
||||
- name: centos-6.7
|
||||
|
||||
verifier:
|
||||
ruby_bindir: '/usr/bin'
|
||||
|
12
CHANGELOG.md
12
CHANGELOG.md
@ -5,6 +5,18 @@ Below an overview of all changes in the releases.
|
||||
|
||||
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)
|
||||
|
||||
* 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
|
||||
|
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
|
16
README.md
16
README.md
@ -19,11 +19,12 @@ Role Variables
|
||||
|
||||
The following parameters can be set for the Telegraf agent:
|
||||
|
||||
* `telegraf_agent_version`: The version of Telegraf to install. Default: `0.1.9`
|
||||
* `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_debug`: Setting the Telegraf in debug mode. Default: `False`
|
||||
* `telegraf_agent_utc`: Option for outputting data in UTC. 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_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:
|
||||
|
||||
@ -36,7 +37,7 @@ Specifying an output. The default is set to localhost, you'll have to specify th
|
||||
telegraf_agent_output:
|
||||
- type: influxdb
|
||||
config:
|
||||
- url = "http://localhost:8086"
|
||||
- urls = ["http://localhost:8086"]
|
||||
- database = "telegraf"
|
||||
|
||||
The config will be printed line by line into the configuration, so you could also use:
|
||||
@ -62,6 +63,7 @@ With the property `telegraf_plugins_default` it is set to use the default set of
|
||||
- plugin: mem
|
||||
- plugin: system
|
||||
- plugin: swap
|
||||
- plugin: netstat
|
||||
|
||||
Every telegraf agent has these as an default configuration.
|
||||
|
||||
@ -104,6 +106,12 @@ Example Playbook
|
||||
roles:
|
||||
- { role: dj-wasabi.telegraf }
|
||||
|
||||
##Contributors
|
||||
The following have contributed to this Ansible role:
|
||||
|
||||
* aferrari-technisys
|
||||
|
||||
|
||||
Test Kitchen
|
||||
------------
|
||||
|
||||
|
@ -1,19 +1,21 @@
|
||||
---
|
||||
# defaults file for ansible-telegraf
|
||||
|
||||
telegraf_agent_version: 0.1.9
|
||||
telegraf_agent_version: 0.10.0
|
||||
telegraf_agent_interval: 10
|
||||
telegraf_agent_debug: False
|
||||
telegraf_agent_utc: True
|
||||
telegraf_agent_precision: s
|
||||
telegraf_agent_round_interval: True
|
||||
telegraf_agent_flush_interval: 10
|
||||
telegraf_agent_flush_jitter: 0
|
||||
|
||||
telegraf_agent_tags:
|
||||
|
||||
telegraf_agent_output:
|
||||
- type: influxdb
|
||||
config:
|
||||
- url = "http://localhost:8086"
|
||||
- urls = ["http://localhost:8086"]
|
||||
- database = "telegraf"
|
||||
- precision = "s"
|
||||
|
||||
telegraf_plugins_default:
|
||||
- plugin: cpu
|
||||
@ -22,7 +24,13 @@ telegraf_plugins_default:
|
||||
- plugin: disk
|
||||
- plugin: io
|
||||
- plugin: mem
|
||||
- plugin: net
|
||||
- plugin: system
|
||||
- plugin: swap
|
||||
- plugin: netstat
|
||||
|
||||
telegraf_plugins_extra:
|
||||
- plugin: procstat
|
||||
specifications:
|
||||
- prefix = "" # optional string to prefix measurements
|
||||
- exe = "java" # the name as pgrep can find
|
||||
|
@ -9,12 +9,28 @@
|
||||
include: "Debian.yml"
|
||||
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
|
||||
src=etc-opt-telegraf-telegraf.conf.j2
|
||||
dest=/etc/opt/telegraf/telegraf.conf
|
||||
owner=root
|
||||
group=root
|
||||
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
|
||||
notify: "Restart Telegraf"
|
||||
|
@ -12,8 +12,6 @@
|
||||
interval = "{{ telegraf_agent_interval }}s"
|
||||
debug = {{ telegraf_agent_debug | lower }}
|
||||
hostname = "{{ ansible_fqdn }}"
|
||||
utc = {{ telegraf_agent_utc | lower }}
|
||||
precision = "{{ telegraf_agent_precision }}"
|
||||
|
||||
# Configuration for influxdb server to send metrics to
|
||||
[outputs]
|
||||
@ -62,6 +60,13 @@
|
||||
{{ 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 %}
|
||||
@ -101,6 +106,12 @@
|
||||
{{ 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 %}
|
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