mirror of
https://github.com/dj-wasabi/ansible-telegraf.git
synced 2025-07-17 08:46:37 +00:00
Compare commits
200 Commits
Author | SHA1 | Date | |
---|---|---|---|
68af70ea86 | |||
7c9c047c67 | |||
732dffa435 | |||
570f81a779 | |||
29fb3ea5e0 | |||
c318de1e2e | |||
8a5a7187fa | |||
6f30799a7f | |||
2b8cb8a9d8 | |||
108284cda1 | |||
51c2bb66f5 | |||
bfe52cd752 | |||
b5179f4dfe | |||
c8a2209fe5 | |||
bd5dfd18c1 | |||
870e56c5a7 | |||
5fb03da151 | |||
39bc504fd5 | |||
171ecb0434 | |||
06117f38a1 | |||
d84931411e | |||
d5ab4b07a8 | |||
5c160d6bbe | |||
d36c400cd3 | |||
cec761a336 | |||
da55c4a711 | |||
ccdb9bd98e | |||
94774fbc8d | |||
73c00ab7b6 | |||
f241fd34d0 | |||
4064c8b040 | |||
fdcff0b195 | |||
6b6aa755f6 | |||
ca76832c24 | |||
6f6fdf7f5e | |||
f915bc0bd9 | |||
5066c5c7f9 | |||
adb678a9e5 | |||
b8e8710ccf | |||
e4728f4a6a | |||
8ac7c14045 | |||
8c665829e6 | |||
68da943438 | |||
5fad4a7a64 | |||
5eeb4d6409 | |||
83fda666a8 | |||
9a548d825d | |||
6d3d9741f0 | |||
df4af3eeef | |||
6432640e89 | |||
4fd39fe753 | |||
e59d785c7e | |||
4bef71819d | |||
e13c62d918 | |||
f329d9e207 | |||
554434c7ad | |||
a89b6aff93 | |||
fd18c08145 | |||
3596c7b95e | |||
8e4b34d4bd | |||
632fe13972 | |||
4b7d9713e3 | |||
968b005f3a | |||
28cd5b8f6e | |||
eb55757a01 | |||
1c15756019 | |||
9a1c543906 | |||
805071d0d9 | |||
81246d67ea | |||
0ca3c1ddda | |||
ecce0edb9b | |||
d7863b10ef | |||
a9809890ee | |||
84d31bdaa6 | |||
e2001ee2c7 | |||
4d57c29311 | |||
4e31a334a7 | |||
8d25c09575 | |||
55b4b6530e | |||
518f60132e | |||
7960f96a2a | |||
0b24ff0853 | |||
f206e93e1b | |||
57fe305579 | |||
a9e6a96183 | |||
7eda3206fd | |||
2c91f9de08 | |||
132e39ed47 | |||
ab3730e24f | |||
1fae6b597f | |||
7f00767dc2 | |||
04935c3de4 | |||
23f8339d99 | |||
9b912d8f97 | |||
07a0358410 | |||
0b749fba5e | |||
559081b000 | |||
562a751990 | |||
0ad660efb8 | |||
bffd2f1549 | |||
998ad25059 | |||
a5dc1b8de5 | |||
bc3b670ca2 | |||
add696bc78 | |||
1112020f45 | |||
6e72a8f278 | |||
7508f3927d | |||
79422a70a1 | |||
d3195b7b88 | |||
20a7653f95 | |||
08b1c62710 | |||
4b10834a00 | |||
9353a544f9 | |||
d750f4d259 | |||
7c32a52748 | |||
7a1ae28929 | |||
59b3613fe1 | |||
987aeb4406 | |||
b15e674884 | |||
331ffb7cb5 | |||
ea64e9bac4 | |||
292cc2a2f4 | |||
685487f198 | |||
7b8809c311 | |||
8fdab6fdcd | |||
7d5d5c1ea1 | |||
7d89ab270a | |||
4956663701 | |||
67253f5438 | |||
a55ef0b0c0 | |||
0006d91e5e | |||
10193da1cf | |||
a4c6db7be1 | |||
02d6e48a39 | |||
e977863e97 | |||
a1505ad499 | |||
a4cf4827cc | |||
b48ff6b273 | |||
2687513dc8 | |||
341a00f16d | |||
4b6f773bba | |||
ff9a820b01 | |||
dec1cab940 | |||
4fdafac2d0 | |||
0c500cf06d | |||
ab68b6813b | |||
852cfaa55e | |||
3fdba74518 | |||
f843a3f51a | |||
4ab32df6df | |||
ca4a07f87d | |||
3cd91d0316 | |||
27f2665772 | |||
a11694ff86 | |||
567539a637 | |||
69526620d9 | |||
618b8fa540 | |||
f59d45a167 | |||
857a7a7938 | |||
dd28f645a9 | |||
0aba53bb17 | |||
8a8d826de4 | |||
499f217ed3 | |||
6f8bf1162c | |||
9d24186e01 | |||
8b0cfeac4d | |||
b88d46ad1a | |||
2003635e73 | |||
50c4043389 | |||
2086b24b79 | |||
cf84634ce4 | |||
eaa7210976 | |||
87c014da34 | |||
bf008bec0c | |||
0b285f7772 | |||
2c444d97a8 | |||
5785e4a690 | |||
1d57bf2af8 | |||
9f98ae6a76 | |||
35cd29007a | |||
8cdce07205 | |||
f826414f5f | |||
f6be7d6a4c | |||
5764b4bc90 | |||
07a6cb0135 | |||
140597e41d | |||
d744a12f6f | |||
0cb6770905 | |||
1ccb184813 | |||
88ba1e218f | |||
5b31515d1b | |||
38933cfc30 | |||
454ee8be7b | |||
d49c278506 | |||
e3c553e729 | |||
c5e6883c1b | |||
a4d3eb237c | |||
ced8fd8ad5 | |||
5f5d393a3f | |||
086dfab7d3 |
4
.github/FUNDING.yml
vendored
Normal file
4
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: dj-wasabi
|
||||
patreon: wernerdijkerman
|
49
.github/workflows/main.yml
vendored
Normal file
49
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
# This will execute some scripts on main branch.
|
||||
|
||||
name: MasterRun
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
runme:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout dj-wasabi-release repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dj-wasabi/dj-wasabi-release
|
||||
path: dj-wasabi-release
|
||||
|
||||
- name: Checkout current repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: main
|
||||
|
||||
- name: Commit Changelog file
|
||||
run: |
|
||||
# We are cloned in the 'main' directory and the dj-wasabi-release
|
||||
# repository is the 'dj-wasabi-release' next to 'main'
|
||||
cd main
|
||||
|
||||
# Generate CHANGELOG.md file
|
||||
../dj-wasabi-release/release.sh -d
|
||||
|
||||
# Let commit the changes if there are any? (Well there should be!)
|
||||
if [[ $(git status | grep -c 'CHANGELOG.md' || true) -gt 0 ]]
|
||||
then echo "Committing file"
|
||||
git config --global user.name 'Werner Dijkerman [GH bot]'
|
||||
git config --global user.email 'github@dj-wasabi.nl'
|
||||
|
||||
git add CHANGELOG.md
|
||||
git commit -m "Updated CHANGELOG.md on \"$(date "+%Y-%m-%d %H:%M:%S")\"" CHANGELOG.md
|
||||
git push
|
||||
fi
|
||||
env:
|
||||
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
72
.github/workflows/telegraf.yml
vendored
Normal file
72
.github/workflows/telegraf.yml
vendored
Normal file
@ -0,0 +1,72 @@
|
||||
name: "ansible-telegraf"
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'defaults/**'
|
||||
- 'files/**'
|
||||
- 'handlers/**'
|
||||
- 'meta/**'
|
||||
- 'molecule/**'
|
||||
- 'tasks/**'
|
||||
- 'templates/**'
|
||||
- '.github/workflows/telegraf.yml'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'defaults/**'
|
||||
- 'files/**'
|
||||
- 'handlers/**'
|
||||
- 'meta/**'
|
||||
- 'molecule/**'
|
||||
- 'tasks/**'
|
||||
- 'templates/**'
|
||||
- '.github/workflows/telegraf.yml'
|
||||
jobs:
|
||||
molecule:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
molecule_distro:
|
||||
- container: rocky8
|
||||
image: geerlingguy/docker-rockylinux8-ansible
|
||||
- container: rocky9
|
||||
image: geerlingguy/docker-rockylinux9-ansible
|
||||
- container: ubuntu2204
|
||||
image: geerlingguy/docker-ubuntu2204-ansible:latest
|
||||
- container: ubuntu2004
|
||||
image: geerlingguy/docker-ubuntu2004-ansible:latest
|
||||
- container: ubuntu1804
|
||||
image: geerlingguy/docker-ubuntu1804-ansible:latest
|
||||
- container: debian10
|
||||
image: geerlingguy/docker-debian10-ansible:latest
|
||||
- container: debian11
|
||||
image: geerlingguy/docker-debian11-ansible:latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: Set up Python 3.11
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: 3.11.10
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
|
||||
- name: Run role tests on empty systems in check-mode
|
||||
run: >-
|
||||
MY_MOLECULE_CONTAINER=${{ matrix.molecule_distro.container }}
|
||||
MY_MOLECULE_IMAGE=${{ matrix.molecule_distro.image }}
|
||||
MY_MOLECULE_GROUP=${{ matrix.molecule_distro.group }}
|
||||
MY_MOLECULE_DOCKER_COMMAND=${{ matrix.molecule_distro.command }}
|
||||
molecule test -s empty-checkmode
|
||||
|
||||
- name: Run role tests
|
||||
run: >-
|
||||
MY_MOLECULE_CONTAINER=${{ matrix.molecule_distro.container }}
|
||||
MY_MOLECULE_IMAGE=${{ matrix.molecule_distro.image }}
|
||||
MY_MOLECULE_GROUP=${{ matrix.molecule_distro.group }}
|
||||
MY_MOLECULE_DOCKER_COMMAND=${{ matrix.molecule_distro.command }}
|
||||
molecule test
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -5,3 +5,5 @@ tests/.cache
|
||||
__pycache__
|
||||
*.retry
|
||||
pmip
|
||||
# IDE:s
|
||||
.idea
|
||||
|
16
.pre-commit-config.yaml
Normal file
16
.pre-commit-config.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
repos:
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: ansible-lint
|
||||
name: Ansible-lint
|
||||
description: This hook runs ansible-lint.
|
||||
entry: ansible-lint --force-color .
|
||||
language: python
|
||||
pass_filenames: false
|
||||
always_run: true
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v3.2.0
|
||||
hooks:
|
||||
- id: end-of-file-fixer
|
||||
- id: trailing-whitespace
|
16
.travis.yml
16
.travis.yml
@ -1,16 +0,0 @@
|
||||
---
|
||||
sudo: required
|
||||
language: python
|
||||
services:
|
||||
- docker
|
||||
|
||||
install:
|
||||
- curl -sSlo requirements.txt https://raw.githubusercontent.com/dj-wasabi/ansible-ci-base/master/requirements.txt
|
||||
- pip install -r requirements.txt
|
||||
|
||||
script:
|
||||
- molecule --version
|
||||
- ansible --version
|
||||
- molecule test
|
||||
notifications:
|
||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
441
CHANGELOG.md
441
CHANGELOG.md
@ -1,124 +1,377 @@
|
||||
dj-wasabi.telegraf
|
||||
------------------
|
||||
# Changelog
|
||||
|
||||
Below an overview of all changes in the releases.
|
||||
## [Unreleased](https://github.com/dj-wasabi/ansible-telegraf/tree/HEAD)
|
||||
|
||||
Version (Release date)
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.14.1...HEAD)
|
||||
|
||||
0.11.0 (2018-12-11)
|
||||
**Implemented enhancements:**
|
||||
|
||||
* Added support for plugins being managed exclusively by this playbook #60 (By pull request: gaizeror (Thanks!))
|
||||
* Pin apt key ID #61 (By pull request: tszym (Thanks!))
|
||||
* Wen copying/removing plugins show only plugin name #62 (By pull request: mprasil (Thanks!))
|
||||
* Using base ci requirements.txt #64
|
||||
* telegraf-extra-plugin.conf.j2: fix template typo #65 (By pull request: gaelL (Thanks!))
|
||||
* Some small improvements #66
|
||||
* Want to use latest #67
|
||||
* Added Windows as OS #68
|
||||
* Added support for (Open)Suse #69
|
||||
* Added default pluging if nothing is configured #70
|
||||
* Replace 'ec2_facts' with 'ec2_metadata_facts' to fix a deprecation warning #72 (By pull request: Rylon (Thanks!))
|
||||
* A few enhancements and fixes to windows support #73 (By pull request: jdivy (Thanks!))
|
||||
* Renamed the tojson to to_json #74
|
||||
- Repo installation fails for Almalinux [\#172](https://github.com/dj-wasabi/ansible-telegraf/issues/172)
|
||||
- Support for sub\_inputs in extra plugins [\#184](https://github.com/dj-wasabi/ansible-telegraf/pull/184) ([lisuml](https://github.com/lisuml))
|
||||
|
||||
0.10.0 (2018-08-12)
|
||||
**Fixed bugs:**
|
||||
|
||||
* Updating to telegraf 1.7.3
|
||||
* Fix Deprecation warnings #54
|
||||
* Changed 'include' to 'include_tasks' to remove deprecation warning #53 (By pull request: tjend (Thanks!))
|
||||
* Add option to remove extra plugin config files #52 (By pull request: tjend (Thanks!))
|
||||
* Plugins extra hash allow multiple inputs same type #50 (By pull request: tjend (Thanks!))
|
||||
* Using specific version for tests
|
||||
* Update minimum Ansible version to 2.4
|
||||
- Add default repository handling for SUSE releases [\#154](https://github.com/dj-wasabi/ansible-telegraf/issues/154)
|
||||
- Fix Python package dependencies on SUSE releases [\#153](https://github.com/dj-wasabi/ansible-telegraf/issues/153)
|
||||
|
||||
0.9.0 (2018-05-06)
|
||||
**Closed issues:**
|
||||
|
||||
* plugins: be able to specify the filename of extra plugings #40 (By pull request: gaelL (Thanks!))
|
||||
* Fix markdown #41 (By pull request: Angristan (Thanks!))
|
||||
* Allow to override RedHat release version #43 (By pull request: tszym (Thanks!))
|
||||
* Improved comments, split up role, moved tags and added defaults #45 (By pull request: boxrick (Thanks!))
|
||||
* Fix Travis Tests #42
|
||||
* Convert the telegraf_plugins_extra varaible to a hash so that we can … #46 (By pull request: tjend (Thanks!))
|
||||
- amazon.aws.ec2\_tag\_info [\#177](https://github.com/dj-wasabi/ansible-telegraf/issues/177)
|
||||
- Failing on Debian Bookwork, telegraf recomends stable main rather than specific release [\#175](https://github.com/dj-wasabi/ansible-telegraf/issues/175)
|
||||
- Unable to run against linux machines \(redhat\) [\#159](https://github.com/dj-wasabi/ansible-telegraf/issues/159)
|
||||
- How to add the sub inputs into the same config file using telegraf\_plugin\_extra [\#149](https://github.com/dj-wasabi/ansible-telegraf/issues/149)
|
||||
|
||||
0.8.0 (2017-10-30)
|
||||
**Merged pull requests:**
|
||||
|
||||
* Updating to Molecule V2
|
||||
* Test if LSB codename exists before using it #35 (By pull request: tszym (Thanks!))
|
||||
* Remove useless packages on RedHat. fix #28 #36 (By pull request: tszym (Thanks!))
|
||||
* Fix extra plugins by file / Change apt source filename / Change tags by global_tags #37 (By pull request: aarnaud (Thanks!))
|
||||
* Use telegra_global_tags for oldest telegraf versions #38 (By pull request: tszym (Thanks!))
|
||||
- Updating the Python packages to make Molecule work [\#190](https://github.com/dj-wasabi/ansible-telegraf/pull/190) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- fix: add missing tasks for RedHat distro \(rpm install\) [\#189](https://github.com/dj-wasabi/ansible-telegraf/pull/189) ([vfreitassentient](https://github.com/vfreitassentient))
|
||||
- Bump ansible-core from 2.15.9 to 2.17.6 [\#188](https://github.com/dj-wasabi/ansible-telegraf/pull/188) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- Use `rhel` within yum url for almalinux [\#187](https://github.com/dj-wasabi/ansible-telegraf/pull/187) ([kuhball](https://github.com/kuhball))
|
||||
- Add Archlinux OS [\#186](https://github.com/dj-wasabi/ansible-telegraf/pull/186) ([Frankkkkk](https://github.com/Frankkkkk))
|
||||
- Fixes Role for Almalinux 8.8, Closes \#172 [\#183](https://github.com/dj-wasabi/ansible-telegraf/pull/183) ([mira-miracoli](https://github.com/mira-miracoli))
|
||||
|
||||
0.7.0 (2017-02-23)
|
||||
## [0.14.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.14.1) (2024-02-17)
|
||||
|
||||
* 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!))
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.14.0...0.14.1)
|
||||
|
||||
0.6.0 (2017-01-02)
|
||||
**Implemented enhancements:**
|
||||
|
||||
* 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!))
|
||||
- Fix check-mode failures [\#168](https://github.com/dj-wasabi/ansible-telegraf/pull/168) ([pieterlexis-tomtom](https://github.com/pieterlexis-tomtom))
|
||||
|
||||
0.5.1 (2016-08-24)
|
||||
**Fixed bugs:**
|
||||
|
||||
* fixed issue with ansible not getting the package #6 (By pull request: thecodeassassin (Thanks!))
|
||||
- Fix molecule tests so that PR's can properly validated [\#180](https://github.com/dj-wasabi/ansible-telegraf/pull/180) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Replace apt\_key with get\_url [\#170](https://github.com/dj-wasabi/ansible-telegraf/pull/170) ([danclough](https://github.com/danclough))
|
||||
|
||||
0.5.0 (2016-07-17)
|
||||
**Closed issues:**
|
||||
|
||||
* Removed Test Kitchen tests
|
||||
* Added Molecule tests and travis make use of them
|
||||
* Updated default version to 1.0.0 beta2
|
||||
* Feature/add extra plugins to telegrafd folder #5 (By pull request: stvnwrgs (Thanks!))
|
||||
- Failure due to apt-key when run against newer Debian/Ubuntu releases [\#169](https://github.com/dj-wasabi/ansible-telegraf/issues/169)
|
||||
|
||||
0.4.0 (2016-02-05)
|
||||
**Merged pull requests:**
|
||||
|
||||
* 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
|
||||
- Bump ansible-core from 2.15.2 to 2.15.9 [\#182](https://github.com/dj-wasabi/ansible-telegraf/pull/182) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- Bump ansible from 8.2.0 to 8.5.0 [\#181](https://github.com/dj-wasabi/ansible-telegraf/pull/181) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- Change Debian repo location [\#179](https://github.com/dj-wasabi/ansible-telegraf/pull/179) ([danclough](https://github.com/danclough))
|
||||
- replace depracted aws module [\#178](https://github.com/dj-wasabi/ansible-telegraf/pull/178) ([daparm](https://github.com/daparm))
|
||||
- added yaml 1.2.2 compatibility [\#176](https://github.com/dj-wasabi/ansible-telegraf/pull/176) ([DEvil0000](https://github.com/DEvil0000))
|
||||
- Migrate from io to diskio to fix deprecation warning [\#173](https://github.com/dj-wasabi/ansible-telegraf/pull/173) ([mprasil](https://github.com/mprasil))
|
||||
|
||||
0.3.0 (2016-01-13)
|
||||
## [0.14.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.14.0) (2023-01-30)
|
||||
|
||||
* Made it work with telegraf 0.10.0
|
||||
* Default installation: 0.10.0
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.3...0.14.0)
|
||||
|
||||
0.2.0 (2015-11-14)
|
||||
**Implemented enhancements:**
|
||||
|
||||
* 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!))
|
||||
- Added/removed OS'es for Molecule CI testing [\#167](https://github.com/dj-wasabi/ansible-telegraf/pull/167) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Ensure check-mode works [\#163](https://github.com/dj-wasabi/ansible-telegraf/pull/163) ([pieterlexis-tomtom](https://github.com/pieterlexis-tomtom))
|
||||
- Downgrade support [\#160](https://github.com/dj-wasabi/ansible-telegraf/pull/160) ([maxnasonov](https://github.com/maxnasonov))
|
||||
|
||||
0.1.0 (2015-09-23)
|
||||
**Fixed bugs:**
|
||||
|
||||
* 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
|
||||
|
||||
- Don't install init script on SUSE/openSUSE systems running systemd [\#152](https://github.com/dj-wasabi/ansible-telegraf/issues/152)
|
||||
- Fix the molecule run as part of CI process [\#166](https://github.com/dj-wasabi/ansible-telegraf/pull/166) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- update influxdata GPG key after rotation [\#165](https://github.com/dj-wasabi/ansible-telegraf/pull/165) ([Tetha](https://github.com/Tetha))
|
||||
- Fixed issues with Windows paths containing spaces [\#162](https://github.com/dj-wasabi/ansible-telegraf/pull/162) ([KlettIT](https://github.com/KlettIT))
|
||||
|
||||
0.0.2 (2015-09-20)
|
||||
**Closed issues:**
|
||||
|
||||
* Updated README dus to missing colon
|
||||
* Forgot to update the meta file
|
||||
* Added Changelog file
|
||||
- Influxdata key rotation causing failure [\#164](https://github.com/dj-wasabi/ansible-telegraf/issues/164)
|
||||
- Influxdb2 output [\#158](https://github.com/dj-wasabi/ansible-telegraf/issues/158)
|
||||
|
||||
0.0.1 (2015-09-20)
|
||||
## [0.13.3](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.3) (2022-03-21)
|
||||
|
||||
* Initial release
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.2...0.13.3)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Adding support for aggregators [\#156](https://github.com/dj-wasabi/ansible-telegraf/pull/156) ([simo-tuomisto](https://github.com/simo-tuomisto))
|
||||
- Add support for Rocky Linux [\#147](https://github.com/dj-wasabi/ansible-telegraf/pull/147) ([maxwondercorn](https://github.com/maxwondercorn))
|
||||
- Add Windows feature of upgrade agents [\#146](https://github.com/dj-wasabi/ansible-telegraf/pull/146) ([PeterSzegedi](https://github.com/PeterSzegedi))
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Improve usage on SUSE releases [\#155](https://github.com/dj-wasabi/ansible-telegraf/pull/155) ([jeffmahoney](https://github.com/jeffmahoney))
|
||||
- Add variable for openSUSE RPM repository [\#151](https://github.com/dj-wasabi/ansible-telegraf/pull/151) ([kingphil](https://github.com/kingphil))
|
||||
- Fixed issues with Windows paths containing spaces & removed redundant "telegraf" folder in path [\#144](https://github.com/dj-wasabi/ansible-telegraf/pull/144) ([treanorjp](https://github.com/treanorjp))
|
||||
|
||||
## [0.13.2](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.2) (2021-03-05)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.1...0.13.2)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Remove telegraf repository after switching to online method [\#142](https://github.com/dj-wasabi/ansible-telegraf/pull/142) ([djerfy](https://github.com/djerfy))
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Fix spacing for telegraf\_plugins\_extra example in readme.md [\#143](https://github.com/dj-wasabi/ansible-telegraf/pull/143) ([isclever](https://github.com/isclever))
|
||||
|
||||
## [0.13.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.1) (2021-01-06)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.13.0...0.13.1)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Added GH Action to automatically update CHANGELOG.md [\#141](https://github.com/dj-wasabi/ansible-telegraf/pull/141) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- adjustments for Windows \>= 1.15 [\#139](https://github.com/dj-wasabi/ansible-telegraf/pull/139) ([billabongrob](https://github.com/billabongrob))
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Newer versions of Telegraf fail on Windows [\#138](https://github.com/dj-wasabi/ansible-telegraf/issues/138)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Added property telegraf\_agent\_docker\_image\_version for using a specific version of the Docker image [\#137](https://github.com/dj-wasabi/ansible-telegraf/pull/137) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Apply ansible-lint in pre-commit hook and fix changes [\#136](https://github.com/dj-wasabi/ansible-telegraf/pull/136) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Using version as version\_compare is deprecated [\#135](https://github.com/dj-wasabi/ansible-telegraf/pull/135) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Using command instead of shell module [\#134](https://github.com/dj-wasabi/ansible-telegraf/pull/134) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
|
||||
## [0.13.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.13.0) (2020-10-16)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.12.0...0.13.0)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Setup the system for individual plugins [\#125](https://github.com/dj-wasabi/ansible-telegraf/issues/125)
|
||||
- Logparser configuration [\#111](https://github.com/dj-wasabi/ansible-telegraf/issues/111)
|
||||
- ansible\_fqdn problematic for getting hostname [\#105](https://github.com/dj-wasabi/ansible-telegraf/issues/105)
|
||||
- FreeBSD support [\#99](https://github.com/dj-wasabi/ansible-telegraf/issues/99)
|
||||
- Proxy not taken into consideration when using 'online' [\#96](https://github.com/dj-wasabi/ansible-telegraf/issues/96)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- telegraf\_agent\_aws\_tags creates an invalid Telegraf configuration [\#128](https://github.com/dj-wasabi/ansible-telegraf/issues/128)
|
||||
- Broken on Ubuntu 20.04 [\#121](https://github.com/dj-wasabi/ansible-telegraf/issues/121)
|
||||
- Broken on RedHat [\#119](https://github.com/dj-wasabi/ansible-telegraf/issues/119)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- corrected "Example Docker configuration" to make it work by default [\#132](https://github.com/dj-wasabi/ansible-telegraf/pull/132) ([NotDead](https://github.com/NotDead))
|
||||
- Removing requirements file and use it from ci-base repo [\#131](https://github.com/dj-wasabi/ansible-telegraf/pull/131) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Going to Github Actions [\#130](https://github.com/dj-wasabi/ansible-telegraf/pull/130) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- quote aws ec2 global tags [\#129](https://github.com/dj-wasabi/ansible-telegraf/pull/129) ([Puneeth-n](https://github.com/Puneeth-n))
|
||||
- made service status configurable [\#127](https://github.com/dj-wasabi/ansible-telegraf/pull/127) ([DEvil0000](https://github.com/DEvil0000))
|
||||
- Plugin dependencies are installed and configured [\#126](https://github.com/dj-wasabi/ansible-telegraf/pull/126) ([carlba](https://github.com/carlba))
|
||||
- fix debian packagename on state latest [\#124](https://github.com/dj-wasabi/ansible-telegraf/pull/124) ([dwerder](https://github.com/dwerder))
|
||||
- MacOS support [\#123](https://github.com/dj-wasabi/ansible-telegraf/pull/123) ([carlba](https://github.com/carlba))
|
||||
- gpgkey yum repo fix [\#122](https://github.com/dj-wasabi/ansible-telegraf/pull/122) ([marcinwito](https://github.com/marcinwito))
|
||||
- Fix RedHat task list [\#120](https://github.com/dj-wasabi/ansible-telegraf/pull/120) ([rohit-gohri](https://github.com/rohit-gohri))
|
||||
- added installation method manual - skip installation [\#117](https://github.com/dj-wasabi/ansible-telegraf/pull/117) ([DEvil0000](https://github.com/DEvil0000))
|
||||
- Support postgresql\_extensible queries [\#116](https://github.com/dj-wasabi/ansible-telegraf/pull/116) ([rlex](https://github.com/rlex))
|
||||
- Added extra filtering possibilities for a plugin [\#113](https://github.com/dj-wasabi/ansible-telegraf/pull/113) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Minor changes to get Travis working again [\#112](https://github.com/dj-wasabi/ansible-telegraf/pull/112) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Download from influxdb [\#109](https://github.com/dj-wasabi/ansible-telegraf/pull/109) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Don't override package name unless "latest" [\#108](https://github.com/dj-wasabi/ansible-telegraf/pull/108) ([matttrach](https://github.com/matttrach))
|
||||
- Adding support for arm64 systems [\#106](https://github.com/dj-wasabi/ansible-telegraf/pull/106) ([remkade](https://github.com/remkade))
|
||||
- Use items\(\) instead of iteritems\(\) [\#104](https://github.com/dj-wasabi/ansible-telegraf/pull/104) ([diego1q2w](https://github.com/diego1q2w))
|
||||
- Fix: ensure apt-cache is updated before install [\#103](https://github.com/dj-wasabi/ansible-telegraf/pull/103) ([asfaltboy](https://github.com/asfaltboy))
|
||||
- on FreeBSD the telegeraf.conf is in root of /usr/local/etc. [\#102](https://github.com/dj-wasabi/ansible-telegraf/pull/102) ([langerma](https://github.com/langerma))
|
||||
- Some changes for fixing FreeBSD [\#101](https://github.com/dj-wasabi/ansible-telegraf/pull/101) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- basic FreeBSD support [\#100](https://github.com/dj-wasabi/ansible-telegraf/pull/100) ([langerma](https://github.com/langerma))
|
||||
- Added the use\_proxy argument to use a proxy \(or not\) [\#98](https://github.com/dj-wasabi/ansible-telegraf/pull/98) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Various small changes for molecule [\#97](https://github.com/dj-wasabi/ansible-telegraf/pull/97) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
|
||||
## [0.12.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.12.0) (2019-03-12)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.11.0...0.12.0)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Install telegraf from package file instead of repository [\#89](https://github.com/dj-wasabi/ansible-telegraf/issues/89)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Docker container support [\#82](https://github.com/dj-wasabi/ansible-telegraf/issues/82)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Add processors section in Telegraf config [\#94](https://github.com/dj-wasabi/ansible-telegraf/pull/94) ([ph4r5h4d](https://github.com/ph4r5h4d))
|
||||
- Updated to Telegraf 1.10.0;Different installation methods [\#93](https://github.com/dj-wasabi/ansible-telegraf/pull/93) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Updating Telegraf default to 1.9.5 [\#92](https://github.com/dj-wasabi/ansible-telegraf/pull/92) ([sdurrheimer](https://github.com/sdurrheimer))
|
||||
- Updating Telegraf default to 1.9.4 [\#90](https://github.com/dj-wasabi/ansible-telegraf/pull/90) ([sdurrheimer](https://github.com/sdurrheimer))
|
||||
- Docker enhancements [\#88](https://github.com/dj-wasabi/ansible-telegraf/pull/88) ([jgeusebroek](https://github.com/jgeusebroek))
|
||||
- Updating Telegraf default to 1.9.3 [\#87](https://github.com/dj-wasabi/ansible-telegraf/pull/87) ([sdurrheimer](https://github.com/sdurrheimer))
|
||||
- Added register for installation of packages [\#86](https://github.com/dj-wasabi/ansible-telegraf/pull/86) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Add Docker container support [\#85](https://github.com/dj-wasabi/ansible-telegraf/pull/85) ([jgeusebroek](https://github.com/jgeusebroek))
|
||||
- Remove legacy options [\#84](https://github.com/dj-wasabi/ansible-telegraf/pull/84) ([jgeusebroek](https://github.com/jgeusebroek))
|
||||
- Fix tagpass and tagdrop [\#83](https://github.com/dj-wasabi/ansible-telegraf/pull/83) ([jgeusebroek](https://github.com/jgeusebroek))
|
||||
- \[bug\] debian - add cache\_valid\_time [\#81](https://github.com/dj-wasabi/ansible-telegraf/pull/81) ([pad92](https://github.com/pad92))
|
||||
- Updating Telegraf default to 1.9.2 [\#80](https://github.com/dj-wasabi/ansible-telegraf/pull/80) ([sdurrheimer](https://github.com/sdurrheimer))
|
||||
- Add Yum repo support for Amazon Linux [\#79](https://github.com/dj-wasabi/ansible-telegraf/pull/79) ([anthonysr](https://github.com/anthonysr))
|
||||
- Fix to work with Fedora Linux [\#78](https://github.com/dj-wasabi/ansible-telegraf/pull/78) ([ikke-t](https://github.com/ikke-t))
|
||||
- Updating to newer version of Telegraf [\#77](https://github.com/dj-wasabi/ansible-telegraf/pull/77) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Add support for extra win\_perf\_counters and prevent python u'' strings [\#76](https://github.com/dj-wasabi/ansible-telegraf/pull/76) ([jdivy](https://github.com/jdivy))
|
||||
|
||||
## [0.11.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.11.0) (2018-12-11)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.10.0...0.11.0)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- No telegraf\_plugin\_extra info is added to plugins [\#71](https://github.com/dj-wasabi/ansible-telegraf/issues/71)
|
||||
- Daemon crash because of empty config.conf and plugin.conf files. [\#63](https://github.com/dj-wasabi/ansible-telegraf/issues/63)
|
||||
- Pin telegraf to {present, latest, specific-version} [\#59](https://github.com/dj-wasabi/ansible-telegraf/issues/59)
|
||||
- Ability to add multiple times the same extra-plugin [\#57](https://github.com/dj-wasabi/ansible-telegraf/issues/57)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Renamed the tojson to to\_json [\#74](https://github.com/dj-wasabi/ansible-telegraf/pull/74) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- A few enhancements and fixes to windows support [\#73](https://github.com/dj-wasabi/ansible-telegraf/pull/73) ([jdivy](https://github.com/jdivy))
|
||||
- Replace 'ec2\_facts' with 'ec2\_metadata\_facts' to fix a deprecation warning [\#72](https://github.com/dj-wasabi/ansible-telegraf/pull/72) ([Rylon](https://github.com/Rylon))
|
||||
- Added default pluging if nothing is configured [\#70](https://github.com/dj-wasabi/ansible-telegraf/pull/70) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Added support for \(Open\)Suse [\#69](https://github.com/dj-wasabi/ansible-telegraf/pull/69) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Added Windows as OS [\#68](https://github.com/dj-wasabi/ansible-telegraf/pull/68) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Want to use latest [\#67](https://github.com/dj-wasabi/ansible-telegraf/pull/67) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Some small improvements [\#66](https://github.com/dj-wasabi/ansible-telegraf/pull/66) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- telegraf-extra-plugin.conf.j2: fix template typo [\#65](https://github.com/dj-wasabi/ansible-telegraf/pull/65) ([gaelL](https://github.com/gaelL))
|
||||
- Using base ci requirements.txt [\#64](https://github.com/dj-wasabi/ansible-telegraf/pull/64) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Wen copying/removing plugins show only plugin name [\#62](https://github.com/dj-wasabi/ansible-telegraf/pull/62) ([mprasil](https://github.com/mprasil))
|
||||
- Pin apt key ID [\#61](https://github.com/dj-wasabi/ansible-telegraf/pull/61) ([tszym](https://github.com/tszym))
|
||||
- Added support for plugins being managed exclusively by this playbook [\#60](https://github.com/dj-wasabi/ansible-telegraf/pull/60) ([gaizeror](https://github.com/gaizeror))
|
||||
|
||||
## [0.10.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.10.0) (2018-08-12)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.9.0...0.10.0)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Package changed namespace and broke our Tower instance [\#56](https://github.com/dj-wasabi/ansible-telegraf/issues/56)
|
||||
- PR \#46 break telegraf "Multiple inputs of the same type" [\#48](https://github.com/dj-wasabi/ansible-telegraf/issues/48)
|
||||
- telegraf\_plugins\_extra is override when multiple call [\#30](https://github.com/dj-wasabi/ansible-telegraf/issues/30)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Updating to Telegraf 1.7.3;Updating changelog [\#58](https://github.com/dj-wasabi/ansible-telegraf/pull/58) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Added bunch of files [\#55](https://github.com/dj-wasabi/ansible-telegraf/pull/55) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Fix Deprecation warnings [\#54](https://github.com/dj-wasabi/ansible-telegraf/pull/54) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Changed 'include' to 'include\_tasks' to remove deprecation warning [\#53](https://github.com/dj-wasabi/ansible-telegraf/pull/53) ([tjend](https://github.com/tjend))
|
||||
- Add option to remove extra plugin config files [\#52](https://github.com/dj-wasabi/ansible-telegraf/pull/52) ([tjend](https://github.com/tjend))
|
||||
- Plugins extra hash allow multiple inputs same type [\#50](https://github.com/dj-wasabi/ansible-telegraf/pull/50) ([tjend](https://github.com/tjend))
|
||||
- Update to 2.4;Using specific versions of libraries [\#49](https://github.com/dj-wasabi/ansible-telegraf/pull/49) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
|
||||
## [0.9.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.9.0) (2018-05-06)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.8.0...0.9.0)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Cannot call plugin multiple times anymore [\#39](https://github.com/dj-wasabi/ansible-telegraf/issues/39)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Updating to 0.9.0 [\#47](https://github.com/dj-wasabi/ansible-telegraf/pull/47) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Convert the telegraf\_plugins\_extra varaible to a hash so that we can … [\#46](https://github.com/dj-wasabi/ansible-telegraf/pull/46) ([tjend](https://github.com/tjend))
|
||||
- Improved comments, split up role, moved tags and added defaults [\#45](https://github.com/dj-wasabi/ansible-telegraf/pull/45) ([boxrick](https://github.com/boxrick))
|
||||
- Allow to override RedHat release version [\#43](https://github.com/dj-wasabi/ansible-telegraf/pull/43) ([tszym](https://github.com/tszym))
|
||||
- Fix Travis Tests [\#42](https://github.com/dj-wasabi/ansible-telegraf/pull/42) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Fix markdown [\#41](https://github.com/dj-wasabi/ansible-telegraf/pull/41) ([angristan](https://github.com/angristan))
|
||||
- plugins: be able to specify the filename of extra plugings [\#40](https://github.com/dj-wasabi/ansible-telegraf/pull/40) ([gaelL](https://github.com/gaelL))
|
||||
- tags: give an option to use AWS tags as telegraf tags [\#32](https://github.com/dj-wasabi/ansible-telegraf/pull/32) ([gaelL](https://github.com/gaelL))
|
||||
|
||||
## [0.8.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.8.0) (2017-10-30)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.7.0...0.8.0)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- PIP dependencies conflicting with native yum packages [\#28](https://github.com/dj-wasabi/ansible-telegraf/issues/28)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Use telegra\_global\_tags for oldest telegraf versions [\#38](https://github.com/dj-wasabi/ansible-telegraf/pull/38) ([tszym](https://github.com/tszym))
|
||||
- Fix extra plugins by file / Change apt source filename / Change tags by global\_tags [\#37](https://github.com/dj-wasabi/ansible-telegraf/pull/37) ([aarnaud](https://github.com/aarnaud))
|
||||
- Remove useless packages on RedHat. fix \#28 [\#36](https://github.com/dj-wasabi/ansible-telegraf/pull/36) ([tszym](https://github.com/tszym))
|
||||
- Test if LSB codename exists before using it [\#35](https://github.com/dj-wasabi/ansible-telegraf/pull/35) ([tszym](https://github.com/tszym))
|
||||
- Updating to Molecule V2 [\#31](https://github.com/dj-wasabi/ansible-telegraf/pull/31) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
|
||||
## [0.7.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.7.0) (2017-02-23)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.6.0...0.7.0)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- multiple plugins in telegraf\_plugins\_extra are duplicated [\#22](https://github.com/dj-wasabi/ansible-telegraf/issues/22)
|
||||
- Deleting extra plugins doesn't delete them [\#8](https://github.com/dj-wasabi/ansible-telegraf/issues/8)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Updating to release 0.7.0 [\#27](https://github.com/dj-wasabi/ansible-telegraf/pull/27) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Replace action by modules [\#26](https://github.com/dj-wasabi/ansible-telegraf/pull/26) ([tszym](https://github.com/tszym))
|
||||
- Use yum repository to install telegraf on RedHat [\#25](https://github.com/dj-wasabi/ansible-telegraf/pull/25) ([tszym](https://github.com/tszym))
|
||||
- Remove for-loop in extra-plugin template [\#24](https://github.com/dj-wasabi/ansible-telegraf/pull/24) ([emersondispatch](https://github.com/emersondispatch))
|
||||
- Update Debian.yml [\#23](https://github.com/dj-wasabi/ansible-telegraf/pull/23) ([zend0](https://github.com/zend0))
|
||||
- extra plugins tags [\#21](https://github.com/dj-wasabi/ansible-telegraf/pull/21) ([oboukili](https://github.com/oboukili))
|
||||
- Input tags support [\#20](https://github.com/dj-wasabi/ansible-telegraf/pull/20) ([szibis](https://github.com/szibis))
|
||||
- Fix telegraf confguration permissions [\#19](https://github.com/dj-wasabi/ansible-telegraf/pull/19) ([szibis](https://github.com/szibis))
|
||||
|
||||
## [0.6.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.6.0) (2017-01-02)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.5.1...0.6.0)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- update the README with the latest v0.13 - v1.1 agent settings [\#17](https://github.com/dj-wasabi/ansible-telegraf/pull/17) ([lhoss](https://github.com/lhoss))
|
||||
- support missing agent settings upto telegraf v1.1 [\#16](https://github.com/dj-wasabi/ansible-telegraf/pull/16) ([lhoss](https://github.com/lhoss))
|
||||
- Fixing molecule [\#15](https://github.com/dj-wasabi/ansible-telegraf/pull/15) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- use version\_compare filter … [\#14](https://github.com/dj-wasabi/ansible-telegraf/pull/14) ([lhoss](https://github.com/lhoss))
|
||||
- set telegraf hostname in defaults. [\#13](https://github.com/dj-wasabi/ansible-telegraf/pull/13) ([airbe](https://github.com/airbe))
|
||||
- Removed imports [\#12](https://github.com/dj-wasabi/ansible-telegraf/pull/12) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
- Fix the Influxdb repo for "hybrid" debian distros \(like "jessie/sid"\) [\#11](https://github.com/dj-wasabi/ansible-telegraf/pull/11) ([Ismael](https://github.com/Ismael))
|
||||
- Do "become" for the steps that require root access on Debian [\#10](https://github.com/dj-wasabi/ansible-telegraf/pull/10) ([Ismael](https://github.com/Ismael))
|
||||
- Added new code for correct molecule verification [\#7](https://github.com/dj-wasabi/ansible-telegraf/pull/7) ([dj-wasabi](https://github.com/dj-wasabi))
|
||||
|
||||
## [0.5.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.5.1) (2016-08-24)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.5.0...0.5.1)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- fixed issue with ansible not getting the package [\#6](https://github.com/dj-wasabi/ansible-telegraf/pull/6) ([thecodeassassin](https://github.com/thecodeassassin))
|
||||
|
||||
## [0.5.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.5.0) (2016-07-17)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.4.0...0.5.0)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- A new Release for the .deb package url change [\#3](https://github.com/dj-wasabi/ansible-telegraf/issues/3)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Feature/add extra plugins to telegrafd folder [\#5](https://github.com/dj-wasabi/ansible-telegraf/pull/5) ([stvnwrgs](https://github.com/stvnwrgs))
|
||||
|
||||
## [0.4.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.4.0) (2016-02-05)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.3.0...0.4.0)
|
||||
|
||||
## [0.3.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.3.0) (2016-01-13)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.2.0...0.3.0)
|
||||
|
||||
## [0.2.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.2.0) (2015-11-14)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.1.0...0.2.0)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Update etc-opt-telegraf-telegraf.conf.j2 [\#2](https://github.com/dj-wasabi/ansible-telegraf/pull/2) ([aferrari-technisys](https://github.com/aferrari-technisys))
|
||||
- Improvement and upgrade for v0.2.0 of telegraf [\#1](https://github.com/dj-wasabi/ansible-telegraf/pull/1) ([aferrari-technisys](https://github.com/aferrari-technisys))
|
||||
|
||||
## [0.1.0](https://github.com/dj-wasabi/ansible-telegraf/tree/0.1.0) (2015-09-23)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.0.2...0.1.0)
|
||||
|
||||
## [0.0.2](https://github.com/dj-wasabi/ansible-telegraf/tree/0.0.2) (2015-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/0.0.1...0.0.2)
|
||||
|
||||
## [0.0.1](https://github.com/dj-wasabi/ansible-telegraf/tree/0.0.1) (2015-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/dj-wasabi/ansible-telegraf/compare/03adb259af33123c917cdc960d23aeee07e01fef...0.0.1)
|
||||
|
||||
|
||||
|
||||
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
||||
|
@ -22,9 +22,9 @@ Please note that this project is released with a Contributor Code of Conduct. By
|
||||
2. Create a branch and apply your changes to this branch.
|
||||
|
||||
a. Make sure you have updated the documentation when adding new variables;
|
||||
|
||||
|
||||
b. Don't forget to add/update tests so we can test the functionality during each Pull Request;
|
||||
|
||||
|
||||
c. Make sure the tests will succeed.
|
||||
|
||||
3. Push the branch to your fork and submit a pull request.
|
||||
@ -44,13 +44,14 @@ Style guides are important because they ensure consistency in the content, look,
|
||||
|
||||
## (local) Development
|
||||
|
||||
This role make use of Molecule to test the execution of the role and verificate it. In the root of the repository, a file named `requirements.txt` exists and contains the versions used by the tests.
|
||||
This role make use of Molecule to test the execution of the role and verificate it. In the repository https://github.com/dj-wasabi/dj-wasabi-release, a file named `requirements.txt` exists and contains the versions used by the tests.
|
||||
|
||||
### Requirements
|
||||
|
||||
You can install them with the following command:
|
||||
|
||||
```
|
||||
wget https://raw.githubusercontent.com/dj-wasabi/dj-wasabi-release/main/requirements.txt
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
@ -67,6 +68,10 @@ It should run without any issues.
|
||||
|
||||
# Other
|
||||
|
||||
## pre-commit
|
||||
|
||||
This repository contains a pre-commit hook. This means that when you want to commit the changes, 1 or more tests are executed to validate the changes. Please take a look at how to install the `pre-commit` package from the official [site](https://pre-commit.com/). Also make sure to install `ansible-lint` via `pip install ansible-lint` as this is 1 of the tools that is executed while a pre-commit hooks runs.
|
||||
|
||||
## Virtualenv
|
||||
|
||||
Suggestion is to create a virtualenv so you won't have issues with other projects.
|
||||
@ -85,4 +90,4 @@ Some web pages describing for virtual env:
|
||||
|
||||
[Molecule V2 with your own role](https://werner-dijkerman.nl/2017/09/05/using-molecule-v2-to-test-ansible-roles/)
|
||||
|
||||
**End note**: Have fun making changes. If a feature helps you, then others find it helpful too and I will happily have it merged.
|
||||
**End note**: Have fun making changes. If a feature helps you, then others find it helpful too and I will happily have it merged.
|
||||
|
59
CONTRIBUTORS
Normal file
59
CONTRIBUTORS
Normal file
@ -0,0 +1,59 @@
|
||||
A. Binzxxxxxx
|
||||
Alejandro
|
||||
Angristan
|
||||
Anthony ARNAUD
|
||||
Carl Bäckström
|
||||
DEvil0000
|
||||
DJΞRFY
|
||||
Dan Clough
|
||||
Daniel Werdermann
|
||||
Diego Nava
|
||||
Emerson Knapp
|
||||
Farshad Nematdoust
|
||||
Greg
|
||||
Harald Kraemer
|
||||
Heckel, Robert J
|
||||
Ilkka Tengvall
|
||||
Ismael
|
||||
Jack Ivy
|
||||
Jeff Mahoney
|
||||
Jeroen Geusebroek
|
||||
Klett IT
|
||||
Kyle
|
||||
Laurent Hoss
|
||||
Lex Rivera
|
||||
Marcin Wito
|
||||
Markus Langer
|
||||
Matt
|
||||
Max Nasonov
|
||||
Miro Prasil
|
||||
Miroslav Prasil
|
||||
NotDead
|
||||
Olivier Boukili
|
||||
Pascal
|
||||
Pavel Savchenko
|
||||
PeterSzegedi
|
||||
Pieter Lexis (TomTom)
|
||||
Puneeth Nanjundaswamy
|
||||
Rick Box
|
||||
Rohit Gohri
|
||||
Romain BUREAU
|
||||
Ryan Conway
|
||||
Simo Tuomisto
|
||||
Slawomir Skowron
|
||||
Steve Durrheimer
|
||||
Steven Wirges
|
||||
TheCodeAssassin
|
||||
Thomas Szymanski
|
||||
ThorstenHeck
|
||||
Troy Jendra
|
||||
Werner Dijkerman
|
||||
Werner Dijkerman [GH bot]
|
||||
aroglian
|
||||
dependabot[bot]
|
||||
gaelL
|
||||
kingphil
|
||||
maxwondercorn
|
||||
or
|
||||
treanorjp
|
||||
zend0
|
269
README.md
269
README.md
@ -1,8 +1,38 @@
|
||||
# dj-wasabi.telegraf
|
||||
|
||||
- [dj-wasabi.telegraf](#dj-wasabitelegraf)
|
||||
* [Build status:](#build-status-)
|
||||
* [Requirements](#requirements)
|
||||
+ [Supported systems](#supported-systems)
|
||||
+ [InfluxDB](#influxdb)
|
||||
+ [Docker](#docker)
|
||||
* [Upgrade](#upgrade)
|
||||
+ [0.7.0](#070)
|
||||
* [Role Variables](#role-variables)
|
||||
+ [Ansible role specific variables](#ansible-role-specific-variables)
|
||||
- [Telegraf Package](#telegraf-package)
|
||||
+ [Telegraf agent process configuration.](#telegraf-agent-process-configuration)
|
||||
+ [Docker specific role variables:](#docker-specific-role-variables-)
|
||||
* [Extra information](#extra-information)
|
||||
+ [ansible_fqdn problematic for getting hostname](#ansible-fqdn-problematic-for-getting-hostname)
|
||||
+ [Setting tags](#setting-tags)
|
||||
+ [Docker specifics](#docker-specifics)
|
||||
- [Docker image](#docker-image)
|
||||
- [Docker mounts](#docker-mounts)
|
||||
- [Example Docker configuration](#example-docker-configuration)
|
||||
* [Windows specific Variables](#windows-specific-variables)
|
||||
* [Extra information](#extra-information-1)
|
||||
+ [telegraf_plugins_default](#telegraf-plugins-default)
|
||||
+ [telegraf_plugins_extra](#telegraf-plugins-extra)
|
||||
* [Dependencies](#dependencies)
|
||||
* [Example Playbook](#example-playbook)
|
||||
* [Molecule](#molecule)
|
||||
* [License](#license)
|
||||
* [Author Information](#author-information)
|
||||
|
||||
## Build status:
|
||||
|
||||
[](https://travis-ci.org/dj-wasabi/ansible-telegraf)
|
||||
[](https://actions-badge.atrox.dev/dj-wasabi/ansible-telegraf/goto?ref=master) <img src="https://img.shields.io/ansible/role/d/5173"/> <img src="https://img.shields.io/ansible/quality/5173"/>
|
||||
|
||||
This role will install and configure telegraf.
|
||||
|
||||
@ -14,21 +44,34 @@ Design goals are to have a minimal memory footprint with a plugin system so that
|
||||
|
||||
## Requirements
|
||||
|
||||
### Operating systems
|
||||
This role will work on the following operating systems:
|
||||
### Supported systems
|
||||
|
||||
This role supports the following systems:
|
||||
|
||||
* Red Hat
|
||||
* Debian
|
||||
* Ubuntu
|
||||
* Windows (Best effort)
|
||||
* Docker container
|
||||
* (Open)Suse
|
||||
* Windows (Best effort)
|
||||
* FreeBSD (Best effort)
|
||||
* Archlinux (only "online" mode)
|
||||
|
||||
So, you'll need one of those operating systems.. :-)
|
||||
Please sent Pull Requests or suggestions when you want to use this role for other Operating systems.
|
||||
So, you'll need one of those systems.. :-)
|
||||
Please sent Pull Requests or suggestions when you want to use this role for other systems.
|
||||
|
||||
### InfluxDB
|
||||
|
||||
You'll need an InfluxDB instance running somewhere on your network.
|
||||
You'll need an InfluxDB instance running somewhere on your network. Or 1 of the other output types found on https://github.com/influxdata/telegraf/#output-plugins
|
||||
|
||||
### Docker
|
||||
|
||||
Docker needs to be installed on the target host. I can recommend these roles to install Docker:
|
||||
|
||||
* [jgeusebroek.docker](https://galaxy.ansible.com/jgeusebroek/docker)
|
||||
* [geerlingguy.docker](https://galaxy.ansible.com/geerlingguy/docker)
|
||||
|
||||
This is only the case when the configuration is needed for a Telegraf inside a Docker container (When `telegraf_agent_docker: True`).
|
||||
|
||||
## Upgrade
|
||||
### 0.7.0
|
||||
@ -39,13 +82,31 @@ There was an issue:
|
||||
|
||||
## Role Variables
|
||||
|
||||
### Overall variables
|
||||
### Ansible role specific variables
|
||||
|
||||
The following parameters can be set for the Telegraf agent:
|
||||
Specifying the version to be installed:
|
||||
|
||||
* `telegraf_agent_version`: The version of Telegraf to install. Default: `1.9.0`
|
||||
* `telegraf_agent_package`: The name of the Telegraf package. Default: `telegraf`
|
||||
* `telegraf_agent_version`: The version of Telegraf to install. If `telegraf_agent_package_state` is set to `latest`, then this property and value is ignored. Default: `1.10.0`
|
||||
|
||||
How `Telegraf` needs to be installed. There are 4 methods in getting `Telegraf` installed on the target host:
|
||||
|
||||
* Via the package manager, like `yum`, `apt` or `zypper` ("repo");
|
||||
* Via a download from the `https://dl.influxdata.com/` site ("online");
|
||||
* Already provided and is already available on the target host, but not yet installed/configured ("offline");
|
||||
* Already installed on the target host or done manually, but not yet configured ("manual");
|
||||
|
||||
This can be configured by setting `telegraf_agent_package_method` to one of the appropriate values ( `repo`, `online`, `offline` or `manual`).
|
||||
|
||||
#### Telegraf Package
|
||||
|
||||
These properties set in how and what package will be installed.
|
||||
|
||||
* `telegraf_agent_package`: The name of the Telegraf package to install. When `telegraf_agent_package_method` is set to `online` or `offline`, it needs to have the full path of the file. Example: `telegraf_agent_package: /tmp/telegraf.rpm`. Default: `telegraf_agent_package: telegraf`.
|
||||
* `telegraf_agent_package_method`: The installation method to be used. Can choose between: `repo`, `offline` or `online`.
|
||||
* `telegraf_agent_package_state`: If the package should be `present` or `latest`. When set to `latest`, `telegraf_agent_version` will be ignored. Default: `present`
|
||||
|
||||
### Telegraf agent process configuration.
|
||||
|
||||
* `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
|
||||
@ -58,9 +119,40 @@ The following parameters can be set for the Telegraf agent:
|
||||
* `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_hostname`: The agent hostname. Default: `ansible_fqdn`
|
||||
* `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
|
||||
### Docker specific role variables:
|
||||
|
||||
* `telegraf_agent_docker`: Install Telegraf as a docker container. Default: `False`
|
||||
* `telegraf_agent_docker_name`: Name of the docker container. Default: `telegraf`
|
||||
* `telegraf_agent_docker_network_mode`: Networking mode of the docker container. Default: `bridge`
|
||||
* `telegraf_agent_docker_restart_policy`: Docker container restart policy. Default: `unless-stopped`
|
||||
* `telegraf_agent_docker_image_version`: The version of the Docker Telegraf image to be used. Default the value contains the value given for `telegraf_agent_version`. Can be set to `latest` to get the actual `latest` tag for the provided Docker image.
|
||||
* `telegraf_uid_docker`: Override user id. Default: `995`
|
||||
* `telegraf_gid_docker`: Override group id. Default: `998`
|
||||
|
||||
Full agent settings reference: [https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#agent-configuration](https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#agent-configuration).
|
||||
|
||||
## Extra information
|
||||
|
||||
### ansible_fqdn problematic for getting hostname
|
||||
|
||||
Extra info regarding: ansible_fqdn problematic for getting hostname #105
|
||||
|
||||
*Describe the bug*
|
||||
|
||||
In some nodes I'm getting weird hostnames, mostly localhost.localdomain. Those nodes show proper configuration in hostnamectl. I've seen you're using 'ansible_fqdn' as default.
|
||||
|
||||
Seems like ansible_fqdn and ansible_hostname can give different results, and sometimes even very weird results, as it sometimes makes DNS calls (which is not under my control in that cases) to infer that names.
|
||||
|
||||
*Fix proposal*
|
||||
|
||||
In my playbook I've added this parameter:
|
||||
|
||||
telegraf_agent_hostname: "{{ ansible_nodename }}"
|
||||
|
||||
### Setting tags
|
||||
|
||||
You can set tags for the host running telegraf:
|
||||
|
||||
@ -75,8 +167,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"]
|
||||
tagpass:
|
||||
- cpu = ["cpu0"]
|
||||
|
||||
The config will be printed line by line into the configuration, so you could also use:
|
||||
|
||||
@ -85,16 +177,75 @@ The config will be printed line by line into the configuration, so you could als
|
||||
|
||||
and it will be printed in the configuration file.
|
||||
|
||||
### Docker specifics
|
||||
|
||||
#### Docker image
|
||||
|
||||
The official [Influxdata Telegraf image](https://hub.docker.com/_/telegraf) is used. `telegraf_agent_version` will translate to the image tag.
|
||||
|
||||
#### Docker mounts
|
||||
|
||||
Please note that the Docker container bind mounts basicly your whole system (read-only) to monitor the Docker Engine Host from within the container. To be precise:
|
||||
|
||||
- /etc/telegraf:/etc/telegraf:ro
|
||||
- /:/hostfs:ro
|
||||
- /etc:/hostfs/etc:ro
|
||||
- /proc:/hostfs/proc:ro
|
||||
- /sys:/hostfs/sys:ro
|
||||
- /var/run:/var/run:ro
|
||||
|
||||
More information: [https://github.com/influxdata/telegraf/blob/master/docs/FAQ.md](https://github.com/influxdata/telegraf/blob/master/docs/FAQ.md).
|
||||
|
||||
#### Example Docker configuration
|
||||
|
||||
telegraf_agent_docker: True
|
||||
# Force host networking mode, so Docker Engine Host traffic metrics can be gathered.
|
||||
telegraf_agent_docker_network_mode: host
|
||||
# Force a specific image tag.
|
||||
telegraf_agent_version: 1.10.0-alpine
|
||||
|
||||
telegraf_plugins_default:
|
||||
- plugin: cpu
|
||||
config:
|
||||
- percpu = true
|
||||
- plugin: disk
|
||||
tagpass:
|
||||
- fstype = [ "ext4", "xfs" ]
|
||||
tagdrop:
|
||||
- path = [ "/etc", "/etc/telegraf", "/etc/hostname", "/etc/hosts", "/etc/resolv.conf" ]
|
||||
- plugin: io
|
||||
- plugin: mem
|
||||
- plugin: system
|
||||
- plugin: swap
|
||||
- plugin: netstat
|
||||
- plugin: processes
|
||||
- plugin: docker
|
||||
config:
|
||||
- endpoint = "unix:///var/run/docker.sock"
|
||||
- timeout = "5s"
|
||||
|
||||
## Windows specific Variables
|
||||
|
||||
**NOTE**
|
||||
|
||||
_Supporting Windows is an best effort (I don't have the possibility to either test/verify changes on the various amount of available Windows instances). PR's specific to Windows will almost immediately be merged, unless some one is able to provide a Windows test mechanism via Travis for Pull Requests._
|
||||
_Supporting Windows is an best effort (I don't have the possibility to either test/verify changes on the various amount of available Windows instances). PR's specific to Windows will almost immediately be merged, unless some one is able to provide a Windows test mechanism via Travis or other service for Pull Requests._
|
||||
|
||||
* `telegraf_win_install_dir`: The directory where Telegraf will be installed.
|
||||
* `telegraf_win_logfile`: The location to the logfile of Telegraf.
|
||||
* `telegraf_win_include`: The directory that will contain all plugin configuration.
|
||||
|
||||
## openSUSE specific Variables
|
||||
|
||||
* `telegraf_zypper_baseurl`: The URL to the openSUSE repository that hosts Telegraf (for example, for openSUSE Leap: "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Leap_{{ ansible_distribution_version }}/"). If this is unspecified, a default repository will be used.
|
||||
|
||||
## MacOS specific Variables
|
||||
|
||||
**NOTE**
|
||||
|
||||
_MacOS support is as the Window Support an best effort and not officially supported._
|
||||
|
||||
* `telegraf_mac_user`: Telegraf will run as this user (needed as running things as other users using brew is problematic)
|
||||
|
||||
## Extra information
|
||||
|
||||
There are two properties which are similar, but are used differently. Those are:
|
||||
@ -102,6 +253,8 @@ There are two properties which are similar, but are used differently. Those are:
|
||||
* `telegraf_plugins_default`
|
||||
* `telegraf_plugins_extra`
|
||||
|
||||
### telegraf_plugins_default
|
||||
|
||||
With the property `telegraf_plugins_default` it is set to use the default set of Telegraf plugins. You could override it with more plugins, which should be enabled at default.
|
||||
|
||||
telegraf_plugins_default:
|
||||
@ -117,37 +270,86 @@ With the property `telegraf_plugins_default` it is set to use the default set of
|
||||
|
||||
Every telegraf agent has these as a default configuration.
|
||||
|
||||
### telegraf_plugins_extra
|
||||
|
||||
The 2nd parameter `telegraf_plugins_extra` can be used to add plugins specific to the servers goal. It is a hash instead of a list, so that you can merge values from multiple var files together. Following is an example for using this parameter for MySQL database servers:
|
||||
|
||||
cat group_vars/mysql_database
|
||||
telegraf_plugins_extra:
|
||||
mysql:
|
||||
config:
|
||||
- servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"]
|
||||
mysql:
|
||||
config:
|
||||
- servers = ["root:{{ mysql_root_password }}@tcp(localhost:3306)/"]
|
||||
|
||||
There is an option to delete extra-plugin files in /etc/telegraf/telegraf.d if they weren't generated by this playbook with `telegraf_plugins_extra_exclusive` variable.
|
||||
|
||||
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.
|
||||
* `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.
|
||||
* `filter.name`: Like when there is an extra filter that needs to be configured, like `grok` for a `logparser` plugin.
|
||||
* `filter.config`: The extra configuration for the - in the `filter.name` example - `grok` filter. (See example below)
|
||||
* `sub_inputs`: If the input requires other sub inputs, you can add them here (see example below).
|
||||
|
||||
An example might look like this:
|
||||
|
||||
telegraf_plugins_default:
|
||||
- plugin: disk
|
||||
interval: 12
|
||||
tags:
|
||||
- diskmetrics = "true"
|
||||
tags:
|
||||
- diskmetrics = "true"
|
||||
tagpass:
|
||||
- fstype = [ "ext4", "xfs" ]
|
||||
- path = [ "/opt", "/home" ]
|
||||
|
||||
If you want to define processors you can simply use `telegraf_processors` variable.
|
||||
An example might look like this:
|
||||
```
|
||||
telegraf_processors:
|
||||
- processor: rename
|
||||
- processor: rename.replace
|
||||
config:
|
||||
- tag = "level"
|
||||
- dest = "LogLevel"
|
||||
```
|
||||
|
||||
When you want to make use of the `grok` filter for the logparser:
|
||||
|
||||
telegraf_plugins_extra:
|
||||
logparser:
|
||||
plugin: logparser
|
||||
config:
|
||||
- files = ["/var/log/messages"]
|
||||
- from_beginning = false
|
||||
filter:
|
||||
name: grok
|
||||
config:
|
||||
- patterns = ["invoked oom-killer"]
|
||||
|
||||
When you want to include a sub inputs with their own configuration:
|
||||
```yaml
|
||||
sqs:
|
||||
plugin: cloudwatch
|
||||
config:
|
||||
- region = "eu-west-1"
|
||||
- access_key = "foo"
|
||||
- secret_key = "bar"
|
||||
- period = "1m"
|
||||
- delay = "2m"
|
||||
- interval = "1m"
|
||||
- namespace = "AWS/SQS"
|
||||
- statistic_include = ["average"]
|
||||
sub_inputs:
|
||||
metrics:
|
||||
- names = [
|
||||
"ApproximateAgeOfOldestMessage",
|
||||
"ApproximateNumberOfMessagesVisible",
|
||||
]
|
||||
metrics.dimensions:
|
||||
- name = "QueueName"
|
||||
- value = "*"
|
||||
```
|
||||
|
||||
## Dependencies
|
||||
|
||||
@ -159,29 +361,6 @@ No dependencies
|
||||
roles:
|
||||
- { role: dj-wasabi.telegraf }
|
||||
|
||||
## Contributors
|
||||
|
||||
The following have contributed to this Ansible role:
|
||||
|
||||
* Thomas Szymanski
|
||||
* Alejandro
|
||||
* Slawomir Skowron
|
||||
* Ismael
|
||||
* Laurent Hoss
|
||||
* Anthony ARNAUD
|
||||
* Rick Box
|
||||
* Emerson Knapp
|
||||
* gaelL
|
||||
* Steven Wirges
|
||||
* zend0
|
||||
* Angristan
|
||||
* Olivier Boukili
|
||||
* Romain BUREAU
|
||||
* TheCodeAssassin
|
||||
* tjend
|
||||
|
||||
Thank you all!
|
||||
|
||||
## 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/
|
||||
|
@ -1,9 +1,14 @@
|
||||
---
|
||||
telegraf_enabled: True
|
||||
# defaults file for ansible-telegraf
|
||||
|
||||
telegraf_agent_version: 1.9.0
|
||||
telegraf_agent_version: 1.32.3
|
||||
telegraf_agent_version_patch: 1
|
||||
telegraf_agent_package: telegraf
|
||||
telegraf_agent_package_file_deb: telegraf_{{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}_{{ telegraf_agent_package_arch }}.deb
|
||||
telegraf_agent_package_file_rpm: telegraf-{{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}.{{ ansible_architecture }}.rpm
|
||||
telegraf_agent_package_path: /tmp
|
||||
telegraf_agent_package_method: repo
|
||||
telegraf_agent_package_state: present
|
||||
telegraf_agent_hostname: "{{ ansible_fqdn }}"
|
||||
telegraf_agent_interval: 10
|
||||
@ -13,6 +18,17 @@ telegraf_agent_flush_interval: 10
|
||||
telegraf_agent_flush_jitter: 0
|
||||
telegraf_agent_aws_tags: False
|
||||
telegraf_agent_aws_tags_prefix: ""
|
||||
telegraf_agent_config_path: /etc/telegraf
|
||||
telegraf_win_logfile_rotation_max_archives: 3
|
||||
|
||||
# Docker specific settings
|
||||
telegraf_uid_docker: 998
|
||||
telegraf_gid_docker: 995
|
||||
telegraf_agent_docker: False
|
||||
telegraf_agent_docker_name: telegraf
|
||||
telegraf_agent_docker_network_mode: bridge
|
||||
telegraf_agent_docker_restart_policy: unless-stopped
|
||||
telegraf_agent_docker_image_version: "{{ telegraf_agent_version }}"
|
||||
|
||||
# v0.13 settings (not sure if supported in older version):
|
||||
telegraf_agent_collection_jitter: 0
|
||||
@ -39,7 +55,7 @@ telegraf_plugins_default:
|
||||
config:
|
||||
- percpu = true
|
||||
- plugin: disk
|
||||
- plugin: io
|
||||
- plugin: diskio
|
||||
- plugin: mem
|
||||
- plugin: net
|
||||
- plugin: system
|
||||
@ -55,10 +71,27 @@ telegraf_plugins_extra_exclusive: False
|
||||
# RedHat specific settings for convenience
|
||||
telegraf_redhat_releasever: "$releasever"
|
||||
|
||||
telegraf_yum_baseurl:
|
||||
amazon: "https://repos.influxdata.com/centos/6/$basearch/stable"
|
||||
centos: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
||||
default: "https://repos.influxdata.com/{{ ansible_distribution|lower }}/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
||||
redhat: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
||||
rocky: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
||||
almalinux: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
||||
telegraf_yum_gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key"
|
||||
|
||||
telegraf_zypper_repos:
|
||||
"opensuse tumbleweed": "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/"
|
||||
"default": "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/"
|
||||
"sles": "http://download.opensuse.org/repositories/devel:/languages:/go/SLE_{{ ansible_distribution_major_version }}_SP{{ ansible_distribution_release }}/"
|
||||
"opensuse leap": "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Leap_{{ ansible_distribution_version }}/"
|
||||
|
||||
telegraf_win_install_dir: 'C:\Telegraf'
|
||||
telegraf_win_logfile: 'C:\\Telegraf\\telegraf.log'
|
||||
telegraf_win_include: 'C:\Telegraf\telegraf_agent.d'
|
||||
telegraf_win_service_args:
|
||||
- -service install
|
||||
- -config {{ telegraf_win_install_dir }}\telegraf\telegraf.conf
|
||||
- --config-directory {{ telegraf_win_include }}
|
||||
- '-config "{{ telegraf_win_install_dir }}\telegraf.conf"'
|
||||
- '--config-directory "{{ telegraf_win_include }}"'
|
||||
telegraf_mac_user: user
|
||||
telegraf_mac_group: admin
|
||||
|
@ -1,212 +0,0 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
# chkconfig: 2345 99 01
|
||||
# description: Telegraf daemon
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: telegraf
|
||||
# Required-Start: $all
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Start telegraf at boot time
|
||||
### END INIT INFO
|
||||
|
||||
# this init script supports three different variations:
|
||||
# 1. New lsb that define start-stop-daemon
|
||||
# 2. Old lsb that don't have start-stop-daemon but define, log, pidofproc and killproc
|
||||
# 3. Centos installations without lsb-core installed
|
||||
#
|
||||
# In the third case we have to define our own functions which are very dumb
|
||||
# and expect the args to be positioned correctly.
|
||||
|
||||
# Command-line options that can be set in /etc/default/telegraf. These will override
|
||||
# any config file values.
|
||||
TELEGRAF_OPTS=
|
||||
|
||||
USER=telegraf
|
||||
GROUP=telegraf
|
||||
|
||||
if [ -r /lib/lsb/init-functions ]; then
|
||||
source /lib/lsb/init-functions
|
||||
fi
|
||||
|
||||
DEFAULT=/etc/default/telegraf
|
||||
|
||||
if [ -r $DEFAULT ]; then
|
||||
set -o allexport
|
||||
source $DEFAULT
|
||||
set +o allexport
|
||||
fi
|
||||
|
||||
if [ -z "$STDOUT" ]; then
|
||||
STDOUT=/dev/null
|
||||
fi
|
||||
if [ ! -f "$STDOUT" ]; then
|
||||
mkdir -p `dirname $STDOUT`
|
||||
fi
|
||||
|
||||
if [ -z "$STDERR" ]; then
|
||||
STDERR=/var/log/telegraf/telegraf.log
|
||||
fi
|
||||
if [ ! -f "$STDERR" ]; then
|
||||
mkdir -p `dirname $STDERR`
|
||||
fi
|
||||
|
||||
OPEN_FILE_LIMIT=65536
|
||||
|
||||
function pidofproc() {
|
||||
if [ $# -ne 3 ]; then
|
||||
echo "Expected three arguments, e.g. $0 -p pidfile daemon-name"
|
||||
fi
|
||||
|
||||
if [ ! -f "$2" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local pidfile=`cat $2`
|
||||
|
||||
if [ "x$pidfile" == "x" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ps --pid "$pidfile" | grep -q $(basename $3); then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
function killproc() {
|
||||
if [ $# -ne 3 ]; then
|
||||
echo "Expected three arguments, e.g. $0 -p pidfile signal"
|
||||
fi
|
||||
|
||||
pid=`cat $2`
|
||||
|
||||
kill -s $3 $pid
|
||||
}
|
||||
|
||||
function log_failure_msg() {
|
||||
echo "$@" "[ FAILED ]"
|
||||
}
|
||||
|
||||
function log_success_msg() {
|
||||
echo "$@" "[ OK ]"
|
||||
}
|
||||
|
||||
# Process name ( For display )
|
||||
name=telegraf
|
||||
|
||||
# Daemon name, where is the actual executable
|
||||
daemon=/usr/bin/telegraf
|
||||
|
||||
# pid file for the daemon
|
||||
pidfile=/var/run/telegraf/telegraf.pid
|
||||
piddir=`dirname $pidfile`
|
||||
|
||||
if [ ! -d "$piddir" ]; then
|
||||
mkdir -p $piddir
|
||||
chown $USER:$GROUP $piddir
|
||||
fi
|
||||
|
||||
# Configuration file
|
||||
config=/etc/telegraf/telegraf.conf
|
||||
confdir=/etc/telegraf/telegraf.d
|
||||
|
||||
# If the daemon is not there, then exit.
|
||||
[ -x $daemon ] || exit 5
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
# Checked the PID file exists and check the actual status of process
|
||||
if [ -e $pidfile ]; then
|
||||
pidofproc -p $pidfile $daemon > /dev/null 2>&1 && status="0" || status="$?"
|
||||
# If the status is SUCCESS then don't need to start again.
|
||||
if [ "x$status" = "x0" ]; then
|
||||
log_failure_msg "$name process is running"
|
||||
exit 0 # Exit
|
||||
fi
|
||||
fi
|
||||
|
||||
# Bump the file limits, before launching the daemon. These will carry over to
|
||||
# launched processes.
|
||||
ulimit -n $OPEN_FILE_LIMIT
|
||||
if [ $? -ne 0 ]; then
|
||||
log_failure_msg "set open file limit to $OPEN_FILE_LIMIT"
|
||||
fi
|
||||
|
||||
log_success_msg "Starting the process" "$name"
|
||||
if command -v startproc >/dev/null; then
|
||||
startproc -u "$USER" -g "$GROUP" -p "$pidfile" -q -- "$daemon" -pidfile "$pidfile" -config "$config" -config-directory "$confdir" $TELEGRAF_OPTS
|
||||
elif which start-stop-daemon > /dev/null 2>&1; then
|
||||
start-stop-daemon --chuid $USER:$GROUP --start --quiet --pidfile $pidfile --exec $daemon -- -pidfile $pidfile -config $config -config-directory $confdir $TELEGRAF_OPTS >>$STDOUT 2>>$STDERR &
|
||||
else
|
||||
su -s /bin/sh -c "nohup $daemon -pidfile $pidfile -config $config -config-directory $confdir $TELEGRAF_OPTS >>$STDOUT 2>>$STDERR &" $USER
|
||||
fi
|
||||
log_success_msg "$name process was started"
|
||||
;;
|
||||
|
||||
stop)
|
||||
# Stop the daemon.
|
||||
if [ -e $pidfile ]; then
|
||||
pidofproc -p $pidfile $daemon > /dev/null 2>&1 && status="0" || status="$?"
|
||||
if [ "$status" = 0 ]; then
|
||||
if killproc -p $pidfile SIGTERM && /bin/rm -rf $pidfile; then
|
||||
log_success_msg "$name process was stopped"
|
||||
else
|
||||
log_failure_msg "$name failed to stop service"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
log_failure_msg "$name process is not running"
|
||||
fi
|
||||
;;
|
||||
|
||||
reload)
|
||||
# Reload the daemon.
|
||||
if [ -e $pidfile ]; then
|
||||
pidofproc -p $pidfile $daemon > /dev/null 2>&1 && status="0" || status="$?"
|
||||
if [ "$status" = 0 ]; then
|
||||
if killproc -p $pidfile SIGHUP; then
|
||||
log_success_msg "$name process was reloaded"
|
||||
else
|
||||
log_failure_msg "$name failed to reload service"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
log_failure_msg "$name process is not running"
|
||||
fi
|
||||
;;
|
||||
|
||||
restart)
|
||||
# Restart the daemon.
|
||||
$0 stop && sleep 2 && $0 start
|
||||
;;
|
||||
|
||||
status)
|
||||
# Check the status of the process.
|
||||
if [ -e $pidfile ]; then
|
||||
if pidofproc -p $pidfile $daemon > /dev/null; then
|
||||
log_success_msg "$name Process is running"
|
||||
exit 0
|
||||
else
|
||||
log_failure_msg "$name Process is not running"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
log_failure_msg "$name Process is not running"
|
||||
exit 3
|
||||
fi
|
||||
;;
|
||||
|
||||
version)
|
||||
$daemon version
|
||||
;;
|
||||
|
||||
*)
|
||||
# For invalid arguments, print the usage message.
|
||||
echo "Usage: $0 {start|stop|restart|status|version}"
|
||||
exit 2
|
||||
;;
|
||||
esac
|
@ -5,11 +5,25 @@
|
||||
service:
|
||||
name: telegraf
|
||||
state: restarted
|
||||
enabled: yes
|
||||
become: yes
|
||||
enabled: true
|
||||
when: not telegraf_agent_docker
|
||||
become: true
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: "Restart Telegraf container"
|
||||
docker_container:
|
||||
name: "{{ telegraf_agent_docker_name }}"
|
||||
restart: True
|
||||
when: telegraf_agent_docker
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: "Restart Windows Telegraf"
|
||||
win_service:
|
||||
name: Telegraf
|
||||
start_mode: auto
|
||||
state: restarted
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: "Restart MacOS Telegraf"
|
||||
command: brew services restart telegraf
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
@ -2,6 +2,7 @@
|
||||
galaxy_info:
|
||||
author: Werner Dijkerman
|
||||
description: Installing and configuring Telegraf
|
||||
role_name: telegraf
|
||||
company: myCompany.Dotcom
|
||||
license: MIT
|
||||
min_ansible_version: 2.4
|
||||
@ -21,6 +22,9 @@ galaxy_info:
|
||||
- name: Windows
|
||||
versions:
|
||||
- all
|
||||
- name: MacOS
|
||||
versions:
|
||||
- all
|
||||
|
||||
galaxy_tags:
|
||||
- monitoring
|
||||
|
@ -1,14 +0,0 @@
|
||||
# Molecule managed
|
||||
|
||||
{% if item.registry is defined %}
|
||||
FROM {{ item.registry.url }}/{{ item.image }}
|
||||
{% else %}
|
||||
FROM {{ item.image }}
|
||||
{% endif %}
|
||||
|
||||
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
|
||||
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \
|
||||
elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
|
||||
elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \
|
||||
elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \
|
||||
elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi
|
@ -1,46 +0,0 @@
|
||||
*******
|
||||
Install
|
||||
*******
|
||||
|
||||
This set of playbooks have specific dependencies on Ansible due to the modules
|
||||
being used.
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
* Ansible 2.2
|
||||
* Docker Engine
|
||||
* docker-py
|
||||
|
||||
Install OS dependencies on CentOS 7
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo yum install -y epel-release
|
||||
$ sudo yum install -y gcc python-pip python-devel openssl-devel
|
||||
# If installing Molecule from source.
|
||||
$ sudo yum install libffi-devel git
|
||||
|
||||
Install OS dependencies on Ubuntu 16.x
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo apt-get update
|
||||
$ sudo apt-get install -y python-pip libssl-dev docker-engine
|
||||
# If installing Molecule from source.
|
||||
$ sudo apt-get install -y libffi-dev git
|
||||
|
||||
Install OS dependencies on Mac OS
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ brew install python
|
||||
$ brew install git
|
||||
|
||||
Install using pip:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo pip install ansible
|
||||
$ sudo pip install docker-py
|
||||
$ sudo pip install molecule --pre
|
@ -1,84 +0,0 @@
|
||||
---
|
||||
- name: Create
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: false
|
||||
no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
|
||||
tasks:
|
||||
- name: Log into a Docker registry
|
||||
docker_login:
|
||||
username: "{{ item.registry.credentials.username }}"
|
||||
password: "{{ item.registry.credentials.password }}"
|
||||
email: "{{ item.registry.credentials.email | default(omit) }}"
|
||||
registry: "{{ item.registry.url }}"
|
||||
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
||||
with_items: "{{ molecule_yml.platforms }}"
|
||||
when:
|
||||
- item.registry is defined
|
||||
- item.registry.credentials is defined
|
||||
- item.registry.credentials.username is defined
|
||||
|
||||
- name: Create Dockerfiles from image names
|
||||
template:
|
||||
src: "{{ molecule_scenario_directory }}/Dockerfile.j2"
|
||||
dest: "{{ molecule_ephemeral_directory }}/Dockerfile_{{ item.image | regex_replace('[^a-zA-Z0-9_]', '_') }}"
|
||||
with_items: "{{ molecule_yml.platforms }}"
|
||||
register: platforms
|
||||
|
||||
- name: Discover local Docker images
|
||||
docker_image_facts:
|
||||
name: "molecule_local/{{ item.item.name }}"
|
||||
docker_host: "{{ item.item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
||||
with_items: "{{ platforms.results }}"
|
||||
register: docker_images
|
||||
|
||||
- name: Build an Ansible compatible image
|
||||
docker_image:
|
||||
path: "{{ molecule_ephemeral_directory }}"
|
||||
name: "molecule_local/{{ item.item.image }}"
|
||||
docker_host: "{{ item.item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
||||
dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
|
||||
force: "{{ item.item.force | default(true) }}"
|
||||
pull: "{{ item.item.pull | default(omit) }}"
|
||||
with_items: "{{ platforms.results }}"
|
||||
when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
|
||||
|
||||
- name: Create docker network(s)
|
||||
docker_network:
|
||||
name: "{{ item }}"
|
||||
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
||||
state: present
|
||||
with_items: "{{ molecule_yml.platforms | molecule_get_docker_networks }}"
|
||||
|
||||
- name: Create molecule instance(s)
|
||||
docker_container:
|
||||
name: "{{ item.name }}"
|
||||
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
||||
hostname: "{{ item.hostname | default(item.name) }}"
|
||||
image: "molecule_local/{{ item.image }}"
|
||||
state: started
|
||||
recreate: false
|
||||
log_driver: json-file
|
||||
command: "{{ item.command | default('bash -c \"while true; do sleep 10000; done\"') }}"
|
||||
privileged: "{{ item.privileged | default(omit) }}"
|
||||
security_opts: "{{ item.security_opts | default(omit) }}"
|
||||
volumes: "{{ item.volumes | default(omit) }}"
|
||||
tmpfs: "{{ item.tmpfs | default(omit) }}"
|
||||
capabilities: "{{ item.capabilities | default(omit) }}"
|
||||
exposed_ports: "{{ item.exposed_ports | default(omit) }}"
|
||||
published_ports: "{{ item.published_ports | default(omit) }}"
|
||||
ulimits: "{{ item.ulimits | default(omit) }}"
|
||||
networks: "{{ item.networks | default(omit) }}"
|
||||
dns_servers: "{{ item.dns_servers | default(omit) }}"
|
||||
register: server
|
||||
with_items: "{{ molecule_yml.platforms }}"
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for instance(s) creation to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: docker_jobs
|
||||
until: docker_jobs.finished
|
||||
retries: 300
|
||||
with_items: "{{ server.results }}"
|
@ -1,32 +0,0 @@
|
||||
---
|
||||
- name: Destroy
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: false
|
||||
no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
|
||||
tasks:
|
||||
- name: Destroy molecule instance(s)
|
||||
docker_container:
|
||||
name: "{{ item.name }}"
|
||||
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
||||
state: absent
|
||||
force_kill: "{{ item.force_kill | default(true) }}"
|
||||
register: server
|
||||
with_items: "{{ molecule_yml.platforms }}"
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for instance(s) deletion to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: docker_jobs
|
||||
until: docker_jobs.finished
|
||||
retries: 300
|
||||
with_items: "{{ server.results }}"
|
||||
|
||||
- name: Delete docker network(s)
|
||||
docker_network:
|
||||
name: "{{ item }}"
|
||||
docker_host: "{{ item.docker_host | default(lookup('env', 'DOCKER_HOST') or 'unix://var/run/docker.sock') }}"
|
||||
state: absent
|
||||
with_items: "{{ molecule_yml.platforms | molecule_get_docker_networks }}"
|
@ -3,11 +3,8 @@ dependency:
|
||||
name: galaxy
|
||||
driver:
|
||||
name: docker
|
||||
lint:
|
||||
name: yamllint
|
||||
options:
|
||||
config-file: molecule/default/yaml-lint.yml
|
||||
|
||||
role_name_check: 1
|
||||
platforms:
|
||||
- name: influxdb
|
||||
image: influxdb:1.7-alpine
|
||||
@ -18,39 +15,18 @@ platforms:
|
||||
- name: telegraf
|
||||
environment:
|
||||
INFLUXDB_DB: telegraf
|
||||
- name: telegraf-centos
|
||||
image: milcom/centos7-systemd
|
||||
- name: telegraf-${MY_MOLECULE_CONTAINER:-centos8}
|
||||
image: ${MY_MOLECULE_IMAGE:-"geerlingguy/docker-centos8-ansible"}
|
||||
command: ${MY_MOLECULE_DOCKER_COMMAND:-""}
|
||||
privileged: True
|
||||
groups:
|
||||
- telegraf
|
||||
pre_build_image: True
|
||||
cgroupns_mode: host
|
||||
networks:
|
||||
- name: telegraf
|
||||
- name: telegraf-debian
|
||||
image: minimum2scp/systemd-stretch
|
||||
privileged: True
|
||||
command: /sbin/init
|
||||
groups:
|
||||
- telegraf
|
||||
networks:
|
||||
- name: telegraf
|
||||
- name: telegraf-ubuntu
|
||||
image: solita/ubuntu-systemd:bionic
|
||||
privileged: True
|
||||
command: /sbin/init
|
||||
groups:
|
||||
- telegraf
|
||||
networks:
|
||||
- name: telegraf
|
||||
- name: telegraf-opensuse
|
||||
image: wdijkerman/molecule-systemd-leap
|
||||
privileged: True
|
||||
command: /sbin/init
|
||||
volumes:
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
||||
groups:
|
||||
- telegraf
|
||||
networks:
|
||||
- name: telegraf
|
||||
|
||||
provisioner:
|
||||
name: ansible
|
||||
@ -58,7 +34,10 @@ provisioner:
|
||||
name: ansible-lint
|
||||
inventory:
|
||||
group_vars:
|
||||
debian:
|
||||
telegraf_agent_package_method: online
|
||||
all:
|
||||
telegraf_agent_package_state: latest
|
||||
telegraf_agent_output:
|
||||
- type: influxdb
|
||||
config:
|
||||
@ -66,17 +45,24 @@ provisioner:
|
||||
- database = "telegraf"
|
||||
- precision = "s"
|
||||
telegraf_plugins_extra:
|
||||
percpu-usage:
|
||||
plugin: cpu
|
||||
logparser:
|
||||
plugin: logparser
|
||||
config:
|
||||
- percpu = true
|
||||
- totalcpu = false
|
||||
- name_override = "percpu_usage"
|
||||
- fielddrop = ["cpu_time*"]
|
||||
- files = ["/var/log/messages"]
|
||||
- from_beginning = false
|
||||
filter:
|
||||
name: grok
|
||||
config:
|
||||
- patterns = ["invoked oom-killer"]
|
||||
telegraf_aggregators:
|
||||
- aggregator: basicstats
|
||||
config:
|
||||
- drop_original = false
|
||||
- stats = ['mean']
|
||||
tagpass:
|
||||
- cpu = ["cpu-total"]
|
||||
|
||||
scenario:
|
||||
name: default
|
||||
verifier:
|
||||
name: testinfra
|
||||
lint:
|
||||
name: flake8
|
||||
|
@ -9,20 +9,37 @@
|
||||
when:
|
||||
- ansible_os_family == 'RedHat'
|
||||
|
||||
- name: "Apt get update"
|
||||
shell: apt-get update
|
||||
when:
|
||||
- ansible_os_family == 'Debian'
|
||||
|
||||
- name: "Installing packages on Debian"
|
||||
apt:
|
||||
name:
|
||||
- wget
|
||||
- gpg
|
||||
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['8', '18', '16'] else 'gpg-agent' }}"
|
||||
update_cache: True
|
||||
state: present
|
||||
when:
|
||||
- ansible_os_family == 'Debian'
|
||||
- ansible_distribution_major_version not in [9, 10]
|
||||
|
||||
- name: "Installing packages on Debian"
|
||||
apt:
|
||||
name:
|
||||
- wget
|
||||
- python-apt
|
||||
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['8', '18', '16'] else 'gpg-agent' }}"
|
||||
update_cache: True
|
||||
state: present
|
||||
when:
|
||||
- ansible_os_family == 'Debian'
|
||||
- ansible_distribution_major_version in [9, 10]
|
||||
|
||||
- name: "Installing packages on Suse"
|
||||
zypper:
|
||||
name:
|
||||
- sysvinit-tools
|
||||
- insserv-compat
|
||||
- aaa_base
|
||||
state: present
|
||||
when:
|
||||
|
@ -6,15 +6,15 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('telegraf')
|
||||
|
||||
|
||||
def test_telegraf_running_and_enabled(Service, SystemInfo):
|
||||
telegraf = Service("telegraf")
|
||||
if SystemInfo.distribution not in ['opensuse-leap']:
|
||||
def test_telegraf_running_and_enabled(host):
|
||||
telegraf = host.service("telegraf")
|
||||
if host.system_info.distribution not in ['opensuse-leap']:
|
||||
assert telegraf.is_enabled
|
||||
assert telegraf.is_running
|
||||
|
||||
|
||||
def test_telegraf_dot_conf(File):
|
||||
telegraf = File("/etc/telegraf/telegraf.conf")
|
||||
def test_telegraf_dot_conf(host):
|
||||
telegraf = host.file("/etc/telegraf/telegraf.conf")
|
||||
assert telegraf.user == "telegraf"
|
||||
assert telegraf.group == "telegraf"
|
||||
assert telegraf.mode == 0o640
|
||||
@ -24,25 +24,26 @@ def test_telegraf_dot_conf(File):
|
||||
assert telegraf.contains('[[outputs.influxdb]]')
|
||||
assert telegraf.contains('["http://influxdb:8086"]')
|
||||
assert telegraf.contains('[[inputs.net]]')
|
||||
assert telegraf.contains('[[aggregators.basicstats]]')
|
||||
|
||||
|
||||
def test_telegraf_dot_d_dir(File):
|
||||
telegraf = File("/etc/telegraf/telegraf.d")
|
||||
def test_telegraf_dot_d_dir(host):
|
||||
telegraf = host.file("/etc/telegraf/telegraf.d")
|
||||
assert telegraf.user == "root"
|
||||
assert telegraf.group == "root"
|
||||
assert telegraf.mode == 0o755
|
||||
assert telegraf.is_directory
|
||||
|
||||
|
||||
def test_telegraf_dot_d(File):
|
||||
telegraf = File("/etc/telegraf/telegraf.d/percpu-usage.conf")
|
||||
def test_telegraf_dot_d(host):
|
||||
telegraf = host.file("/etc/telegraf/telegraf.d/logparser.conf")
|
||||
assert telegraf.user == "telegraf"
|
||||
assert telegraf.group == "telegraf"
|
||||
assert telegraf.mode == 0o640
|
||||
assert telegraf.contains('[[inputs.cpu]]')
|
||||
assert telegraf.contains('totalcpu = false')
|
||||
assert telegraf.contains('[[inputs.logparser]]')
|
||||
assert telegraf.contains('from_beginning = false')
|
||||
|
||||
|
||||
def test_telegraf_package(Package):
|
||||
telegraf = Package('telegraf')
|
||||
def test_telegraf_package(host):
|
||||
telegraf = host.package('telegraf')
|
||||
assert telegraf.is_installed
|
||||
|
Binary file not shown.
@ -1,9 +0,0 @@
|
||||
---
|
||||
|
||||
extends: default
|
||||
|
||||
rules:
|
||||
line-length:
|
||||
max: 140
|
||||
level: warning
|
||||
truthy: disable
|
4
molecule/empty-checkmode/converge.yml
Normal file
4
molecule/empty-checkmode/converge.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- hosts: telegraf
|
||||
roles:
|
||||
- role: ansible-telegraf
|
70
molecule/empty-checkmode/molecule.yml
Normal file
70
molecule/empty-checkmode/molecule.yml
Normal file
@ -0,0 +1,70 @@
|
||||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
driver:
|
||||
name: docker
|
||||
|
||||
role_name_check: 1
|
||||
platforms:
|
||||
- name: telegraf-${MY_MOLECULE_CONTAINER:-centos8}
|
||||
image: ${MY_MOLECULE_IMAGE:-"geerlingguy/docker-centos8-ansible"}
|
||||
command: ${MY_MOLECULE_DOCKER_COMMAND:-""}
|
||||
privileged: True
|
||||
pre_build_image: True
|
||||
cgroupns_mode: host
|
||||
networks:
|
||||
- name: telegraf
|
||||
volumes:
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
||||
groups:
|
||||
- telegraf
|
||||
|
||||
provisioner:
|
||||
name: ansible
|
||||
lint:
|
||||
name: ansible-lint
|
||||
inventory:
|
||||
group_vars:
|
||||
debian:
|
||||
telegraf_agent_package_method: online
|
||||
all:
|
||||
telegraf_agent_package_state: latest
|
||||
telegraf_agent_output:
|
||||
- type: influxdb
|
||||
config:
|
||||
- urls = ["http://influxdb:8086"]
|
||||
- database = "telegraf"
|
||||
- precision = "s"
|
||||
telegraf_plugins_extra:
|
||||
logparser:
|
||||
plugin: logparser
|
||||
config:
|
||||
- files = ["/var/log/messages"]
|
||||
- from_beginning = false
|
||||
filter:
|
||||
name: grok
|
||||
config:
|
||||
- patterns = ["invoked oom-killer"]
|
||||
telegraf_aggregators:
|
||||
- aggregator: basicstats
|
||||
config:
|
||||
- drop_original = false
|
||||
- stats = ['mean']
|
||||
tagpass:
|
||||
- cpu = ["cpu-total"]
|
||||
|
||||
scenario:
|
||||
name: empty-checkmode
|
||||
test_sequence:
|
||||
- dependency
|
||||
- cleanup
|
||||
- destroy
|
||||
- syntax
|
||||
- create
|
||||
- prepare
|
||||
- check
|
||||
- verify
|
||||
- cleanup
|
||||
- destroy
|
||||
verifier:
|
||||
name: testinfra
|
46
molecule/empty-checkmode/prepare.yml
Normal file
46
molecule/empty-checkmode/prepare.yml
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
|
||||
- hosts: telegraf
|
||||
tasks:
|
||||
- name: "Installing packages on CentOS"
|
||||
yum:
|
||||
name: which
|
||||
state: present
|
||||
when:
|
||||
- ansible_os_family == 'RedHat'
|
||||
|
||||
- name: "Apt get update"
|
||||
shell: apt-get update
|
||||
when:
|
||||
- ansible_os_family == 'Debian'
|
||||
|
||||
- name: "Installing packages on Debian"
|
||||
apt:
|
||||
name:
|
||||
- wget
|
||||
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['8', '18', '16'] else 'gpg-agent' }}"
|
||||
update_cache: True
|
||||
state: present
|
||||
when:
|
||||
- ansible_os_family == 'Debian'
|
||||
- ansible_distribution_major_version not in [9, 10]
|
||||
|
||||
- name: "Installing packages on Debian"
|
||||
apt:
|
||||
name:
|
||||
- wget
|
||||
- python-apt
|
||||
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['8', '18', '16'] else 'gpg-agent' }}"
|
||||
update_cache: True
|
||||
state: present
|
||||
when:
|
||||
- ansible_os_family == 'Debian'
|
||||
- ansible_distribution_major_version in [9, 10]
|
||||
|
||||
- name: "Installing packages on Suse"
|
||||
zypper:
|
||||
name:
|
||||
- aaa_base
|
||||
state: present
|
||||
when:
|
||||
- ansible_os_family == 'Suse'
|
32
molecule/empty-checkmode/tests/test_default.py
Normal file
32
molecule/empty-checkmode/tests/test_default.py
Normal file
@ -0,0 +1,32 @@
|
||||
import os
|
||||
|
||||
import testinfra.utils.ansible_runner
|
||||
|
||||
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('telegraf')
|
||||
|
||||
|
||||
def test_telegraf_running_and_enabled(host):
|
||||
telegraf = host.service("telegraf")
|
||||
if host.system_info.distribution not in ['opensuse-leap']:
|
||||
assert not telegraf.is_enabled
|
||||
assert not telegraf.is_running
|
||||
|
||||
|
||||
def test_telegraf_dot_conf(host):
|
||||
telegraf = host.file("/etc/telegraf/telegraf.conf")
|
||||
assert not telegraf.exists
|
||||
|
||||
def test_telegraf_dot_d_dir(host):
|
||||
telegraf = host.file("/etc/telegraf/telegraf.d")
|
||||
assert not telegraf.exists
|
||||
|
||||
|
||||
def test_telegraf_dot_d(host):
|
||||
telegraf = host.file("/etc/telegraf/telegraf.d/logparser.conf")
|
||||
assert not telegraf.exists
|
||||
|
||||
|
||||
def test_telegraf_package(host):
|
||||
telegraf = host.package('telegraf')
|
||||
assert not telegraf.is_installed
|
11
requirements.txt
Normal file
11
requirements.txt
Normal file
@ -0,0 +1,11 @@
|
||||
ansible==9.7.0
|
||||
ansible-compat==24.10.0
|
||||
ansible-core==2.16.8
|
||||
docker==7.1.0
|
||||
molecule==6.0.3
|
||||
molecule-docker==2.1.0
|
||||
molecule-plugins==23.5.3
|
||||
netaddr==1.3.0
|
||||
pytest==8.3.3
|
||||
pytest-testinfra==10.1.1
|
||||
testinfra==6.0.0
|
86
tasks/Archlinux.yml
Normal file
86
tasks/Archlinux.yml
Normal file
@ -0,0 +1,86 @@
|
||||
---
|
||||
|
||||
- name: "Archlinux | Set name if state != latest"
|
||||
set_fact:
|
||||
telegraf_agent_binary: telegraf={{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}
|
||||
when:
|
||||
- telegraf_agent_package_state != "latest"
|
||||
|
||||
- name: "Archlinux | Set telegraf_agent_package_arch"
|
||||
set_fact:
|
||||
telegraf_agent_package_arch: "{{ ansible_architecture }}"
|
||||
|
||||
- name: "Archlinux | Set telegraf_agent_package_arch specific for x86_64"
|
||||
set_fact:
|
||||
telegraf_agent_package_arch: "amd64"
|
||||
when:
|
||||
- ansible_architecture == "x86_64"
|
||||
|
||||
- name: "Archlinux | Set telegraf_agent_package_arch specific for arm64/armv7l"
|
||||
set_fact:
|
||||
telegraf_agent_package_arch: "armhf"
|
||||
when:
|
||||
- ansible_architecture == "arm64" or ansible_architecture == "armv7l"
|
||||
|
||||
- name: "Archlinux | Create telegraf user"
|
||||
user:
|
||||
name: telegraf
|
||||
system: yes
|
||||
shell: /bin/false
|
||||
home: /etc/telegraf
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
||||
- name: "Archlinux | Create telegraf directory"
|
||||
file:
|
||||
path: /etc/telegraf
|
||||
state: directory
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
||||
- name: "Archlinux | Extract telegraf binary"
|
||||
ansible.builtin.unarchive:
|
||||
src: "https://dl.influxdata.com/telegraf/releases/telegraf-{{ telegraf_agent_version }}_linux_{{ telegraf_agent_package_arch }}.tar.gz"
|
||||
dest: /tmp/
|
||||
remote_src: yes
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
||||
- name: "Archlinux | Copy telegraf binary"
|
||||
ansible.builtin.copy:
|
||||
src: "/tmp/telegraf-{{ telegraf_agent_version }}/usr/bin/telegraf"
|
||||
remote_src: yes
|
||||
dest: /usr/bin/
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
||||
- name: "Archlinux | Copy telegraf unit file"
|
||||
ansible.builtin.copy:
|
||||
src: "/tmp/telegraf-{{ telegraf_agent_version }}/usr/lib/telegraf/scripts/telegraf.service"
|
||||
remote_src: yes
|
||||
dest: /etc/systemd/system/telegraf.service
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
||||
- name: "Archlinux | Copy telegraf unit file"
|
||||
ansible.builtin.copy:
|
||||
src: "/tmp/telegraf-{{ telegraf_agent_version }}/usr/lib/telegraf/scripts/telegraf.service"
|
||||
remote_src: yes
|
||||
dest: /etc/systemd/system/telegraf.service
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
register: telegraf_service
|
||||
|
||||
- name: Reload systemd
|
||||
ansible.builtin.systemd:
|
||||
daemon_reload: yes
|
||||
when: telegraf_service.changed
|
147
tasks/Debian.yml
147
tasks/Debian.yml
@ -1,11 +1,27 @@
|
||||
---
|
||||
|
||||
- name: "Debian | Set name if state == latest"
|
||||
- name: "Debian | Set name if state != latest"
|
||||
set_fact:
|
||||
telegraf_agent_package: telegraf={{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}
|
||||
when:
|
||||
- telegraf_agent_package_state != "latest"
|
||||
|
||||
- name: "Debian | Set telegraf_agent_package_arch"
|
||||
set_fact:
|
||||
telegraf_agent_package_arch: "{{ ansible_architecture }}"
|
||||
|
||||
- name: "Debian | Set telegraf_agent_package_arch specific for x86_64"
|
||||
set_fact:
|
||||
telegraf_agent_package_arch: "amd64"
|
||||
when:
|
||||
- ansible_architecture == "x86_64"
|
||||
|
||||
- name: "Debian | Set telegraf_agent_package_arch specific for arm64"
|
||||
set_fact:
|
||||
telegraf_agent_package_arch: "armhf"
|
||||
when:
|
||||
- ansible_architecture == "arm64"
|
||||
|
||||
- name: "Debian | Ensure the system can use the HTTPS transport for APT"
|
||||
stat:
|
||||
path: /usr/lib/apt/methods/https
|
||||
@ -15,40 +31,113 @@
|
||||
apt:
|
||||
name: "apt-transport-https"
|
||||
state: present
|
||||
register: are_telegraf_dependencies_packages_installed
|
||||
until: are_telegraf_dependencies_packages_installed is succeeded
|
||||
when:
|
||||
- not apt_https_transport.stat.exists
|
||||
become: yes
|
||||
become: true
|
||||
|
||||
- name: "Debian | Download Telegraf apt key"
|
||||
apt_key:
|
||||
url: "https://repos.influxdata.com/influxdb.key"
|
||||
id: 2582E0C5
|
||||
state: present
|
||||
become: yes
|
||||
|
||||
- name: "Debian | Add Telegraf repository (using LSB)"
|
||||
apt_repository:
|
||||
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_lsb.codename }} stable"
|
||||
filename: "telegraf"
|
||||
state: present
|
||||
become: yes
|
||||
- name: "Debian | Configure Telegraf apt repository"
|
||||
when:
|
||||
- ansible_lsb is defined
|
||||
- ansible_lsb.codename is defined
|
||||
- telegraf_agent_package_method == "repo"
|
||||
block:
|
||||
- when: (ansible_distribution == "Debian" and ansible_distribution_major_version|int < 9) or (ansible_distribution == "Ubuntu" and ansible_distribution_major_version|int < 18)
|
||||
name: "Debian | Download Telegraf apt key"
|
||||
apt_key:
|
||||
url: "https://repos.influxdata.com/influxdata-archive.key"
|
||||
id: 7df8b07e
|
||||
state: present
|
||||
register: are_telegraf_dependencies_keys_installed
|
||||
until: are_telegraf_dependencies_keys_installed is succeeded
|
||||
become: true
|
||||
- when: (ansible_distribution == "Debian" and ansible_distribution_major_version|int >= 9) or (ansible_distribution == "Ubuntu" and ansible_distribution_major_version|int >= 18)
|
||||
block:
|
||||
- name: "Debian | Ensure the shared keyrings directory exists"
|
||||
stat:
|
||||
path: /usr/share/keyrings
|
||||
register: usr_share_keyrings
|
||||
|
||||
- name: "Debian | Add Telegraf repository"
|
||||
apt_repository:
|
||||
repo: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable"
|
||||
filename: "telegraf"
|
||||
state: present
|
||||
become: yes
|
||||
- name: "Debian | Create shared keyrings directory"
|
||||
file:
|
||||
state: directory
|
||||
path: /usr/share/keyrings
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
when:
|
||||
- not usr_share_keyrings.stat.exists
|
||||
become: true
|
||||
|
||||
- name: "Debian | Install Telegraf apt key"
|
||||
get_url:
|
||||
url: https://repos.influxdata.com/influxdata-archive.key
|
||||
dest: /usr/share/keyrings/influxdata-archive.asc
|
||||
register: are_telegraf_dependencies_keys_installed
|
||||
until: are_telegraf_dependencies_keys_installed is succeeded
|
||||
become: true
|
||||
|
||||
- name: "Debian | Set Telegraf apt repository parameters"
|
||||
set_fact:
|
||||
telegraf_repository_params: "[signed-by=/usr/share/keyrings/influxdata-archive.asc]"
|
||||
|
||||
- name: "Debian | Add Telegraf repository"
|
||||
copy:
|
||||
content: "deb {{ telegraf_repository_params | default('') }} https://repos.influxdata.com/{{ ansible_distribution|lower }} stable main"
|
||||
dest: /etc/apt/sources.list.d/telegraf.list
|
||||
become: yes
|
||||
|
||||
- name: "Debian | Install Telegraf package (repo)"
|
||||
apt:
|
||||
name: "{{ telegraf_agent_package }}"
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
update_cache: true
|
||||
register: is_telegraf_package_installed
|
||||
until: is_telegraf_package_installed is succeeded
|
||||
notify: "Restart Telegraf"
|
||||
become: true
|
||||
when:
|
||||
- telegraf_agent_package_method == "repo"
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: "Debian | Install Telegraf package (repo)"
|
||||
apt:
|
||||
name: "{{ telegraf_agent_package }}"
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
update_cache: true
|
||||
register: is_telegraf_package_installed
|
||||
until: is_telegraf_package_installed is succeeded
|
||||
notify: "Restart Telegraf"
|
||||
become: true
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: "Debian | Download Telegraf package (online)"
|
||||
get_url:
|
||||
url: https://dl.influxdata.com/telegraf/releases/{{ telegraf_agent_package_file_deb }}
|
||||
dest: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package }}"
|
||||
use_proxy: "{{ true if http_proxy is defined and http_proxy else false }}"
|
||||
environment:
|
||||
http_proxy: "{{ http_proxy | default(None) | default(omit) }}"
|
||||
https_proxy: "{{ https_proxy | default(None) | default(omit) }}"
|
||||
when:
|
||||
- ansible_lsb is not defined or ansible_lsb.codename is not defined
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
||||
- name: "Debian | Install telegraf package"
|
||||
- name: "Debian | Install Telegraf package (online)"
|
||||
apt:
|
||||
name: "{{ telegraf_agent_package }}"
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
force: True
|
||||
deb: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package }}"
|
||||
state: "present"
|
||||
allow_downgrade: true
|
||||
register: is_telegraf_package_installed
|
||||
until: is_telegraf_package_installed is succeeded
|
||||
notify: "Restart Telegraf"
|
||||
become: yes
|
||||
become: true
|
||||
when:
|
||||
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: "Debian | Remove repository (online/offline install)"
|
||||
file:
|
||||
path: "/etc/apt/sources.list.d/telegraf.list"
|
||||
state: absent
|
||||
become: true
|
||||
when:
|
||||
- telegraf_agent_package_method == "online" or telegraf_agent_package_method == "offline"
|
||||
|
24
tasks/FreeBSD.yml
Normal file
24
tasks/FreeBSD.yml
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
# description: FreeBSD specific installation
|
||||
|
||||
- name: "FreeBSD | set package name"
|
||||
set_fact:
|
||||
telegraf_agent_package: telegraf
|
||||
|
||||
- name: "FreeBSD | Install Telegraf package"
|
||||
pkgng:
|
||||
name: "{{ telegraf_agent_package }}"
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
register: is_telegraf_package_installed
|
||||
until: is_telegraf_package_installed is succeeded
|
||||
notify: "Restart Telegraf"
|
||||
|
||||
- name: "FreeBSD | add telegraf_flags for extra plugins"
|
||||
command: sysrc telegraf_flags="-quiet -config-directory=/usr/local/etc/telegraf.d"
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: "FreeBSD | add telegraf to init"
|
||||
command: sysrc telegraf_enable="YES"
|
||||
tags:
|
||||
- skip_ansible_lint
|
14
tasks/MacOS.yml
Normal file
14
tasks/MacOS.yml
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
# description: MacOS specific installation
|
||||
|
||||
- name: "MacOS | set package name"
|
||||
set_fact:
|
||||
telegraf_agent_package: telegraf
|
||||
|
||||
- name: "MacOS | Install Telegraf package"
|
||||
package:
|
||||
name: "{{ telegraf_agent_package }}"
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
register: is_telegraf_package_installed
|
||||
until: is_telegraf_package_installed is succeeded
|
||||
notify: "Restart Telegraf"
|
@ -7,16 +7,56 @@
|
||||
when:
|
||||
- telegraf_agent_package_state != "latest"
|
||||
|
||||
- name: Use RHEL 7 packages for Fedora
|
||||
set_fact:
|
||||
telegraf_redhat_releasever: 7
|
||||
when:
|
||||
- ansible_distribution == "Fedora"
|
||||
|
||||
- name: "RedHat | Add yum repository"
|
||||
yum_repository:
|
||||
name: influxdb
|
||||
description: InfluxDB Repository - RHEL $releasever
|
||||
baseurl: "https://repos.influxdata.com/rhel/{{ telegraf_redhat_releasever }}/$basearch/stable"
|
||||
gpgcheck: yes
|
||||
gpgkey: https://repos.influxdata.com/influxdb.key
|
||||
baseurl: "{{ telegraf_yum_baseurl['redhat'] | default(telegraf_yum_baseurl['default']) }}"
|
||||
gpgcheck: "{{ telegraf_yum_gpgcheck | default('true') }}"
|
||||
gpgkey: "{{ telegraf_yum_gpgkey }}"
|
||||
become: true
|
||||
when:
|
||||
- telegraf_agent_package_method == "repo"
|
||||
|
||||
- name: "RedHat | Install telegraf package"
|
||||
yum:
|
||||
- name: "RedHat | Download Telegraf package (online)"
|
||||
get_url:
|
||||
url: https://dl.influxdata.com/telegraf/releases/{{ telegraf_agent_package_file_rpm }}
|
||||
dest: "{{ telegraf_agent_package_path }}"
|
||||
use_proxy: "{{ true if http_proxy is defined and http_proxy else false }}"
|
||||
environment:
|
||||
http_proxy: "{{ http_proxy | default(None) | default(omit) }}"
|
||||
https_proxy: "{{ https_proxy | default(None) | default(omit) }}"
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
||||
- name: "RedHat | Install Telegraf package (repo)"
|
||||
package:
|
||||
name: "{{ telegraf_agent_package }}"
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
register: is_telegraf_package_installed
|
||||
until: is_telegraf_package_installed is succeeded
|
||||
become: true
|
||||
notify: "Restart Telegraf"
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
when:
|
||||
- telegraf_agent_package_method == "repo"
|
||||
|
||||
|
||||
- name: "RedHat | Install Telegraf package (online)"
|
||||
dnf:
|
||||
name: "{{ telegraf_agent_package_path }}/{{ telegraf_agent_package_file_rpm }}"
|
||||
disable_gpg_check: true
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
register: is_telegraf_package_installed
|
||||
until: is_telegraf_package_installed is succeeded
|
||||
become: true
|
||||
notify: "Restart Telegraf"
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
when:
|
||||
- telegraf_agent_package_method == "online"
|
||||
|
@ -1,52 +1,77 @@
|
||||
---
|
||||
|
||||
- name: "Suse | Adding telegraf group"
|
||||
- name: "Suse | Adding Telegraf group"
|
||||
group:
|
||||
name: telegraf
|
||||
state: present
|
||||
|
||||
- name: "Suse | Adding telegraf user"
|
||||
- name: "Suse | Adding Telegraf user"
|
||||
user:
|
||||
name: telegraf
|
||||
group: telegraf
|
||||
state: present
|
||||
become: yes
|
||||
become: true
|
||||
|
||||
- name: "Suse | Install repo dependencies"
|
||||
- name: "Suse | Install repo dependencies for Python 2"
|
||||
zypper:
|
||||
name: ["python-libxml2", "python-xml"]
|
||||
name:
|
||||
- python-libxml2
|
||||
- python-xml
|
||||
update_cache: True
|
||||
state: present
|
||||
become: yes
|
||||
register: are_telegraf_dependencies_packages_installed
|
||||
until: are_telegraf_dependencies_packages_installed is succeeded
|
||||
become: true
|
||||
when: ansible_python.version.major == 2
|
||||
|
||||
- name: "Suse | Install basic repo file"
|
||||
- name: "Suse | Install repo dependencies for Python >= 3"
|
||||
zypper:
|
||||
name:
|
||||
- python3-libxml2-python
|
||||
update_cache: True
|
||||
state: present
|
||||
register: are_telegraf_dependencies_packages_installed
|
||||
until: are_telegraf_dependencies_packages_installed is succeeded
|
||||
become: true
|
||||
when: ansible_python.version.major >= 3
|
||||
|
||||
- name: "Suse | Add default Open Build Service repository"
|
||||
zypper_repository:
|
||||
repo: "http://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/"
|
||||
name: The Go Programming Language (openSUSE_Factory)
|
||||
repo: "{{ telegraf_zypper_repos[ansible_distribution|lower] | default(telegraf_zypper_repos['default']) }}"
|
||||
name: "telegraf"
|
||||
state: present
|
||||
runrefresh: True
|
||||
auto_import_keys: True
|
||||
become: yes
|
||||
become: true
|
||||
when: telegraf_zypper_baseurl is not defined
|
||||
|
||||
- name: "Suse | Add specified package repository"
|
||||
zypper_repository:
|
||||
repo: "{{ telegraf_zypper_baseurl }}"
|
||||
name: "telegraf"
|
||||
state: present
|
||||
runrefresh: True
|
||||
auto_import_keys: True
|
||||
become: true
|
||||
when: telegraf_zypper_baseurl is defined
|
||||
|
||||
- name: "Suse | Install Telegraf"
|
||||
zypper:
|
||||
name: "{{ telegraf_agent_package }}"
|
||||
state: "{{ telegraf_agent_package_state }}"
|
||||
become: yes
|
||||
register: is_telegraf_package_installed
|
||||
until: is_telegraf_package_installed is succeeded
|
||||
become: true
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: "Suse | Create directories for telegraf"
|
||||
file:
|
||||
path: "{{ item.path }}"
|
||||
owner: "{{ item.owner }}"
|
||||
mode: 0755
|
||||
state: directory
|
||||
with_items:
|
||||
- path: /etc/telegraf/telegraf.d/
|
||||
owner: root
|
||||
- path: /var/log/telegraf
|
||||
owner: telegraf
|
||||
|
||||
- name: "Suse | Install init file"
|
||||
copy:
|
||||
src: telegraf.init
|
||||
dest: /etc/init.d/telegraf
|
||||
mode: 0755
|
||||
|
@ -6,11 +6,16 @@
|
||||
when:
|
||||
- telegraf_agent_aws_tags
|
||||
|
||||
- name: "Add prefix path"
|
||||
set_fact:
|
||||
telegraf_agent_config_path: /usr/local/etc
|
||||
when:
|
||||
- ansible_os_family == "FreeBSD"
|
||||
|
||||
- name: Retrieve all ec2 tags on the instance
|
||||
ec2_tag:
|
||||
amazon.aws.ec2_tag_info:
|
||||
region: '{{ ansible_ec2_placement_region }}'
|
||||
resource: '{{ ansible_ec2_instance_id }}'
|
||||
state: list
|
||||
when:
|
||||
- telegraf_agent_aws_tags
|
||||
register: ec2_tags
|
||||
@ -22,26 +27,30 @@
|
||||
owner: telegraf
|
||||
group: telegraf
|
||||
mode: 0640
|
||||
become: yes
|
||||
become: true
|
||||
when:
|
||||
- telegraf_agent_version is version_compare('0.10.0', '<')
|
||||
notify: "Restart Telegraf"
|
||||
- telegraf_agent_version is version('0.10.0', '<')
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Copy the template for versions >= 0.10.0"
|
||||
template:
|
||||
src: telegraf.conf.j2
|
||||
dest: /etc/telegraf/telegraf.conf
|
||||
dest: "{{ telegraf_agent_config_path }}/telegraf.conf"
|
||||
owner: telegraf
|
||||
group: telegraf
|
||||
mode: 0640
|
||||
become: yes
|
||||
become: true
|
||||
when:
|
||||
- telegraf_agent_version is version_compare('0.10.0', '>=')
|
||||
notify: "Restart Telegraf"
|
||||
- telegraf_agent_version is version('0.10.0', '>=')
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Check if extra plugins directory exists in case of exclusive"
|
||||
stat:
|
||||
path: /etc/telegraf/telegraf.d
|
||||
path: "{{ telegraf_agent_config_path }}/telegraf.d"
|
||||
register: telegraf_directory
|
||||
when:
|
||||
- telegraf_plugins_extra_exclusive
|
||||
@ -49,30 +58,34 @@
|
||||
- name: "Delete telegraf extra plugin path"
|
||||
file:
|
||||
state: absent
|
||||
path: "/etc/telegraf/telegraf.d/"
|
||||
path: "{{ telegraf_agent_config_path }}/telegraf.d/"
|
||||
when:
|
||||
- telegraf_plugins_extra_exclusive
|
||||
- telegraf_directory.stat.exists
|
||||
become: yes
|
||||
notify: "Restart Telegraf"
|
||||
become: true
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Create telegraf extra plugin path"
|
||||
file:
|
||||
state: directory
|
||||
path: "/etc/telegraf/telegraf.d/"
|
||||
path: "{{ telegraf_agent_config_path }}/telegraf.d/"
|
||||
owner: telegraf
|
||||
group: telegraf
|
||||
mode: 0755
|
||||
when:
|
||||
- telegraf_plugins_extra_exclusive
|
||||
- telegraf_directory.stat.exists
|
||||
become: yes
|
||||
notify: "Restart Telegraf"
|
||||
become: true
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Copy telegraf extra plugins"
|
||||
template:
|
||||
src: "telegraf-extra-plugin.conf.j2"
|
||||
dest: "/etc/telegraf/telegraf.d/{{ item.key }}.conf"
|
||||
dest: "{{ telegraf_agent_config_path }}/telegraf.d/{{ item.key }}.conf"
|
||||
owner: telegraf
|
||||
group: telegraf
|
||||
mode: 0640
|
||||
@ -83,12 +96,14 @@
|
||||
- telegraf_plugins_extra is defined
|
||||
- telegraf_plugins_extra is iterable
|
||||
- item.value.state|default('present') != 'absent'
|
||||
become: yes
|
||||
notify: "Restart Telegraf"
|
||||
become: true
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Remove telegraf extra plugins"
|
||||
file:
|
||||
path: "/etc/telegraf/telegraf.d/{{ item.key }}.conf"
|
||||
path: "{{ telegraf_agent_config_path }}/telegraf.d/{{ item.key }}.conf"
|
||||
state: absent
|
||||
with_dict: "{{ telegraf_plugins_extra }}"
|
||||
loop_control:
|
||||
@ -97,8 +112,10 @@
|
||||
- telegraf_plugins_extra is defined
|
||||
- telegraf_plugins_extra is iterable
|
||||
- item.value.state|default('present') == 'absent'
|
||||
become: yes
|
||||
notify: "Restart Telegraf"
|
||||
become: true
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Force restart service after reread config"
|
||||
meta: flush_handlers
|
||||
@ -106,6 +123,67 @@
|
||||
- name: "Start Telegraf (If it wasn't running)"
|
||||
service:
|
||||
name: telegraf
|
||||
state: started
|
||||
enabled: yes
|
||||
become: yes
|
||||
state: "{{ telegraf_enabled | ternary('started', 'stopped') }}"
|
||||
enabled: "{{ telegraf_enabled }}"
|
||||
become: true
|
||||
when: not telegraf_agent_docker
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: Configure system for for docker plugin
|
||||
block:
|
||||
- name: Add telegraf user to docker group
|
||||
user:
|
||||
name: telegraf
|
||||
groups: docker
|
||||
append: true
|
||||
become: true
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
|
||||
when: "'docker' in telegraf_plugins_extra and not telegraf_agent_docker"
|
||||
|
||||
- name: Configure system for for smart plugin
|
||||
block:
|
||||
- name: Install smartmontools
|
||||
become: true
|
||||
package:
|
||||
name: smartmontools
|
||||
|
||||
- name: Find path of smartctl
|
||||
command: which smartctl
|
||||
register: which_smartctl
|
||||
ignore_errors: true
|
||||
changed_when: false
|
||||
become: true
|
||||
|
||||
- name: Ensure telegraf user can execute smartctl
|
||||
blockinfile:
|
||||
marker: "# {mark} ANSIBLE MANAGED BLOCK (Ensure telegraf user can execute smartctl)"
|
||||
dest: "/etc/sudoers.d/telegraf"
|
||||
block: "telegraf ALL=(root) NOPASSWD: {{ which_smartctl.stdout }}"
|
||||
mode: 0400
|
||||
create: true
|
||||
become: true
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
|
||||
when: "'smart' in telegraf_plugins_extra and not telegraf_agent_docker"
|
||||
|
||||
- name: Configure system for for sensors plugin
|
||||
block:
|
||||
- name: Debian | Install lm-sensors
|
||||
package:
|
||||
name: lm-sensors
|
||||
become: true
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
when: ansible_os_family == "Debian"
|
||||
- name: RedHat | Install lm-sensors
|
||||
package:
|
||||
name: lm_sensors
|
||||
become: true
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
when: "'sensors' in telegraf_plugins_extra and not telegraf_agent_docker"
|
||||
|
128
tasks/configure_macos.yml
Normal file
128
tasks/configure_macos.yml
Normal file
@ -0,0 +1,128 @@
|
||||
---
|
||||
# description: Configure telegraf and get all relevent ec2 information
|
||||
|
||||
- name: Retrieve ec2 facts
|
||||
ec2_metadata_facts:
|
||||
when:
|
||||
- telegraf_agent_aws_tags
|
||||
|
||||
- name: "Add prefix path"
|
||||
set_fact:
|
||||
telegraf_agent_config_path: /usr/local/etc
|
||||
when:
|
||||
- ansible_os_family in ["FreeBSD", "Darwin"]
|
||||
|
||||
- name: Retrieve all ec2 tags on the instance
|
||||
amazon.aws.ec2_tag_info:
|
||||
region: '{{ ansible_ec2_placement_region }}'
|
||||
resource: '{{ ansible_ec2_instance_id }}'
|
||||
when:
|
||||
- telegraf_agent_aws_tags
|
||||
register: ec2_tags
|
||||
|
||||
- name: "Copy the template for versions < 0.10.0"
|
||||
template:
|
||||
src: etc-opt-telegraf-telegraf.conf.j2
|
||||
dest: /etc/opt/telegraf/telegraf.conf
|
||||
owner: "{{ telegraf_mac_user }}"
|
||||
group: "{{ telegraf_mac_group }}"
|
||||
mode: 0640
|
||||
become: true
|
||||
when:
|
||||
- telegraf_agent_version is version('0.10.0', '<')
|
||||
notify:
|
||||
- Restart Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Copy the template for versions >= 0.10.0"
|
||||
template:
|
||||
src: telegraf.conf.j2
|
||||
dest: "{{ telegraf_agent_config_path }}/telegraf.conf"
|
||||
owner: "{{ telegraf_mac_user }}"
|
||||
group: "{{ telegraf_mac_group }}"
|
||||
mode: 0640
|
||||
become: true
|
||||
when:
|
||||
- telegraf_agent_version is version('0.10.0', '>=')
|
||||
notify:
|
||||
- Restart MacOS Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Check if extra plugins directory exists in case of exclusive"
|
||||
stat:
|
||||
path: "{{ telegraf_agent_config_path }}/telegraf.d"
|
||||
register: telegraf_directory
|
||||
when:
|
||||
- telegraf_plugins_extra_exclusive
|
||||
|
||||
- name: "Delete telegraf extra plugin path"
|
||||
file:
|
||||
state: absent
|
||||
path: "{{ telegraf_agent_config_path }}/telegraf.d/"
|
||||
when:
|
||||
- telegraf_plugins_extra_exclusive
|
||||
- telegraf_directory.stat.exists
|
||||
become: true
|
||||
notify:
|
||||
- Restart MacOS Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Create telegraf extra plugin path"
|
||||
file:
|
||||
state: directory
|
||||
path: "{{ telegraf_agent_config_path }}/telegraf.d/"
|
||||
owner: "{{ telegraf_mac_user }}"
|
||||
group: "{{ telegraf_mac_group }}"
|
||||
mode: 0755
|
||||
when:
|
||||
- telegraf_plugins_extra_exclusive
|
||||
- telegraf_directory.stat.exists
|
||||
become: true
|
||||
notify:
|
||||
- Restart MacOS Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Copy telegraf extra plugins"
|
||||
template:
|
||||
src: "telegraf-extra-plugin.conf.j2"
|
||||
dest: "{{ telegraf_agent_config_path }}/telegraf.d/{{ item.key }}.conf"
|
||||
owner: "{{ telegraf_mac_user }}"
|
||||
group: "{{ telegraf_mac_group }}"
|
||||
mode: 0640
|
||||
with_dict: "{{ telegraf_plugins_extra }}"
|
||||
loop_control:
|
||||
label: "{{ item.key }}"
|
||||
when:
|
||||
- telegraf_plugins_extra is defined
|
||||
- telegraf_plugins_extra is iterable
|
||||
- item.value.state|default('present') != 'absent'
|
||||
become: true
|
||||
notify:
|
||||
- Restart MacOS Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Remove telegraf extra plugins"
|
||||
file:
|
||||
path: "{{ telegraf_agent_config_path }}/telegraf.d/{{ item.key }}.conf"
|
||||
state: absent
|
||||
with_dict: "{{ telegraf_plugins_extra }}"
|
||||
loop_control:
|
||||
label: "{{ item.key }}"
|
||||
when:
|
||||
- telegraf_plugins_extra is defined
|
||||
- telegraf_plugins_extra is iterable
|
||||
- item.value.state|default('present') == 'absent'
|
||||
become: true
|
||||
notify:
|
||||
- Restart MacOS Telegraf
|
||||
- Restart Telegraf container
|
||||
|
||||
- name: "Force restart service after reread config"
|
||||
meta: flush_handlers
|
||||
|
||||
- name: "Start Telegraf (If it wasn't running)"
|
||||
command: brew services start telegraf
|
||||
register: brew_services_start_telegraf
|
||||
changed_when: '"Successfully started `telegraf`" in brew_services_start_telegraf.stdout'
|
||||
when: not telegraf_agent_docker
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
@ -20,16 +20,39 @@
|
||||
when:
|
||||
- not file_info.stat.exists
|
||||
|
||||
- name: "Windows | Unzip file"
|
||||
- name: "Windows | Unzip file (newer than 1.15)"
|
||||
win_unzip:
|
||||
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}_windows_amd64.zip'
|
||||
dest: "{{ telegraf_win_install_dir }}"
|
||||
creates: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe'
|
||||
creates: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\telegraf.exe'
|
||||
when: telegraf_agent_version is version('1.15', '>=')
|
||||
|
||||
- name: "Windows | Move extracted directory (newer than 1.15)"
|
||||
win_copy:
|
||||
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}\telegraf.exe'
|
||||
dest: '{{ telegraf_win_install_dir }}\telegraf.exe'
|
||||
remote_src: true
|
||||
when: telegraf_agent_version is version('1.15', '>=')
|
||||
|
||||
- name: "Windows | Unzip file"
|
||||
win_unzip:
|
||||
src: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}_windows_amd64.zip'
|
||||
dest: '{{ telegraf_win_install_dir }}'
|
||||
creates: '{{ telegraf_win_install_dir }}\telegraf.exe'
|
||||
delete_archive: true
|
||||
when: telegraf_agent_version is version('1.15', '<')
|
||||
|
||||
- name: "Windows | Move extracted executable"
|
||||
win_copy:
|
||||
src: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe'
|
||||
dest: '{{ telegraf_win_install_dir }}\telegraf.exe'
|
||||
remote_src: true
|
||||
when: telegraf_agent_version is version('1.15', '<')
|
||||
|
||||
- name: "Windows | Configure Telegraf"
|
||||
win_template:
|
||||
src: telegraf.conf.j2
|
||||
dest: '{{ telegraf_win_install_dir }}\telegraf\telegraf.conf'
|
||||
dest: '{{ telegraf_win_install_dir }}\telegraf.conf'
|
||||
notify: "Restart Windows Telegraf"
|
||||
|
||||
- name: "Windows | Copy telegraf extra plugins"
|
||||
@ -58,21 +81,40 @@
|
||||
- item.value.state|default('present') == 'absent'
|
||||
notify: "Restart Windows Telegraf"
|
||||
|
||||
- name: "Windows | Register Service"
|
||||
win_command: '{{ telegraf_win_install_dir }}\telegraf\telegraf.exe {{ telegraf_win_service_args | join(" ") }}'
|
||||
register: telegraf_windows_install
|
||||
args:
|
||||
creates: '{{ telegraf_win_install_dir }}\.installed'
|
||||
- name: "Windows | Check if Telegraf service is already in place"
|
||||
win_service:
|
||||
name: telegraf
|
||||
register: service_result
|
||||
failed_when: service_result is not defined
|
||||
|
||||
- name: "Windows | Create done file so it won't register itself again"
|
||||
win_file:
|
||||
path: '{{ telegraf_win_install_dir }}\.installed'
|
||||
state: touch
|
||||
- debug: msg={{ service_result }}
|
||||
|
||||
- name: "Windows | Set service startup mode to auto and ensure it is started"
|
||||
win_service:
|
||||
name: Telegraf
|
||||
start_mode: auto
|
||||
state: stopped
|
||||
when:
|
||||
- telegraf_windows_install is changed
|
||||
- service_result.exists
|
||||
|
||||
- name: "Windows | Unregister Service"
|
||||
win_command: '"{{ telegraf_win_install_dir }}\telegraf.exe" --service uninstall'
|
||||
register: telegraf_windows_uninstall
|
||||
when:
|
||||
- service_result.exists
|
||||
|
||||
- name: "Windows | Register Service"
|
||||
win_command: '"{{ telegraf_win_install_dir }}\telegraf.exe" {{ telegraf_win_service_args | join(" ") }}'
|
||||
register: telegraf_windows_install
|
||||
|
||||
- name: "Windows | Set service startup mode to auto and ensure it is started"
|
||||
win_service:
|
||||
name: Telegraf
|
||||
start_mode: auto
|
||||
state: started
|
||||
|
||||
- name: "Windows | Cleanup"
|
||||
win_file:
|
||||
path: '{{ telegraf_win_install_dir }}\telegraf-{{ telegraf_agent_version }}'
|
||||
state: absent
|
||||
when: telegraf_agent_version is version('1.15', '>=')
|
||||
|
59
tasks/docker.yml
Normal file
59
tasks/docker.yml
Normal file
@ -0,0 +1,59 @@
|
||||
---
|
||||
|
||||
- name: Adding Telegraf group
|
||||
group:
|
||||
name: telegraf
|
||||
state: present
|
||||
gid: "{{ telegraf_gid_docker }}"
|
||||
|
||||
- name: Adding Telegraf user
|
||||
user:
|
||||
name: telegraf
|
||||
group: telegraf
|
||||
state: present
|
||||
create_home: False
|
||||
home: /etc/telegraf
|
||||
uid: "{{ telegraf_uid_docker }}"
|
||||
system: True
|
||||
become: true
|
||||
|
||||
- name: Create /etc/telegraf (home) directory
|
||||
file:
|
||||
path: /etc/telegraf
|
||||
owner: telegraf
|
||||
group: telegraf
|
||||
mode: 0750
|
||||
state: directory
|
||||
become: true
|
||||
|
||||
- name: Create /etc/telegraf.d directory
|
||||
file:
|
||||
path: /etc/telegraf/telegraf.d
|
||||
owner: telegraf
|
||||
group: telegraf
|
||||
mode: 0750
|
||||
state: directory
|
||||
become: true
|
||||
|
||||
- name: Ensure Telegraf Docker container is running
|
||||
docker_container:
|
||||
name: "{{ telegraf_agent_docker_name }}"
|
||||
image: "telegraf:{{ telegraf_agent_docker_image_version }}"
|
||||
state: started
|
||||
restart_policy: "{{ telegraf_agent_docker_restart_policy }}"
|
||||
command: -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d
|
||||
network_mode: "{{ telegraf_agent_docker_network_mode }}"
|
||||
security_opts:
|
||||
- apparmor:unconfined
|
||||
volumes:
|
||||
- /etc/telegraf:/etc/telegraf:ro
|
||||
- /:/hostfs:ro
|
||||
- /etc:/hostfs/etc:ro
|
||||
- /proc:/hostfs/proc:ro
|
||||
- /sys:/hostfs/sys:ro
|
||||
- /var/run:/var/run:ro
|
||||
env:
|
||||
HOST_MOUNT_PREFIX: /hostfs
|
||||
HOST_ETC: /hostfs/etc
|
||||
HOST_PROC: /hostfs/proc
|
||||
HOST_SYS: /hostfs/sys
|
@ -4,26 +4,49 @@
|
||||
- name: "Install on RedHat"
|
||||
include_tasks: "RedHat.yml"
|
||||
when:
|
||||
- ansible_os_family == "RedHat"
|
||||
- ansible_os_family == "RedHat" and not telegraf_agent_docker
|
||||
|
||||
- name: "Install on Debian"
|
||||
include_tasks: "Debian.yml"
|
||||
when:
|
||||
- ansible_os_family == "Debian"
|
||||
- ansible_os_family == "Debian" and not telegraf_agent_docker
|
||||
tags:
|
||||
- telegraf
|
||||
- packages
|
||||
|
||||
- name: "Install on Archlinux"
|
||||
include_tasks: "Archlinux.yml"
|
||||
when:
|
||||
- ansible_os_family == "Archlinux" and not telegraf_agent_docker
|
||||
|
||||
- name: "Install on Suse"
|
||||
include_tasks: "Suse.yml"
|
||||
when: ansible_os_family == "Suse"
|
||||
when: ansible_os_family == "Suse" and not telegraf_agent_docker
|
||||
|
||||
- name: "Configure telegraf"
|
||||
- name: "Install on FreeBSD"
|
||||
include_tasks: "FreeBSD.yml"
|
||||
when:
|
||||
- ansible_os_family == "FreeBSD" and not telegraf_agent_docker
|
||||
|
||||
- name: "Install on MacOS"
|
||||
include_tasks: "MacOS.yml"
|
||||
when:
|
||||
- ansible_os_family == "Darwin" and not telegraf_agent_docker
|
||||
|
||||
- include_tasks: "docker.yml"
|
||||
when: telegraf_agent_docker
|
||||
|
||||
- name: "Configure Telegraf"
|
||||
include_tasks: "configure_linux.yml"
|
||||
when:
|
||||
- ansible_os_family != "Windows"
|
||||
- ansible_os_family not in ['Windows', 'Darwin']
|
||||
|
||||
- name: "Install / Configure telegraf on Windows"
|
||||
include_tasks: "configure_windows.yml"
|
||||
when:
|
||||
- ansible_os_family == "Windows"
|
||||
- ansible_os_family == "Windows" and not telegraf_agent_docker
|
||||
|
||||
- name: "Install / Configure telegraf on MacOS"
|
||||
include_tasks: "configure_macos.yml"
|
||||
when:
|
||||
- ansible_os_family == "Darwin" and not telegraf_agent_docker
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
{% if telegraf_agent_aws_tags == true and ec2_tags is defined and ec2_tags != None %}
|
||||
{% for key, value in ec2_tags.tags.iteritems()%}
|
||||
{{telegraf_agent_aws_tags_prefix}}{{ key }} = "{{ value }}"
|
||||
"{{telegraf_agent_aws_tags_prefix}}{{ key }}" = "{{ value }}"
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
@ -27,6 +27,18 @@
|
||||
{% for items in item.config %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% if item.tagpass is defined and item.tagpass is iterable %}
|
||||
[outputs.{{ item.type }}.tagpass]
|
||||
{% for items in item.tagpass %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.tagdrop is defined and item.tagdrop is iterable %}
|
||||
[outputs.{{ item.type }}.tagdrop]
|
||||
{% for items in item.tagdrop %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
@ -43,36 +55,17 @@
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.tagpass is defined and item.tagpass is iterable %}
|
||||
[{{ item.plugin }}.tagpass]
|
||||
[inputs.{{ item.plugin }}.tagpass]
|
||||
{% for items in item.tagpass %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.tagdrop is defined and item.tagdrop is iterable %}
|
||||
[{{ item.plugin }}.tagdrop]
|
||||
[inputs.{{ 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 %}
|
||||
|
@ -16,32 +16,50 @@
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value.tagpass is defined and item.value.tagpass is iterable %}
|
||||
[{{ item.value.plugin | default(item.key) }}.tagpass]
|
||||
[inputs.{{ item.value.plugin | default(item.key) }}.tagpass]
|
||||
{% for items in item.value.tagpass %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value.tagdrop is defined and item.value.tagdrop is iterable %}
|
||||
[{{ item.value.plugin | default(item.key) }}.tagdrop]
|
||||
[inputs.{{ item.value.plugin | default(item.key) }}.tagdrop]
|
||||
{% for items in item.value.tagdrop %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value.pass is defined and item.value.pass is iterable %}
|
||||
[{{ item.value.plugin | default(item.key) }}.pass]
|
||||
{% for items in item.value.pass %}
|
||||
{% if item.value.filter is defined %}
|
||||
{% if item.value.filter.name is defined %}
|
||||
[inputs.{{ item.value.plugin | default(item.key) }}.{{ item.value.filter.name | default("grok") }}]
|
||||
{% if item.value.filter.config is defined and item.value.filter.config is iterable %}
|
||||
{% for items in item.value.filter.config %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value.drop is defined and item.value.drop is iterable %}
|
||||
[{{ item.value.plugin | default(item.key) }}.drop]
|
||||
{% for items in item.value.drop %}
|
||||
{{ items }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if item.value.objects is defined and item.value.objects is iterable %}
|
||||
{% for object in item.value.objects %}
|
||||
[[inputs.{{ item.value.plugin | default(item.key) }}.object]]
|
||||
ObjectName = {{ object.name | to_json }}
|
||||
Instances = {{ object.instances | default(["*"]) | to_json }}
|
||||
Counters = {{ object.counters | default(["*"]) | to_json }}
|
||||
Measurement = {{ object.measurement | default("win_perf_counters") | to_json }}
|
||||
IncludeTotal = {{ object.total | default(false) | string | lower }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value.specifications is defined and item.value.specifications is iterable %}
|
||||
[[{{item.value.plugin | default(item.key)}}.specifications]]
|
||||
{% for items in item.value.specifications %}
|
||||
{{ items }}
|
||||
{% if item.value.queries is defined and item.value.queries is iterable %}
|
||||
{% for query in item.value.queries %}
|
||||
[[inputs.{{ item.value.plugin | default(item.key) }}.query]]
|
||||
{% for item in item.value.queries[query] %}
|
||||
{{ item }}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value.sub_inputs is defined and item.value.sub_inputs is iterable %}
|
||||
{% for sub_input, config in item.value.sub_inputs.items() %}
|
||||
[[inputs.{{ item.value.plugin | default(item.key) }}.{{ sub_input }}]]
|
||||
{% for items in config %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
@ -8,8 +8,8 @@
|
||||
{% endif %}
|
||||
|
||||
{% if telegraf_agent_aws_tags == true and ec2_tags is defined and ec2_tags != None %}
|
||||
{% for key, value in ec2_tags.tags.iteritems()%}
|
||||
{{telegraf_agent_aws_tags_prefix}}{{ key }} = "{{ value }}"
|
||||
{% for key, value in ec2_tags.tags.items()%}
|
||||
"{{telegraf_agent_aws_tags_prefix}}{{ key }}" = "{{ value }}"
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
@ -30,6 +30,9 @@
|
||||
{% if telegraf_agent_version is version_compare('1.1', '>=') %}
|
||||
{% if ansible_os_family == "Windows" %}
|
||||
logfile = "{{ telegraf_win_logfile }}"
|
||||
logfile_rotation_interval = "{{ telegraf_win_logfile_rotation_interval }}"
|
||||
logfile_rotation_max_size = "{{ telegraf_win_logfile_rotation_max_size }}"
|
||||
logfile_rotation_max_archives = {{ telegraf_win_logfile_rotation_max_archives| int }}
|
||||
{% else %}
|
||||
logfile = "{{ telegraf_agent_logfile }}"
|
||||
{% endif %}
|
||||
@ -46,6 +49,18 @@
|
||||
{% for items in item.config %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% if item.tagpass is defined and item.tagpass is iterable %}
|
||||
[outputs.{{ item.type }}.tagpass]
|
||||
{% for items in item.tagpass %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.tagdrop is defined and item.tagdrop is iterable %}
|
||||
[outputs.{{ item.type }}.tagdrop]
|
||||
{% for items in item.tagdrop %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
@ -71,45 +86,27 @@
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.tagpass is defined and item.tagpass is iterable %}
|
||||
[{{ item.plugin }}.tagpass]
|
||||
[inputs.{{ item.plugin }}.tagpass]
|
||||
{% for items in item.tagpass %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.tagdrop is defined and item.tagdrop is iterable %}
|
||||
[{{ item.plugin }}.tagdrop]
|
||||
[inputs.{{ 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.objects is defined and item.objects is iterable %}
|
||||
{% for object in item.objects %}
|
||||
[[inputs.{{ item.plugin }}.object]]
|
||||
ObjectName = {{ object.name | to_json }}
|
||||
Instances = {{ object.instances | default(["*"]) }}
|
||||
Counters = {{ object.counters | default(["*"]) }}
|
||||
Instances = {{ object.instances | default(["*"]) | to_json }}
|
||||
Counters = {{ object.counters | default(["*"]) | to_json }}
|
||||
Measurement = {{ object.measurement | default("win_perf_counters") | to_json }}
|
||||
IncludeTotal = {{ object.total | default(false) | string | lower }}
|
||||
{% 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 %}
|
||||
|
||||
@ -118,4 +115,58 @@
|
||||
# No plugins configured, added a mem plugin so telegraf doesn't stop working.
|
||||
[[inputs.mem]]
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
###############################################################################
|
||||
# PROCESSORS #
|
||||
###############################################################################
|
||||
|
||||
{% if telegraf_processors is defined and telegraf_processors is iterable %}
|
||||
{% for item in telegraf_processors %}
|
||||
[[processors.{{ item.processor }}]]
|
||||
{% 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 %}
|
||||
[processors.{{ item.processor }}.tagpass]
|
||||
{% for items in item.tagpass %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.tagdrop is defined and item.tagdrop is iterable %}
|
||||
[processors.{{ item.processor }}.tagdrop]
|
||||
{% for items in item.tagdrop %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
###############################################################################
|
||||
# AGGREGATORS #
|
||||
###############################################################################
|
||||
|
||||
{% if telegraf_aggregators is defined and telegraf_aggregators is iterable %}
|
||||
{% for item in telegraf_aggregators %}
|
||||
[[aggregators.{{ item.aggregator }}]]
|
||||
{% 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 %}
|
||||
[aggregators.{{ item.aggregator }}.tagpass]
|
||||
{% for items in item.tagpass %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.tagdrop is defined and item.tagdrop is iterable %}
|
||||
[aggregators.{{ item.aggregator }}.tagdrop]
|
||||
{% for items in item.tagdrop %}
|
||||
{{ items }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
Reference in New Issue
Block a user