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.
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
Diagramme für Woche / Monat
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.
Find-Aufruf
Hallo David,
bei mir sah der Aufruf so aus, um gleich alle Dateien zu korrigieren:
einfachere Möglichkeit whisper-resize
find /var/lib/graphite/whisper/ -name *.wsp -exec whisper-resize {} 1m:2d 5m:10d 30m:90d 360m:4y \; -exec chown _graphite:_graphite {} \;