22 Commits
0.6.0 ... 0.7.0

Author SHA1 Message Date
1100ceddd6 Merge pull request #27 from dj-wasabi/release_0.7.0
Updating to release 0.7.0
2017-02-23 21:11:16 +02:00
40b25772f3 Updating to release 0.7.0 2017-02-23 19:45:11 +01:00
71f436f8ca Merge pull request #26 from tszym/remove-actions
Replace action by modules
2017-02-22 20:37:34 +02:00
c416bb20a7 Replace action by modules 2017-02-22 19:20:29 +01:00
ae8c1cbe7f Merge pull request #25 from tszym/rpm-repo
Use yum repository to install telegraf on RedHat
2017-02-22 19:05:49 +02:00
c6848506cf Fix a typo 2017-02-22 10:27:03 +01:00
0b82b8420e Use yum repository to install telegraf on RedHat family
The role does not use a direct download of the rpm package but use the
yum repository for InfluxData products as it is advised in the current
documentation for installation.
https://docs.influxdata.com/telegraf/v1.2/introduction/installation/
2017-02-22 10:27:03 +01:00
f7e7045e9f Remove unused vars 2017-02-22 10:27:03 +01:00
35b594cf36 Merge pull request #24 from emersondispatch/master
Remove for-loop in extra-plugin template
2017-02-21 22:10:45 +02:00
128faa55b6 Consolidate instead to a single extra-plugins conf file, to cover the case of multiple instances of same plugin 2017-02-21 10:40:19 -08:00
641981bfb3 Remove for-loop in extra-plugin template, because this is performed by the task itself. Was causing all extra plugin configurations to be written in each sub-configuration file 2017-02-20 20:24:19 -08:00
e29aa87c04 Merge pull request #23 from zend0/patch-1
Update Debian.yml
2017-02-09 20:13:12 +01:00
227c6f9418 Update Debian.yml
upd

add become: yes
2017-02-09 15:25:05 +04:00
cb215db02c Merge pull request #21 from oboukili/master
extra plugins tags
2017-01-20 12:34:37 +01:00
0597f0115c extra plugins tags 2017-01-20 11:58:17 +01:00
62a6158281 Merge pull request #20 from szibis/input_tags
Input tags support
2017-01-20 10:48:36 +01:00
fe9f970bde Fixes closing if for tags template 2017-01-20 10:01:13 +01:00
2696c2aca5 Merge pull request #19 from szibis/permissions
Fix telegraf confguration permissions
2017-01-19 19:31:48 +01:00
f3f67f4f7a Input tags support 2017-01-18 21:29:42 +01:00
8b522beab0 fix typo 2017-01-18 21:24:16 +01:00
4291b00a6e Fix telegraf permissions - tests fix 2017-01-18 21:14:28 +01:00
7694682e56 Fix telegraf permissions. Telegraf package adds user and group telegraf. 2017-01-18 21:10:39 +01:00
11 changed files with 98 additions and 73 deletions

View File

@ -5,6 +5,16 @@ Below an overview of all changes in the releases.
Version (Release date)
0.7.0 (2017-02-23)
* Replace action by modules #26 (By pull request: tszym (Thanks!))
* Use yum repository to install telegraf on RedHat #25 (By pull request: tszym (Thanks!))
* Remove for-loop in extra-plugin template #24 (By pull request: emersondispatch (Thanks!))
* Update Debian.yml #23 (By pull request: zend0 (Thanks!))
* extra plugins tags #21 (By pull request: oboukili (Thanks!))
* Input tags support #20 (By pull request: szibis (Thanks!))
* Fix telegraf confguration permissions #19 (By pull request: szibis (Thanks!))
0.6.0 (2017-01-02)
* Fix the Influxdb repo for "hybrid" debian distros (like "jessie/sid") #9 (By pull request: Ismael (Thanks!))

View File

@ -1,7 +1,6 @@
dj-wasabi.telegraf
=========
# dj-wasabi.telegraf
Build status:
## Build status:
[![Build Status](https://travis-ci.org/dj-wasabi/ansible-telegraf.svg?branch=master)](https://travis-ci.org/dj-wasabi/ansible-telegraf)
@ -13,19 +12,25 @@ Design goals are to have a minimal memory footprint with a plugin system so that
(https://github.com/influxdb/telegraf)
Requirements
------------
## Requirements
No requirements. (Yes, an Influxdb server somewhere on the network will help though ;-) )
Role Variables
--------------
## Upgrade
### 0.7.0
There was an issue:
If I configure a telegraf_plugins_extra, run ansible, delete the plugin and run ansible again, the plugin stays on the machine.
## Role Variables
The following parameters can be set for the Telegraf agent:
* `telegraf_agent_version`: The version of Telegraf to install. Default: `1.0.0`
* `telegraf_agent_rpm_url`: The full path to the RPM file located on a webserver.
* `telegraf_agent_deb_url`: The full path to the DEB file located on a webserver.
* `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10`
* `telegraf_agent_debug`: Run Telegraf in debug mode. Default: `False`
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
@ -53,6 +58,8 @@ Specifying an output. The default is set to localhost, you'll have to specify th
config:
- urls = ["http://localhost:8086"]
- database = "telegraf"
tagpass:
- diskmetrics = ["true"]
The config will be printed line by line into the configuration, so you could also use:
@ -79,7 +86,7 @@ With the property `telegraf_plugins_default` it is set to use the default set of
- plugin: swap
- plugin: netstat
Every telegraf agent has these as an default configuration.
Every telegraf agent has these as a default configuration.
The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific to the servers goal. Following is an example for using this parameter for MySQL database servers:
@ -92,6 +99,7 @@ The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific t
Telegraf plugin options:
* `tags` An k/v tags to apply to a specific input's measurements. Can be used on any stage for better filtering for example in outputs.
* `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.
@ -103,18 +111,19 @@ An example might look like this:
telegraf_plugins_default:
- plugin: disk
interval: 12
tags:
- diskmetrics = "true"
tagpass:
- fstype = [ "ext4", "xfs" ]
- path = [ "/opt", "/home" ]
Dependencies
------------
## Dependencies
No dependencies
Example Playbook
----------------
## Example Playbook
- hosts: servers
roles:
@ -130,17 +139,15 @@ The following have contributed to this Ansible role:
* Ismael
* romainbureau
# Molecule
## Molecule
This roles is configured to be tested with Molecule. You can find on this page some more information regarding Molecule: https://werner-dijkerman.nl/2016/07/10/testing-ansible-roles-with-molecule-testinfra-and-docker/
License
-------
## License
BSD
Author Information
------------------
## Author Information
Please let me know if you have issues. Pull requests are also accepted! :-)

View File

@ -4,8 +4,6 @@
#telegraf_agent_version: 0.10.1
telegraf_agent_version: 1.0.0
telegraf_agent_hostname: "{{ ansible_fqdn }}"
telegraf_agent_version_sub_l: _beta2
telegraf_agent_version_sub_u: -beta2
telegraf_agent_interval: 10
telegraf_agent_debug: False
telegraf_agent_round_interval: True
@ -22,9 +20,6 @@ telegraf_agent_quiet: False
telegraf_agent_logfile: ""
telegraf_agent_omit_hostname: False
telegraf_agent_rpm_url: https://dl.influxdata.com/telegraf/releases/telegraf-{{ telegraf_agent_version }}{{ telegraf_agent_version_sub_l }}.x86_64.rpm
telegraf_agent_deb_url: https://dl.influxdata.com/telegraf/releases/telegraf_{{ telegraf_agent_version }}{{ telegraf_agent_version_sub_u }}_amd64.deb
telegraf_agent_tags:
telegraf_agent_output:

View File

@ -2,8 +2,8 @@
# handlers file for ansible-telegraf
- name: "Restart Telegraf"
action: service
name=telegraf
state=restarted
enabled=yes
service:
name: telegraf
state: restarted
enabled: yes
become: yes

View File

@ -2,14 +2,14 @@
- hosts: all
pre_tasks:
- name: "Installing which on CentOS"
action: yum
name=which
state=installed
yum:
name: which
state: installed
when: ansible_distribution == 'CentOS'
- name: "Installing wget on Debian"
action: apt
name=wget
state=installed
apt:
name: wget
state: installed
when: ansible_distribution == 'Debian'
roles:
- role: ansible-telegraf

View File

@ -32,6 +32,7 @@
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_lsb.codename }} stable"
filename: "influxdb"
state: present
become: yes
tags:
- telegraf
- packages
@ -49,9 +50,9 @@
when: ansible_lsb is not defined
- name: "Install telegraf package | Debian"
action: apt
name=telegraf
state=installed
apt:
name: telegraf
state: installed
notify: "Restart Telegraf"
become: yes
tags:

View File

@ -1,14 +1,14 @@
---
- name: "Enable EPEL"
action: yum
name=epel-release
state=installed
yum:
name: epel-release
state: installed
- name: "Installing some dependencies"
action: yum
name={{ item }}
state=installed
yum:
name: "{{ item }}"
state: installed
with_items:
- python-pip
- python-devel
@ -17,22 +17,24 @@
- openssl-devel
- name: "Installing PIP dependensies"
action: pip
name={{ item }}
state=present
pip:
name: "{{ item }}"
state: present
with_items:
- urllib3
- pyopenssl
- ndg-httpsclient
- name: "Fetch telegraf installation package | RedHat"
action: get_url
url="{{ telegraf_agent_rpm_url }}"
dest=/tmp/telegraf_{{ telegraf_agent_version }}.x86_64.rpm
mode=0440
- name: "Add yum repository | RedHat"
yum_repository:
name: influxdb
description: InfluxDB Repository - RHEL $releasever
baseurl: https://repos.influxdata.com/rhel/$releasever/$basearch/stable
gpgcheck: yes
gpgkey: https://repos.influxdata.com/influxdb.key
- name: "Install telegraf package | RedHat"
action: yum
name=/tmp/telegraf_{{ telegraf_agent_version }}.x86_64.rpm
state=installed
yum:
name: "telegraf-{{ telegraf_agent_version }}"
state: installed
notify: "Restart Telegraf"

View File

@ -13,9 +13,9 @@
template:
src: etc-opt-telegraf-telegraf.conf.j2
dest: /etc/opt/telegraf/telegraf.conf
owner: root
group: root
mode: 0644
owner: telegraf
group: telegraf
mode: 0640
become: yes
when: telegraf_agent_version|version_compare('0.10.0', '<')
notify: "Restart Telegraf"
@ -24,9 +24,9 @@
template:
src: telegraf.conf.j2
dest: /etc/telegraf/telegraf.conf
owner: root
group: root
mode: 0644
owner: telegraf
group: telegraf
mode: 0640
become: yes
when: telegraf_agent_version|version_compare('0.10.0', '>=')
notify: "Restart Telegraf"
@ -34,11 +34,10 @@
- name: "Copy telegraf extra plugins"
template:
src: "telegraf-extra-plugin.conf.j2"
dest: "/etc/telegraf/telegraf.d/{{ item.plugin }}.conf"
owner: root
group: root
mode: 0644
with_items: "{{ telegraf_plugins_extra }}"
dest: "/etc/telegraf/telegraf.d/extra-plugins.conf"
owner: telegraf
group: telegraf
mode: 0640
when: "telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable"
become: yes
notify: "Restart Telegraf"

View File

@ -1,4 +1,3 @@
{% if telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable %}
{% for item in telegraf_plugins_extra %}
[[inputs.{{ item.plugin }}]]
@ -10,6 +9,12 @@
{{ items }}
{% endfor %}
{% endif %}
{% if item.tags is defined and item.tags is iterable %}
[inputs.{{ item.plugin }}.tags]
{% for items in item.tags %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}

View File

@ -54,6 +54,12 @@
{{ items }}
{% endfor %}
{% endif %}
{% if item.tags is defined and item.tags is iterable %}
[inputs.{{ item.plugin }}.tags]
{% for items in item.tags %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}

View File

@ -12,9 +12,9 @@ def test_telegraf_running_and_enabled(Service, SystemInfo):
def test_telegraf_dot_conf(File):
telegraf = File("/etc/telegraf/telegraf.conf")
assert telegraf.user == "root"
assert telegraf.group == "root"
assert telegraf.mode == 0o644
assert telegraf.user == "telegraf"
assert telegraf.group == "telegraf"
assert telegraf.mode == 0o640
assert telegraf.contains('[[inputs.cpu]]')