Je veux utiliser syslog pour enregistrer MySQL (5.1.41) sur Ubuntu (10.04 LTS). J'ai trouvé des informations qui affichent le journal des erreurs dans syslog.
[mysqld_safe]
syslog
Mais je veux utiliser syslog pour enregistrer les journaux généraux et les journaux de requêtes lentes. Veuillez m'indiquer comment écrire le fichier de configuration?
Je n'ai pas pu trouver comment faire cela dans le manuel de référence.
http://dev.mysql.com/doc/refman/5.1/en/log-destinations.html
log_syslog
.Réponses:
C'est BEAUCOUP plus simplement fait de cette façon:
cd vers les dossiers mysql:
dans my.cnf, dites-le:
Ensuite, configurez votre syslog / syslog-ng pour lire le tube FIFO et faites-le comme il le fera.
Dans mon cas, je le redirige à travers le réseau vers un serveur centralisé avec uniquement les journaux d'erreurs et les journaux de requêtes lentes.
Dans les situations où vous souhaitez également conserver la copie locale, définissez-la simplement pour la sortie dans une table et un fichier comme décrit ci-dessus.
la source
Ce mécanisme est entièrement différent du syslog du système d'exploitation.
La définition de la sortie du journal peut être définie sur TABLE, FILE (par défaut) ou NONE
si vous l'utilisez
Cela entraînera la consignation du journal général et / ou du journal lent dans un fichier CSV. Vous pouvez convertir ce CSV en MyISAM comme suit:
Vous pouvez ensuite laisser ce fichier se développer énormément et vous devrez purger la table de temps en temps. Voici comment purger la table general_log et conserver les 3 derniers jours:
Qu'en est-il du syslog (var / log / messages)? Vous devez l'écrire vous-même. Tout d'abord, vous avez besoin de ceci:
si vous souhaitez collecter le journal général dans les deux formats ou
pour juste le format de fichier.
Maintenant, créez un script pour collecter les modifications dans /var/log/general.log. Le script devrait ressembler beaucoup à ceci:
Exécutez ce script toutes les minutes. Je recommande de tronquer le journal général tous les minuit comme ceci
Essaie !!!
la source
Dans /etc/my.cnf, définissez-le.
Modifiez le fichier /etc/rsyslog.conf (RHEL / CentOS) et activez l' imfile du module pour lire /path/to/mysql/dir/mysql-general.log , puis envoyez-le au serveur syslog distant, en respectant un intervalle configuré dans le Paramètre PollingInterval .
Cette section devrait ressembler à ceci ci-dessous:
Supprimer la ligne avec WorkDirectory
Et configurez-le pour envoyer tous les journaux à distance
Ou
la source