# 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](https://wiki.hacker-net.de/attachments/45)

### 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