====== NDO Performance Tuning ====== ===== Verhalten der NDO-Datenbank ===== ===== Ansätze für Optimierung ===== ==== Verringern der Datensätze ==== Siehe [[eventbroker_optionen|EventBroker beeinflussen und Einträge in die MySQL-DB verringern]] ==== Cleaning alter Einträge aus der Datenbank ==== ==== Löschen von MySQL-Log-Dateien im Filesystem ==== Durch den Eintrag "event_broker_options=-1" (ist in meiner Konfig notwendig, weil ich mit den empfohlenen Einstellungen in NagVis keine Hosts und Services auswählen kann) in der nagios.cfg kann es zu einem enormen Anwachsen der MySQL-Logs kommen (meist zu finden bei einer Standardinstallation von MySQL unter /usr/local/mysql/var/; heißen meißt "mysql-bin.[laufende-Nummer]). Mit Hilfe folgendes Shell-Skripts und einer entsprechenden Planung in der Crontab des Users root werden mit MySQL-Bortmitteln nicht mehr benötigte Log-Dateien aus dem Filesystem entfernt. #!/bin/bash # # erstellt von WolverineJR MYSQL_VAR_PATH=/usr/local/mysql/var MYSQL_BIN_PATH=/usr/bin MAIL=[Mail-Adresse für Fehlermeldungen] MYSQL-User=root # does not work, when yesterday was last month # let DAY_BEFORE=$(date +%d)-1 # PURGE_DATE=$(echo $(date +%Y-%m)-$DAY_BEFORE 01:00:00) # # better would be using a date function PURGE_DATE=$(date '+%F %T' --date='yesterday 01:00') $MYSQL_BIN_PATH/mysql -u $MYSQL-User -e "PURGE MASTER LOGS BEFORE '$PURGE_DATE';" if [ $? -ne 0 ]; then echo "Waehrend des Purge-Laufes der MySQL-Datenbank des Nagios-Servers ist ein Fehler aufgetreten!" | mailx -s "Fehler wahrend Purge-Laufs" $MAIL fi Das Skript verbindet sich mit den angegebenen User-Daten gegen die MySQL-DB und veranlasst einen Purge aller Logs vor dem gestrigen Tag um 01:00 Uhr morgens. Verbesserungen und/oder Korrekturen sind gern gesehen. ;-)