Direkt zum Hauptinhalt

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