mirror of
https://github.com/dj-wasabi/ansible-telegraf.git
synced 2025-07-17 08:46:37 +00:00
Compare commits
25 Commits
Author | SHA1 | Date | |
---|---|---|---|
8fd9c2c9c9 | |||
4c0d09d11e | |||
9aad1a8d39 | |||
2c54dea8d2 | |||
f962f4ca82 | |||
194d3d6e92 | |||
5036595b79 | |||
3bd9681567 | |||
536dce400b | |||
0405d3d993 | |||
1533214071 | |||
26b473b0fb | |||
d486975c81 | |||
3201ec329c | |||
b95a67954f | |||
ad1a4430c6 | |||
ec63b2aa24 | |||
8dbb365ed0 | |||
f23fc6ea23 | |||
51c82e1c85 | |||
a3ca2db212 | |||
9c9dc33ac3 | |||
95d5161d33 | |||
86fabca61b | |||
b0dfe773a7 |
@ -9,9 +9,12 @@ before_install:
|
|||||||
- sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y docker-engine
|
- sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y docker-engine
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- pip install molecule
|
- pip install molecule ansible docker-py
|
||||||
|
|
||||||
script:
|
script:
|
||||||
|
- molecule --version
|
||||||
|
- ansible --version
|
||||||
- molecule test
|
- molecule test
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||||
|
12
CHANGELOG.md
12
CHANGELOG.md
@ -5,6 +5,18 @@ Below an overview of all changes in the releases.
|
|||||||
|
|
||||||
Version (Release date)
|
Version (Release date)
|
||||||
|
|
||||||
|
0.6.0 (2017-01-02)
|
||||||
|
|
||||||
|
* Fix the Influxdb repo for "hybrid" debian distros (like "jessie/sid") #9 (By pull request: Ismael (Thanks!))
|
||||||
|
* Do "become" for the steps that require root access on Debian #10 (By pull request: Ismael (Thanks!))
|
||||||
|
* Fix the Influxdb repo for "hybrid" debian distros (like "jessie/sid") #11 (By pull request: Ismael (Thanks!))
|
||||||
|
* Removed imports #12
|
||||||
|
* Fixing molecule #15
|
||||||
|
* set telegraf hostname in defaults. #13 (By pull request: romainbureau (Thanks!))
|
||||||
|
* use version_compare filter … #14 (By pull request: lhoss (Thanks!))
|
||||||
|
* support missing agent settings upto telegraf v1.1 #16 (By pull request: lhoss (Thanks!))
|
||||||
|
* update the README with the latest v0.13 - v1.1 agent settings #17 (By pull request: lhoss (Thanks!))
|
||||||
|
|
||||||
0.5.1 (2016-08-24)
|
0.5.1 (2016-08-24)
|
||||||
|
|
||||||
* fixed issue with ansible not getting the package #6 (By pull request: thecodeassassin (Thanks!))
|
* fixed issue with ansible not getting the package #6 (By pull request: thecodeassassin (Thanks!))
|
||||||
|
14
README.md
14
README.md
@ -27,10 +27,18 @@ The following parameters can be set for the Telegraf agent:
|
|||||||
* `telegraf_agent_rpm_url`: The full path to the RPM file located on a webserver.
|
* `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_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_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`: Run Telegraf in debug mode. Default: `False`
|
||||||
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
|
* `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_interval`: Default data flushing interval for all outputs. Default: 10
|
||||||
* `telegraf_agent_flush_jitter`: Jitter the flush interval by a random amount. Default: 0
|
* `telegraf_agent_flush_jitter`: Jitter the flush interval by a random amount. Default: 0
|
||||||
|
* `telegraf_agent_collection_jitter`: Jitter the collection by a random amount. Default: 0 (since v0.13)
|
||||||
|
* `telegraf_agent_metric_batch_size`: The agent metric batch size. Default: 1000 (since v0.13)
|
||||||
|
* `telegraf_agent_metric_buffer_limit`: The agent metric buffer limit. Default: 10000 (since v0.13)
|
||||||
|
* `telegraf_agent_quiet`: Run Telegraf in quiet mode (error messages only). Default: `False` (since v0.13)
|
||||||
|
* `telegraf_agent_logfile`: The agent logfile name. Default: '' (means to log to stdout) (since v1.1)
|
||||||
|
* `telegraf_agent_omit_hostname`: Do no set the "host" tag in the agent. Default: `False` (since v1.1)
|
||||||
|
|
||||||
|
Full agent settings reference: https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#agent-configuration
|
||||||
|
|
||||||
You can set tags for the host running telegraf:
|
You can set tags for the host running telegraf:
|
||||||
|
|
||||||
@ -117,6 +125,10 @@ The following have contributed to this Ansible role:
|
|||||||
|
|
||||||
* aferrari-technisys
|
* aferrari-technisys
|
||||||
* stvnwrgs
|
* stvnwrgs
|
||||||
|
* lhoss
|
||||||
|
* thecodeassassin
|
||||||
|
* Ismael
|
||||||
|
* romainbureau
|
||||||
|
|
||||||
# Molecule
|
# Molecule
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#telegraf_agent_version: 0.10.1
|
#telegraf_agent_version: 0.10.1
|
||||||
telegraf_agent_version: 1.0.0
|
telegraf_agent_version: 1.0.0
|
||||||
|
telegraf_agent_hostname: "{{ ansible_fqdn }}"
|
||||||
telegraf_agent_version_sub_l: _beta2
|
telegraf_agent_version_sub_l: _beta2
|
||||||
telegraf_agent_version_sub_u: -beta2
|
telegraf_agent_version_sub_u: -beta2
|
||||||
telegraf_agent_interval: 10
|
telegraf_agent_interval: 10
|
||||||
@ -11,6 +12,16 @@ telegraf_agent_round_interval: True
|
|||||||
telegraf_agent_flush_interval: 10
|
telegraf_agent_flush_interval: 10
|
||||||
telegraf_agent_flush_jitter: 0
|
telegraf_agent_flush_jitter: 0
|
||||||
|
|
||||||
|
#v0.13 settings (not sure if supported in older version):
|
||||||
|
telegraf_agent_collection_jitter: 0
|
||||||
|
telegraf_agent_metric_batch_size: 1000
|
||||||
|
telegraf_agent_metric_buffer_limit: 10000
|
||||||
|
telegraf_agent_quiet: False
|
||||||
|
|
||||||
|
#v1.1 settings:
|
||||||
|
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_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_deb_url: https://dl.influxdata.com/telegraf/releases/telegraf_{{ telegraf_agent_version }}{{ telegraf_agent_version_sub_u }}_amd64.deb
|
||||||
|
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
name=telegraf
|
name=telegraf
|
||||||
state=restarted
|
state=restarted
|
||||||
enabled=yes
|
enabled=yes
|
||||||
sudo: yes
|
become: yes
|
@ -2,6 +2,12 @@
|
|||||||
ansible:
|
ansible:
|
||||||
playbook: playbook.yml
|
playbook: playbook.yml
|
||||||
|
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
|
||||||
|
verifier:
|
||||||
|
name: testinfra
|
||||||
|
|
||||||
docker:
|
docker:
|
||||||
containers:
|
containers:
|
||||||
- name: telegraf-centos
|
- name: telegraf-centos
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
name: "apt-transport-https"
|
name: "apt-transport-https"
|
||||||
state: present
|
state: present
|
||||||
when: not apt_https_transport.stat.exists
|
when: not apt_https_transport.stat.exists
|
||||||
|
become: yes
|
||||||
tags:
|
tags:
|
||||||
- telegraf
|
- telegraf
|
||||||
- packages
|
- packages
|
||||||
@ -21,25 +22,38 @@
|
|||||||
apt_key:
|
apt_key:
|
||||||
url: "https://repos.influxdata.com/influxdb.key"
|
url: "https://repos.influxdata.com/influxdb.key"
|
||||||
state: present
|
state: present
|
||||||
|
become: yes
|
||||||
tags:
|
tags:
|
||||||
- telegraf
|
- telegraf
|
||||||
- packages
|
- packages
|
||||||
|
|
||||||
|
- name: Add Influxdb repository (using LSB).
|
||||||
|
apt_repository:
|
||||||
|
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_lsb.codename }} stable"
|
||||||
|
filename: "influxdb"
|
||||||
|
state: present
|
||||||
|
tags:
|
||||||
|
- telegraf
|
||||||
|
- packages
|
||||||
|
when: ansible_lsb is defined
|
||||||
|
|
||||||
- name: Add Influxdb repository.
|
- name: Add Influxdb repository.
|
||||||
apt_repository:
|
apt_repository:
|
||||||
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable"
|
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable"
|
||||||
filename: "influxdb"
|
filename: "influxdb"
|
||||||
state: present
|
state: present
|
||||||
|
become: yes
|
||||||
tags:
|
tags:
|
||||||
- telegraf
|
- telegraf
|
||||||
- packages
|
- packages
|
||||||
|
when: ansible_lsb is not defined
|
||||||
|
|
||||||
- name: "Install telegraf package | Debian"
|
- name: "Install telegraf package | Debian"
|
||||||
action: apt
|
action: apt
|
||||||
name=telegraf
|
name=telegraf
|
||||||
state=installed
|
state=installed
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
sudo: yes
|
become: yes
|
||||||
tags:
|
tags:
|
||||||
- telegraf
|
- telegraf
|
||||||
- packages
|
- packages
|
||||||
|
@ -9,10 +9,6 @@
|
|||||||
include: "Debian.yml"
|
include: "Debian.yml"
|
||||||
when: ansible_os_family == "Debian"
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
- name: "Set fact by remove the dots from version"
|
|
||||||
set_fact:
|
|
||||||
telegraf_ver: "{{ telegraf_agent_version.replace('.','') }}"
|
|
||||||
|
|
||||||
- name: "Copy the template for versions < 0.10.0"
|
- name: "Copy the template for versions < 0.10.0"
|
||||||
template:
|
template:
|
||||||
src: etc-opt-telegraf-telegraf.conf.j2
|
src: etc-opt-telegraf-telegraf.conf.j2
|
||||||
@ -20,8 +16,8 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 0644
|
mode: 0644
|
||||||
when: telegraf_ver < 100
|
become: yes
|
||||||
sudo: yes
|
when: telegraf_agent_version|version_compare('0.10.0', '<')
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
|
|
||||||
- name: "Copy the template for versions >= 0.10.0"
|
- name: "Copy the template for versions >= 0.10.0"
|
||||||
@ -31,8 +27,8 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 0644
|
mode: 0644
|
||||||
when: telegraf_ver >= 100
|
become: yes
|
||||||
sudo: yes
|
when: telegraf_agent_version|version_compare('0.10.0', '>=')
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
|
|
||||||
- name: "Copy telegraf extra plugins"
|
- name: "Copy telegraf extra plugins"
|
||||||
@ -41,8 +37,8 @@
|
|||||||
dest: "/etc/telegraf/telegraf.d/{{ item.plugin }}.conf"
|
dest: "/etc/telegraf/telegraf.d/{{ item.plugin }}.conf"
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 644
|
mode: 0644
|
||||||
with_items: "{{ telegraf_plugins_extra }}"
|
with_items: "{{ telegraf_plugins_extra }}"
|
||||||
when: "telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable"
|
when: "telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable"
|
||||||
sudo: yes
|
become: yes
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
@ -11,10 +11,20 @@
|
|||||||
[agent]
|
[agent]
|
||||||
interval = "{{ telegraf_agent_interval }}s"
|
interval = "{{ telegraf_agent_interval }}s"
|
||||||
debug = {{ telegraf_agent_debug | lower }}
|
debug = {{ telegraf_agent_debug | lower }}
|
||||||
hostname = "{{ ansible_fqdn }}"
|
hostname = "{{ telegraf_agent_hostname }}"
|
||||||
round_interval = {{ telegraf_agent_round_interval | lower }}
|
round_interval = {{ telegraf_agent_round_interval | lower }}
|
||||||
flush_interval = "{{ telegraf_agent_flush_interval }}s"
|
flush_interval = "{{ telegraf_agent_flush_interval }}s"
|
||||||
flush_jitter = "{{ telegraf_agent_flush_jitter }}s"
|
flush_jitter = "{{ telegraf_agent_flush_jitter }}s"
|
||||||
|
{% if telegraf_agent_version|version_compare('0.13', '>=') %}
|
||||||
|
collection_jitter = "{{ telegraf_agent_collection_jitter }}s"
|
||||||
|
metric_batch_size = {{ telegraf_agent_metric_batch_size }}
|
||||||
|
metric_buffer_limit = {{ telegraf_agent_metric_buffer_limit }}
|
||||||
|
quiet = {{ telegraf_agent_quiet | lower }}
|
||||||
|
{% endif %}
|
||||||
|
{% if telegraf_agent_version|version_compare('1.1', '>=') %}
|
||||||
|
logfile = "{{ telegraf_agent_logfile }}"
|
||||||
|
omit_hostname = {{ telegraf_agent_omit_hostname | lower }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# OUTPUTS #
|
# OUTPUTS #
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
from testinfra.utils.ansible_runner import AnsibleRunner
|
||||||
|
|
||||||
|
testinfra_hosts = AnsibleRunner('.molecule/ansible_inventory').get_hosts('all')
|
||||||
|
|
||||||
|
|
||||||
def test_telegraf_running_and_enabled(Service, SystemInfo):
|
def test_telegraf_running_and_enabled(Service, SystemInfo):
|
||||||
telegraf = Service("telegraf")
|
telegraf = Service("telegraf")
|
||||||
|
Reference in New Issue
Block a user