ArchiveBox-Telemetrie: Exporteur + Telegraf-Container fuer Knoten ohne sudo
archibald hat kein sudo und kein linger, aber Docker-Gruppe. Muster wie bei der llama-swap-Telemetrie auf dem ROG: ein Nutzer-Cron fuehrt den Exporteur aus, Telegraf laeuft als Container daneben und pusht per Remote Write zum Collector im Mesh. - scripts/archivebox-telemetrie.py: liest die ArchiveBox-Logs und die SQLite-DB IM Container (Host-User mm darf index.sqlite3 nicht oeffnen, Container-User 911 schon) und schreibt eine Prometheus-Exposition. Kein node-Label -- das setzt Telegraf per global_tags. - scripts/install-archivebox-telemetrie.sh: installiert Exporteur, Cron-Eintrag (jede Minute) und den Container, mit --dry-run. - stacks/telegraf-container/: telegraf 1.39, network_mode host, inputs.file (data_format prometheus), outputs.prometheus_remote_write.
This commit is contained in:
1 parent
235cbc68dc
commit
6b169c77e6
4 files changed
+376
No files matched your search
@@ -0,0 +1,44 @@
|
||||
# =============================================================================
|
||||
# Telegraf-Konfiguration fuer einen CONTAINER-Knoten ohne sudo.
|
||||
#
|
||||
# Variablen kommen aus der Container-Umgebung (docker-compose `environment`),
|
||||
# NICHT aus /etc/default/telegraf -- das gibt es auf solchen Knoten nicht.
|
||||
# =============================================================================
|
||||
|
||||
[global_tags]
|
||||
node = "${NODE_NAME}"
|
||||
|
||||
[agent]
|
||||
# Der Exporteur schreibt einmal pro Minute; 60 s Abtastung ist das Maximum,
|
||||
# das keine Werte doppelt sieht. Jitter, damit Cron-Schreiben und Abtastung
|
||||
# nicht im Gleichtakt kollidieren.
|
||||
interval = "60s"
|
||||
flush_interval = "60s"
|
||||
collection_jitter = "5s"
|
||||
hostname = "${NODE_NAME}"
|
||||
omit_hostname = false
|
||||
# Reserve fuer Ausfaelle: Telegraf puffert nur, solange der Push scheitert.
|
||||
metric_buffer_limit = 200000
|
||||
|
||||
# Der Cron-Exporteur schreibt die .prom-Datei atomar (mv).
|
||||
# data_format = "prometheus" ist PFLICHT: das Skript besitzt seine Metriknamen
|
||||
# schon. Mit "influx" bekaeme jede Serie ein _value-Suffix (oder der Parser
|
||||
# scheiterte ganz) und jedes Panel bliebe leer, ohne Fehlermeldung.
|
||||
[[inputs.file]]
|
||||
files = ["/var/lib/abx-prom/abx.prom"]
|
||||
data_format = "prometheus"
|
||||
|
||||
# ---- Metriken -> Prometheus Remote Write (Collector imac) ----
|
||||
[[outputs.http]]
|
||||
url = "${PROM_URL}"
|
||||
data_format = "prometheusremotewrite"
|
||||
timeout = "60s"
|
||||
# Ein 400 ist PERMANENT: dieselbe Nutzlast liefert dieselbe Antwort. Ohne
|
||||
# diese Liste bleibt der abgelehnte Batch als FIFO-Kopf stehen, wird endlos
|
||||
# wiederholt und blockiert jede dahinter gesammelte Serie.
|
||||
non_retryable_statuscodes = [400, 409, 413, 422]
|
||||
[outputs.http.headers]
|
||||
Content-Type = "application/x-protobuf"
|
||||
Content-Encoding = "snappy"
|
||||
X-Prometheus-Remote-Write-Version = "0.1.0"
|
||||
# Kein Authorization-Header: direkter Mesh-Weg ohne Auth (siehe compose).
|
||||
Reference in new issue
Block a user