Ich möchte Syslog für die Protokollierung von MySQL (5.1.41) unter Ubuntu (10.04 LTS) verwenden. Ich habe Informationen gefunden, die das Fehlerprotokoll in Syslog ausgeben.
[mysqld_safe]
syslog
Aber ich möchte Syslog für die Protokollierung von allgemeinen Protokollen und langsamen Abfrageprotokollen verwenden. Bitte raten Sie mir, wie man Konfigurationsdatei schreibt?
Ich konnte im Referenzhandbuch nicht finden, wie das geht.
http://dev.mysql.com/doc/refman/5.1/en/log-destinations.html
log_syslog
.Antworten:
Das geht VIEL einfacher so:
cd to mysql ordner:
in my.cnf sag es:
Konfigurieren Sie dann Ihr syslog / syslog-ng, um die FIFO-Pipe zu lesen, und machen Sie es so, wie es sein wird.
In meinem Fall leite ich es über das Netz an einen zentralen Server weiter, der jedoch nur die Fehlerprotokolle und langsamen Abfrageprotokolle enthält.
In Situationen, in denen Sie auch lokale Kopien behalten möchten, stellen Sie diese einfach wie oben beschrieben auf Ausgabe in Tabelle und Datei ein.
quelle
Dieser Mechanismus unterscheidet sich grundlegend vom Betriebssystem-Syslog.
Das Einstellen der Protokollausgabe kann entweder auf TABLE, FILE (Standardeinstellung) oder NONE festgelegt werden
wenn du das verwendest
Dies bewirkt, dass die Protokollierung für das allgemeine Protokoll und / oder das langsame Protokoll in eine CSV-Datei wechselt. Sie können diese CSV wie folgt in MyISAM konvertieren:
Sie können diese Datei dann enorm vergrößern und müssen die Tabelle von Zeit zu Zeit leeren. So löschen Sie die general_log-Tabelle und behalten die letzten 3 Tage bei:
Was ist mit dem Syslog (var / log / messages)? Sie müssen das selbst schreiben. Zunächst benötigen Sie entweder Folgendes:
wenn Sie das allgemeine Protokoll in beiden Formaten sammeln möchten oder
nur für das Dateiformat.
Erstellen Sie jetzt ein Skript, um Änderungen an /var/log/general.log zu erfassen. Das Skript sollte ungefähr so aussehen:
Führen Sie dieses Skript jede Minute aus. Ich empfehle, das allgemeine Protokoll alle Mitternacht so abzuschneiden
Versuche es !!!
quelle
Stellen Sie es in /etc/my.cnf ein.
Bearbeiten /etc/rsyslog.conf (RHEL / CentOS) Datei und Aktivierungsmodul imfile lesen /path/to/mysql/dir/mysql-general.log und dann, an einen Zielfern Syslogserver, ein Intervall in dem konfigurierten respektieren PollingInterval- Parameter.
Dieser Abschnitt sollte wie folgt aussehen:
Deaktivieren Sie die Zeile mit WorkDirectory
Und konfigurieren Sie es so, dass alle Protokolle remote gesendet werden
Oder
quelle