Beide Dateien aus deploy/ in den CheckMK Local-Ordner kopieren.
RAMMonitor.appsettings.example.json dabei umbenennen zu RAMMonitor.appsettings.json:
C:\ProgramData\checkmk\agent\local\300\
├── RAMMonitor.ps1
└── RAMMonitor.appsettings.json
Der 300-Unterordner bewirkt asynchrone Ausführung alle 5 Minuten (300 Sekunden).
Netzwerk-Share für JSON-Output vorbereiten (Computer-Accounts brauchen Schreibrechte).
RAMMonitor.appsettings.json:
{
"outputPath": "\\\\fileserver\\monitoring$\\ram-usage",
"localFallbackPath": "C:\\ProgramData\\CheckMK-RAMMonitor\\fallback",
"minRamMB": 1024,
"minTopEntries": 5
}| Parameter | Beschreibung |
|---|---|
outputPath |
UNC-Pfad für JSON-Snapshots. Unterverzeichnis pro Host wird automatisch erstellt. |
localFallbackPath |
Fallback wenn Share nicht erreichbar |
minRamMB |
Schwellwert - alle User/Prozess-Kombinationen darüber werden erfasst |
minTopEntries |
Mindestanzahl Einträge (falls weniger über Schwellwert) |
& "C:\ProgramData\checkmk\agent\local\300\RAMMonitor.ps1"Output:
0 "RAM_Usage_Monitor" ram_used_percent=75.3;80;95|process_count=8|top_ram_mb=2450 OK - RAM: 75.3% used, 8 consumers tracked. Top: DOMAIN\user/chrome.exe: 2450MB
Nach erstem Agent-Lauf erscheint RAM_Usage_Monitor als neuer Service.
Setup → Hosts → [Host] → Service Discovery → Accept.
- Script läuft als SYSTEM (CheckMK-Agent) → WMI-Abfragen für Process Owner funktionieren
- JSON-Dateien:
\\share\...\{HOSTNAME}\{yyyy-MM-dd_HH-mm-ss}.json - CheckMK Service Name:
RAM_Usage_Monitor