В MySQL версии 5.1.20 и выше была добавлена возможность вести лог через стандартный демон syslogd
.
Для этого используются опции syslog
(MySQL v. 5.1.20) и syslog-tag
(MySQL v. 5.1.21).
Потом этот лог можно либо пересылать на удалённый хост – либо записывать в базу MySQL для вывода в LogAnalizer.
Рассмотрим такую настройку на примере:
mysql> show variables like 'version'; +---------------+--------+ | Variable_name | Value | +---------------+--------+ | version | 5.1.69 | +---------------+--------+ 1 row in set (0.01 sec)
# cat /etc/redhat-release CentOS release 6.4 (Final)
# rsyslogd -v rsyslogd 5.8.10, compiled with:
Редактируем файл /etc/my.cnf
, в блоке [mysqld_safe]
добавляем строки:
syslog syslog-tag = mysqld
Тут – syslog
означает, что лог ошибок MySQL будет отправлять демону syslogd
(у нас это rsyslogd
), и присваивать им тег mysqld
.
Переходим к rsyslogd
. Создадим файл /etc/rsyslog.d/mysql.conf
с таким содержимым:
:syslogtag, contains, "mysql" /var/log/mysql/mysql-error.log
Проверяем конфигурацию rsyslogd
:
# rsyslogd -N1 rsyslogd: version 5.8.10, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: WARNING: rsyslogd is running in compatibility mode. Automatically generated config directives may interfer with your rsyslog.conf settings. We suggest upgrading your config and adding -c5 as the first rsyslogd option. rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: ModLoad immark rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: MarkMessagePeriod 1200 rsyslogd: Warning: backward compatibility layer added to following directive to rsyslog.conf: ModLoad imuxsock rsyslogd: End of config validation run. Bye.
Перезапускаем rsyslogd
:
# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ]
Перезапускаем MySQL:
# service mysqld restart Stopping mysqld: [ OK ] Starting mysqld: [ OK ]
И смотрим лог:
# tail -n 5 /var/log/mysql/mysql-error.log Apr 15 13:11:53 lms-teamcity mysqld-mysqld: 140415 13:11:53 InnoDB: Completed initialization of buffer pool Apr 15 13:11:54 lms-teamcity mysqld-mysqld: 140415 13:11:54 InnoDB: Started; log sequence number 3 2818834709 Apr 15 13:11:54 lms-teamcity mysqld-mysqld: 140415 13:11:54 [Note] Event Scheduler: Loaded 0 events Apr 15 13:11:54 lms-teamcity mysqld-mysqld: 140415 13:11:54 [Note] /usr/libexec/mysqld: ready for connections. Apr 15 13:11:54 lms-teamcity mysqld-mysqld: Version: '5.1.69' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution