remove!(telegraf): unused

This commit is contained in:
Saibotk 2025-01-20 00:19:33 +01:00
parent 1041703c1a
commit f8b9813461
Signed by: saibotk
GPG key ID: 67585F0065E261D5
7 changed files with 0 additions and 459 deletions

View file

@ -1,27 +0,0 @@
Telegraf
=========
This will setup a [Telegraf](https://docs.influxdata.com/telegraf/) container using their official docker container to monitor the system.
Requirements
------------
You will need to have docker and docker-compose installed or declared as dependencies with their respective roles.
Role Variables
--------------
**Please look at the [defaults/main.yml](defaults/main.yml) for all available variables and their description.**
**Note: Lines that are commented out via `#` are usually still valid/used variables, but they are not defined by default, so they might enable a feature, when uncommenting/defining them!**
Dependencies
------------
- docker
- docker-compose
License
-------
GPL-3.0-only

View file

@ -1,116 +0,0 @@
---
# Default variables for the telegraf role
# Infrastructure
# Ansible instructions to deploy the infrastructure
# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern
# Copyright (C) 2020 Saibotk
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# The install locations
telegraf_install_location: "/srv/telegraf"
telegraf_config_location: "{{ telegraf_install_location }}/conf"
# The telegraf/dockersocket version to use
# renovate: depName=docker.io/library/telegraf
telegraf_version: "1.25.3"
# renovate: depName=quay.io/sheogorath/docker-socket-proxy
telegraf_dockersocketproxy_version: "2.3"
# Changing this image may also require changing the UID / GID below,
# to set the correct permissions
telegraf_image_version: "{{ telegraf_version }}-alpine"
# Telegraf config user & group id
# This is used for the config folder that is mounted to the container
telegraf_config_uid: 100
telegraf_config_gid: 101
# The influxdb endpoints, telegraf should send data to
telegraf_influxdb_endpoints:
- influxdb.example.com
# The influxdb credentials
telegraf_influxdb_username: telegraf
telegraf_influxdb_password: "{{ lookup('passwordstore', telegraf_influxdb_endpoints[0] + '/db create=true length=42') }}"
# The retention policy settings (see https://github.com/influxdata/telegraf/blob/release-1.15/plugins/outputs/influxdb/README.md)
telegraf_influxdb_retention_policy: ""
telegraf_influxdb_retention_policy_tag: ""
# Telegraf agent configuration (see https://docs.influxdata.com/telegraf/v1.15/administration/configuration/)
telegraf_agent_hostname: "{{ ansible_fqdn }}"
telegraf_agent_interval: 10
telegraf_agent_debug: false
telegraf_agent_round_interval: true
telegraf_agent_flush_interval: 10
telegraf_agent_flush_jitter: 5
telegraf_agent_collection_jitter: 5
telegraf_agent_metric_batch_size: 2000
telegraf_agent_metric_buffer_limit: 1000000
telegraf_agent_omit_hostname: false
# The telegraf config's [global_tags] section (see https://docs.influxdata.com/telegraf/v1.15/administration/configuration/)
telegraf_global_tags: []
# The telegraf [[outputs.type]] sections (see https://docs.influxdata.com/telegraf/v1.15/administration/configuration/)
telegraf_output:
- type: influxdb
config:
- urls = ["https://{{ telegraf_influxdb_endpoints | join('","https://') }}"]
- database = "telegraf"
- timeout = "5s"
- username = "{{ telegraf_influxdb_username }}"
- password = "{{ telegraf_influxdb_password }}"
- retention_policy = "autogen"
- retention_policy_tag = "retention_policy"
# The telegraf input plugins that are enabled by default (see https://docs.influxdata.com/telegraf/v1.15/plugins/plugin-list/)
telegraf_plugins:
- plugin: internal
- plugin: cpu
config:
- percpu = true
- totalcpu = true
- collect_cpu_time = false
- report_active = false
- plugin: disk
config:
- ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
- plugin: diskio
- plugin: kernel
- plugin: mem
- plugin: processes
- plugin: swap
- plugin: system
- plugin: docker
config:
- endpoint = "tcp://dockersocket:2375"
- container_names = []
- timeout = "5s"
- total = false
- plugin: docker_log
config:
- endpoint = "tcp://dockersocket:2375"
- source_tag = true
tags:
- retention_policy = "logs"
# Additional plugins, these will be added to the list of plugins above
telegraf_plugins_extra: []
# The telegraf processor plugins list (see https://docs.influxdata.com/telegraf/v1.15/plugins/plugin-list/)
# telegraf_processors = []
# Extra volumes that should be mounted inside the telegraf container
telegraf_extra_volumes: []

View file

@ -1,24 +0,0 @@
---
# Handlers for the telegraf role
# Infrastructure
# Ansible instructions to deploy the infrastructure
# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
- name: Restart telegraf
community.docker.docker_compose_v2:
project_src: "{{ telegraf_install_location }}"
state: restarted
become: true

View file

@ -1,43 +0,0 @@
galaxy_info:
author: saibotk
description: "Deploys a telegraf container for monitoring."
license: GPL-3.0-only
min_ansible_version: "2.9"
standalone: true
platforms:
- name: EL
versions:
- all
- name: GenericUNIX
versions:
- all
- name: Fedora
versions:
- all
- name: opensuse
versions:
- all
- name: GenericBSD
versions:
- all
- name: FreeBSD
versions:
- all
- name: Ubuntu
versions:
- all
- name: SLES
versions:
- all
- name: GenericLinux
versions:
- all
- name: Debian
versions:
- all
galaxy_tags: []
dependencies:
- role: docker

View file

@ -1,78 +0,0 @@
---
# Tasks file for the telegraf role
# Infrastructure
# Ansible instructions to deploy the infrastructure
# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
- name: Update default SELinux contexts
community.general.sefcontext:
target: "{{ item }}(/.*)?"
setype: "container_file_t"
state: present
with_items:
- "{{ telegraf_config_location }}"
become: true
- name: Create install directory
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: "0700"
owner: "root"
group: "root"
with_items:
- "{{ telegraf_install_location }}"
become: true
- name: Create config directory
ansible.builtin.file:
path: "{{ item }}"
mode: "0700"
owner: "{{ telegraf_config_uid }}"
group: "{{ telegraf_config_gid }}"
state: directory
setype: "container_file_t"
with_items:
- "{{ telegraf_config_location }}"
become: true
- name: Deploy docker-compose.yml
ansible.builtin.template:
src: "docker-compose.yml"
dest: "{{ telegraf_install_location }}/docker-compose.yml"
mode: "0600"
owner: "root"
group: "root"
validate: docker compose -f %s config -q
become: true
- name: Deploy telegraf config
ansible.builtin.template:
src: "telegraf.conf"
dest: "{{ telegraf_config_location }}/telegraf.conf"
mode: "0600"
owner: "{{ telegraf_config_uid }}"
group: "{{ telegraf_config_gid }}"
notify: "Restart telegraf"
become: true
- name: Compose telegraf
community.docker.docker_compose_v2:
state: present
project_src: "{{ telegraf_install_location }}"
pull: always
remove_orphans: true
become: true

View file

@ -1,67 +0,0 @@
{{ ansible_managed | comment }}
# Infrastructure
# Ansible instructions to deploy the infrastructure
# Copyright (C) 2019-2020 Christoph (Sheogorath) Kern
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
version: "2"
services:
telegraf:
image: docker.io/library/telegraf:{{ telegraf_image_version }}
restart: always
mem_limit: 256mb
memswap_limit: 384mb
read_only: false # TODO: switch to self-made container
security_opt:
- label:disable
environment:
HOST_PROC: /rootfs/proc
HOST_SYS: /rootfs/sys
HOST_ETC: /rootfs/etc
volumes:
- {{ telegraf_config_location }}:/etc/telegraf/:ro
- /sys:/rootfs/sys:ro
- /proc:/rootfs/proc:ro
- /etc:/rootfs/etc:ro
{% for item in telegraf_extra_volumes %}
- "{{item}}"
{% endfor %}
networks:
telegraf:
dockersocket:
image: quay.io/sheogorath/docker-socket-proxy:{{ telegraf_dockersocketproxy_version }}
mem_limit: 16mb
memswap_limit: 32mb
security_opt:
- "label:disable"
read_only: true
tmpfs:
- /run/:size=32K
environment:
- "CONTAINERS=1"
- "INFO=1"
- "NETWORKS=1"
- "IMAGES=1"
- "LOG_LEVEL=notice"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
telegraf:
restart: always
networks:
telegraf:

View file

@ -1,104 +0,0 @@
{{ ansible_managed | comment }}
# Source: https://github.com/dj-wasabi/ansible-telegraf/blob/master/templates/telegraf.conf.j2
[global_tags]
{% if telegraf_global_tags is defined and telegraf_global_tags is iterable %}
{% for item in telegraf_global_tags %}
{{ item.tag_name }} = "{{ item.tag_value }}"
{% endfor %}
{% endif %}
# Configuration for telegraf agent
[agent]
interval = "{{ telegraf_agent_interval }}s"
debug = {{ telegraf_agent_debug | lower }}
hostname = "{{ telegraf_agent_hostname }}"
round_interval = {{ telegraf_agent_round_interval | lower }}
flush_interval = "{{ telegraf_agent_flush_interval }}s"
flush_jitter = "{{ telegraf_agent_flush_jitter }}s"
collection_jitter = "{{ telegraf_agent_collection_jitter }}s"
metric_batch_size = {{ telegraf_agent_metric_batch_size }}
metric_buffer_limit = {{ telegraf_agent_metric_buffer_limit }}
omit_hostname = {{ telegraf_agent_omit_hostname | lower }}
###############################################################################
# OUTPUTS #
###############################################################################
{% if telegraf_output is defined and telegraf_output is iterable %}
{% for item in telegraf_output %}
[[outputs.{{ item.type }}]]
{% 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 %}
###############################################################################
# INPUTS #
###############################################################################
{% if telegraf_plugins is defined and telegraf_plugins is iterable %}
{% for item in telegraf_plugins + telegraf_plugins_extra %}
[[inputs.{{ item.plugin }}]]
{% if item.interval is defined %}
interval = "{{ item.interval }}s"
{% endif %}
{% if item.config is defined and item.config is iterable %}
{% for items in item.config %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tags is defined and item.tags is iterable %}
[inputs.{{ item.plugin }}.tags]
{% for items in item.tags %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagpass is defined and item.tagpass is iterable %}
[inputs.{{ item.plugin }}.tagpass]
{% for items in item.tagpass %}
{{ items }}
{% endfor %}
{% endif %}
{% if item.tagdrop is defined and item.tagdrop is iterable %}
[inputs.{{ item.plugin }}.tagdrop]
{% for items in item.tagdrop %}
{{ items }}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
{% if telegraf_plugins is defined and telegraf_plugins|length == 0 %}
# No plugins configured, added a mem plugin so telegraf doesn't stop working.
[[inputs.mem]]
{% 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 %}
{% endfor %}
{% endif %}