Aggregate logs from MySQL, including slow queries and error messages.
We recommend Papertrail’s tiny standalone
remote_syslog daemon to read the
mysql-slow.log (and any other log files) in realtime. Setup remote_syslog.
Using remote_syslog is usually the way to go, since it requires no changes to MySQL, is easier to setup, and works for non-MySQL log files as well.
MySQL 5.1.20 and later can also use its own native syslog support plus the system-wide syslog daemon (Method B). To see which version of MySQL is installed, run:
That’s not available in MySQL 5.1.19 and earlier and it’s more work to setup, so we recommend remote_syslog (A).
Download a release, then:
tar xzf ./remote_syslog*.tar.gz cd remote_syslog sudo cp ./remote_syslog /usr/local/bin
RPM and Debian packages are also available. Problem? See Troubleshooting.
Paths to log file(s) can be specified on the command-line, or save log_files.yml.example as
/etc/log_files.yml. Edit it to define:
/var/log/mysql/slow_queries.log), error log file (such as
/var/log/mysqld.log), and any other log files which remote_syslog should watch.
portprovided under log destinations. If no destination port was provided, set
logs.papertrailapp.comand remove the
portconfig line to use the default (514).
The README has complete documentation and more examples.
Start the daemon:
Logs should appear in Papertrail within a few seconds of being written to the on-disk log file. Problem? See Troubleshooting.
remote_syslog requires read permission on the log files it is monitoring.
MySQL versions 5.1.20 and later support logging to syslog natively. Two arguments to mysqld_safe control logging:
Both, either, or neither argument can be used. mysqld_safe is generally started from
/etc/init.d/mysqld. Edit that file (or its equivalent for your distribution) and confirm that
--syslog is included on the command line, or add it.
Here is a sample which makes MySQL log to syslog and directly to a file:
/usr/bin/mysqld_safe --datadir="$datadir" --socket="$socketfile" \ --syslog --log-error="/var/log/mysql.err" --pid-file="$mypidfile" \ >/dev/null 2>&1 &