MongoDB Größen überwachung
Beschreibung:
Ein lokal check, der alle collections durchgeht und ausgibt.
Der Check muss auf dem MongoDB Server eingefügt werden, da er eijne Localhostverbindung
zum MongoDB Server aufbaut.
Das Script
#!/usr/bin/python3
from pymongo import MongoClient
# Konstanten für Schwellwerte
WARNUNGSGROESSE_GB = 0.5
KRITISCHGROESSE_GB = 1.0
# Verbindung zur MongoDB herstellen
client = MongoClient('mongodb://localhost:27017/')
# Alle Datenbanknamen abrufen
db_names = client.list_database_names()
# Durch jede Datenbank iterieren und die Statistiken abrufen
for db_name in db_names:
db = client[db_name]
stats = db.command('dbstats')
# Größe in Gigabytes umrechnen
groesse_gb = stats['dataSize'] / (1024**3)
# Prüfe die Größe gegen Schwellwerte und gebe entsprechenden Status aus
if groesse_gb > KRITISCHGROESSE_GB:
status = 2 # Kritisch
status_message = "CRITICAL"
elif groesse_gb > WARNUNGSGROESSE_GB:
status = 1 # Warnung
status_message = "WARNING"
else:
status = 0 # OK
status_message = "OK"
#Zeile um den Status ausgeben, wenn checkmk nicht benutzt wird, hier auskommentiert da es ja ein checkmk Check wird
#print(f"{status} MongoDB_{db_name}_Groesse - {status_message} - Groesse: {groesse_gb:.2f} GB")
#Zeile die Augegeben wird für Check_MK
print(f"P \"MongoDB_{db_name}_Groesse\" size={groesse_gb:.2f};{WARNUNGSGROESSE_GB};{KRITISCHGROESSE_GB}")
# MongoDB-Verbindung schließen
client.close()
Hier auchnochmals als download: mongodbsizes.py
Installation:
Das script in folgendem Pfad anlegen bzw. hin kopieren
/usr/lib/check_mk_agent/local/mongodbsizes.py
Nun noch ausführbar machen.
chmod +x /usr/lib/check_mk_agent/local/mongodbsizes.py
Fertig