Eigenes Filesystem für rrd Dateien

Hallo,
ich habe eine Frage bezüglich des Speicherorts für rrd-files.
Ich habe für die rrd-Files ein eigenes filesystem angelegt, “/omd/sites/slave4/var/check_mk/rrd”. Hintergedanke dabei war, dass wenn das rrd-filesystem mal voll laufen sollte, die checkmk Umgebung trotzdem noch weiter läuft. Die erste Frage ist, ist das so in der Art sinnvoll?
Die zweite Frage ist, in unserem Fall (Redhat) wird in diesem Filesystem ein Ordner “lost+found” angelegt, dieser gehört erst mal weiterhin root. Jetzt erhalte ich im logfile “diskspace.log” entsprechende Fehlermeldungen. Kann man diese ignorieren oder funktioniert nun das komplette cleanup nicht?

OMD[slave4]:~/var/log$ cat diskspace.log
ERROR: Unexpected exception: Traceback (most recent call last):
  File "/omd/sites/slave4/bin/diskspace", line 358, in <module>
    main()
  File "/omd/sites/slave4/bin/diskspace", line 342, in main
    do_cleanup_abandoned_host_files()
  File "/omd/sites/slave4/bin/diskspace", line 271, in do_cleanup_abandoned_host_files
    cleaned_up_hosts.update(cleanup_host_directory(site_hosts, base_path))
  File "/omd/sites/slave4/bin/diskspace", line 300, in cleanup_host_directory
    mtime = newest_modification_time_in_dir(path)
  File "/omd/sites/slave4/bin/diskspace", line 312, in newest_modification_time_in_dir
    for entry in os.listdir(dir_path):
OSError: [Errno 13] Permission denied: '/omd/sites/slave4/var/check_mk/rrd/lost+found'

Danke, VG
Christian

Auf die Idee bin ich noch nicht gekommen. Ich würde sagen wenn du nicht rechtzeitig mitbekommst, dass die Platte von deinem Monitoring langsam vollläuft, dann monitorst du dein Monitoring nicht gut. :wink:

Irgendwann haben rrd files ja auch die maximale Größe, d.h. Wachstum entsteht dann eher durch hinzufügen von Hosts/Services und nich von selbst.

1 Like

:slight_smile:
siehe weiter unten

RRD Files haben immer sofort die maximale Größe
Damit ergibt sich auch, dass das Volume meist nicht durch RRDs langsam voll läuft sondern eher schlagartig. Dies passiert dann wenn mal schnell 1k Hosts mit jeweils 50-100 Services hinzugefügt werden (zum Beispiel Switche). Aber selbst dabei kommen keine Werte jenseits der 200-300 GB raus.
Aus Erfahrung in großen Systemen kann ich nur sagen die normalen Log Dateien des Core sowie eine aktivierte Hardware/Software Inventur sind eher der Grund warum das Volume welches die Site beherbergt voll läuft.

Wenn eine Exception kommt sieht es ganz nach einem Abbruch aus, also wird maximal bis dahin was bereinigt wo er of den lost+found Ordner stösst.
Kannst ja mit einem “find . -type f -mtime -XX” schauen ob alte Dateien vorhanden sind.

5 Likes

Hallo Christian,

was Du machen kannst, wenn Dich das Verzeichnis lost+found stört, sind bind mounts. Ich hab das schon öfter aus genau diesem Grund so gemacht:

  1. Mounte das Dateisystem nicht direkt als /omd/sites/slave4/var/check_mk/rrd sondern z.B. als /mnt/cmk-round-robin. Dann hast Du das lost+found unterhalb dieses mountpoints.

  2. Lege ein Verzeichnis /mnt/cmk-round-robin/rr-data an und ordne es dem Site-Nutzer zu.

  3. Erstelle das (leere) Verzeichnis /omd/sites/slave4/var/check_mk/rrd. Die Ownership kann ruhig root:root sein, denn es wird im nächsten Schritt ja sowieso ein anders Verzeichnis mit Ownership slave4:omd drüber gemountet.

  4. Erstelle einen bind mount von /mnt/cmk-round-robin/rr-data nach /omd/sites/slave4/var/check_mk/rrd. Dann liegen die Daten unterhalb von /omd/sites/slave4/var/check_mk/rrd automatisch im Dateisystem /mnt/cmk-round-robin und dort im Verzeichnis rr-data. Das lost+found ist und bleibt unter /mnt/cmk-round-robin und stört dort nicht.

Im Einzelnen:

# mount filesystem (check UUID with "lsblk -fs")
# give it root:root so that nobody can fiddle around with it.
mkdir /mnt/cmk-round-robin
mount UUID=291bd44c-vvvv-xxxx-yyyy-zzzzzzzzzzzz /mnt/cmk-round-robin
chown root:root /mnt/cmk-round-robin
chmod 750 /mnt/cmk-round-robin

# create subdirectory for rr-data
# give it slave4:omd because they want to read/write the data in there
mkdir /mnt/cmk-round-robin/rr-data
chown slave4:omd /mnt/cmk-round-robin/rr-data
chmod 770 /mnt/cmk-round-robin/rr-data

# create empty rrd directory below ~slave4. It will serve as a mountpoint.
# ownership doesn't matter. root:root is preferred to avoid accidental writing.
mkdir /omd/sites/slave4/var/check_mk/rrd

# bind mount /mnt/cmk-round-robin/rr-data to /omd/sites/slave4/var/check_mk/rrd.
# now everything that happens below /omd/.../rrd actually happens on the 
# filesystem below /mnt/.../rr-data
mount -o bind /mnt/cmk-round-robin/rr-data /omd/sites/slave4/var/check_mk/rrd

Wenn alles zufriedenstellend funktioniert, kannst Du die Daten in die /etc/fstab eintragen:

# The partition
UUID=291bd44c-vvvv-xxxx-yyyy-zzzzzzzzzzzz /mnt/cmk-round-robin  ext4 defaults  0  2

# The bind mount:
/mnt/cmk-round-robin/rr-data /omd/sites/slave4/var/check_mk/rrd  none  bind  0  0

Auf diese Weise liegt das lost+found ganz woanders und stört nicht weiter. Ich hoffe, das hilft Dir. Aber wie die anderen schon gesagt haben: Der Sinn eines separaten Filesystems für die rrd-Daten ist fraglich.

Gruß Dirk

2 Likes

Hallo zusammen,
danke für die hilfreichen Tipps. Ich werde das separate Filesystem dann erst mal wieder abbauen. Ich bin immer ein Freund von separaten Filesystemen, das liegt aber an meiner bisherigen Erfahrung mit einigen anderen Anwendungen und checkmk ist hier bestimmt besser :smiley:

Danke, VG
Christian

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.