Назад | Перейти на главную страницу

Запись событий MySQL в файл в дополнение к системному журналу Debian

По умолчанию Debian использует rsyslog для обработки журнала ошибок MySQL. Мне нравится такое поведение, и я не хочу его менять. Однако я бы хотел, чтобы rsyslog записывал события MySQL в /var/log/mysqld.log в дополнение к уже работающим /var/log/syslog. Я считаю, что это можно сделать с помощью rsyslog, поэтому я не хочу использовать MySQL --log-error опция команды.

После прочтения my.cnf раздел документации по --syslog, мне казалось, что используемые средства системного журнала будут называться mysqld и mysqld_safe. Поэтому я попытался добавить в свой rsyslog.conf:

mysqld.*                        -/var/log/mysqld.log
mysqld_safe.*                   -/var/log/mysqld_safe.log

Однако после перезапуска служб rsyslog и mysql в эти файлы ничего не записывается. Я коснулся файлов, и они принадлежат root:adm как и другие подобные файлы, такие как /var/log/mail.log, который правильно принимает мои события postfix и dovecot.

У меня нет опыта работы с rsyslog, поэтому я не уверен, что я делаю не так и как это выяснить. Это усложняется из-за обилия информации о регистрации системного журнала в MySQL, чего я не собираюсь делать. Любая помощь будет оценена.

Редактировать: При дальнейшем исследовании я вижу, что это недействительные объекты (которые заранее определены). Поэтому мне нужно использовать альтернативный метод фильтрации, а не по объектам.

Добавление следующих строк в rsyslog.conf похоже, дает результат, который я искал:

:syslogtag, isequal, "mysqld:" -/var/log/mysqld.log
& ~
:syslogtag, isequal, "mysqld_safe:" -/var/log/mysqld.log
& ~
:syslogtag, startswith, "/etc/mysql/debian-start" -/var/log/mysqld.log
& ~