diff --git a/roles/server/files/telegraf.d/agent.conf b/roles/server/files/telegraf.d/agent.conf new file mode 100644 index 0000000..5dde452 --- /dev/null +++ b/roles/server/files/telegraf.d/agent.conf @@ -0,0 +1,20 @@ +############################################################################### +# GLOBAL AGENT CONFIG +############################################################################### +[agent] + ## Erfassungsintervall + interval = "10s" + + ## Batches kleiner halten → weniger RAM pro Batch + metric_batch_size = 500 + metric_buffer_limit = 10000 # Maximal 10.000 Messpunkte im RAM + + ## Wenn der Buffer voll ist, werden alte Daten verworfen + ## → verhindert "Memory blowup" + collection_jitter = "1s" + flush_interval = "10s" + flush_jitter = "2s" + + ## Jeder Output-Write versucht nur kurz, dann wird das Batch verworfen + ## → wichtig gegen RAM-Voll-Laufen + round_interval = true \ No newline at end of file diff --git a/roles/server/files/telegraf.d/output_file.conf b/roles/server/files/telegraf.d/output_file.conf new file mode 100644 index 0000000..3c70c4c --- /dev/null +++ b/roles/server/files/telegraf.d/output_file.conf @@ -0,0 +1,11 @@ +# --- FALLBACK: Metriken in Datei schreiben (optional, aber SEHR hilfreich) --- +# Wird aktiviert, wenn du sicherstellen willst, dass keine Daten verloren gehen, +# selbst wenn die InfluxDB tagelang offline ist. +# +# WICHTIG: Der File-Output belegt praktisch KEINEN RAM, da er direkt streamt. + +[[outputs.file]] + files = ["stdout", "/var/log/telegraf/metrics_backup.out"] + rotation_interval = "1h" + rotation_max_size = "100MB" + rotation_max_archives = 5 \ No newline at end of file diff --git a/roles/server/files/telegraf.d/output_influx.conf b/roles/server/files/telegraf.d/output_influx.conf index 4eee7bc..5ed1017 100644 --- a/roles/server/files/telegraf.d/output_influx.conf +++ b/roles/server/files/telegraf.d/output_influx.conf @@ -1,4 +1,17 @@ [[outputs.influxdb]] urls = ["http://grafana.universe.local:8086"] database = "linux" + + ## Timeouts BEGRENZEN, damit der Puffer nicht endlos wächst + timeout = "3s" + username = "telegraf" + password = "secret" + + ## Wenn die DB nicht erreichbar ist, nicht zu lange blockieren: + ## nur wenige Wiederholungen + write_timeout = "3s" + ## Ab Telegraf 1.20+ sinnvoll: + http_headers = { "Connection" = "close" } + + ## Fehler schnell melden → verhindert große Warteschlangen skip_database_creation = false \ No newline at end of file diff --git a/roles/server/tasks/main.yml b/roles/server/tasks/main.yml index f722eaf..9ccaf43 100644 --- a/roles/server/tasks/main.yml +++ b/roles/server/tasks/main.yml @@ -8,7 +8,7 @@ - block: - include_tasks: utilities/mail_transfer_agent.yml - # - include_tasks: utilities/telegraf.yml + - include_tasks: utilities/telegraf.yml when: ansible_distribution in ["Debian", "Ubuntu", "Linux Mint"] - include_tasks: utilities/netdata.yml when: netdata is defined and netdata == true diff --git a/roles/server/tasks/utilities/telegraf.yml b/roles/server/tasks/utilities/telegraf.yml index 712d17f..8e5f630 100644 --- a/roles/server/tasks/utilities/telegraf.yml +++ b/roles/server/tasks/utilities/telegraf.yml @@ -27,11 +27,10 @@ - name: server | telegraf | copy basic config copy: - dest: "/etc/telegraf/{{ item }}" + dest: "/etc/telegraf/telegraf.d/{{ item | basename }}" src: "{{ item }}" - loop: - - telegraf.d/input_basics.conf - - telegraf.d/output_influx.conf + with_fileglob: + - "telegraf.d/*.conf" notify: restart_telegraf \ No newline at end of file