Graphite-Anzeige zeigt nur kurze Historie

Gespeichert von Erik Wegner am/um
Body

Das Überwachungssystem Icinga2 für Netzwerke, Server und Dienste sammelt neben den Erreichbarkeitsinformationen auch Leistungsdaten in Zahlenform. Über die Zeit lassen sich so Diagramme erstellen, die einen Trend abzeichnen.

Grafische Darstellung der erfassten Performancewerte

Unter Ubuntu 16.04 LTS kann es passieren, dass die Diagramme keine Daten enthalten für Zeiträume über einen Tag hinaus. Die Bewertung eines Monats oder eines ganzen Jahres ist damit nicht möglich.

Fehlerbehebung

Die direkte Ursache ist, dass die Speicherdateien falsch angelegt wurden. Eine Änderung der Konfiguration ändert die Dateien nicht automatisch, dies muss per Hand durchgeführt werden:

cd /var/lib/graphite/whisper/icinga2/server/services/ping4/ping4/perfdata/rta/
whisper-info value.wsp
whisper-resize value.wsp 1m:2d 5m:10d 30m:90d 360m:4y
chown _graphite:_graphite value.wsp

Erläuterungen

Zuerst wird in ein Verzeichnis der Speicherdatei gewechselt.

Der Befehl whisper-info zeigt Informationen zur Speicherdatei an, hier lässt sich das Problem erkennen:

maxRetention: 86400
xFilesFactor: 0.5
aggregationMethod: average
fileSize: 17308

Archive 0
retention: 86400
secondsPerPoint: 60
points: 1440
size: 17280
offset: 28

Mit whisper-resize wird die Information angepasst:

Retrieving all data from the archives
Creating new whisper database: value.wsp.tmp
Created: value.wsp.tmp (191104 bytes)
Migrating data without aggregation...
Renaming old database to: value.wsp.bak
Renaming new database to: value.wsp

Die Aufrufparameter stimmen mit der Standard-Konfiguration überein:

# Schema definitions for Whisper files. Entries are scanned in order,
# and first match wins. This file is scanned for changes every 60 seconds.
#
#  [name]
#  pattern = regex
#  retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...

# Carbon's internal metrics. This entry should match what is specified in
# CARBON_METRIC_PREFIX and CARBON_METRIC_INTERVAL settings
[carbon]
pattern = ^carbon\.
retentions = 60:90d

[default_1min_for_1day]
pattern = .*
retentions = 60s:1d

[icinga_internals]
pattern = ^icinga\..*\.(max_check_attempts|reachable|current_attempt|execution_time|latency|state|state_type)
retentions = 5m:7d

[icinga_default]
pattern = ^icinga\.
retentions = 1m:2d,5m:10d,30m:90d,360m:4y

Anschließend werden die Berechtigungen der Datei auf den richtigen Wert gesetzt. Ein neues whisper-info zeigt nun diesen Stand:

maxRetention: 126144000
xFilesFactor: 0.5
aggregationMethod: average
fileSize: 191104

Archive 0
retention: 172800
secondsPerPoint: 60
points: 2880
size: 34560
offset: 64

Archive 1
retention: 864000
secondsPerPoint: 300
points: 2880
size: 34560
offset: 34624

Archive 2
retention: 7776000
secondsPerPoint: 1800
points: 4320
size: 51840
offset: 69184

Archive 3
retention: 126144000
secondsPerPoint: 21600
points: 5840
size: 70080
offset: 121024

Kommentare

Permalink

Hallo Erik,

Danke für den hilfreichen Artikel. Ich habe das gleich mal ausprobiert.

find . -iname value.wsp -exec bash -c 'whisper-resize "$1" 1m:2d 5m:10d 30m:90d 360m:4y' _ {} \;

Trotzdem werden Diagramme für Woche / Monat nur dargestellt, wenn der Check Intervall auf eine Minute eingestellt ist.

Hallo David,

bei mir sah der Aufruf so aus, um gleich alle Dateien zu korrigieren:

cd /var/lib/graphite/whisper/icinga2/
find -iname '*.wsp' -exec whisper-resize '{}' 1m:2d 5m:10d 30m:90d 360m:4y \;