Регистрация запросов MySQL и пересылка в системный журнал / журнал событий

Я смог включить журнал ошибок, общий журнал запросов, медленный журнал запросов и двоичный журнал и смог перенаправить журналы в системный журнал. У меня есть несколько вопросов о регистрации.

1) Журнал ошибок автоматически перенаправляется в журнал событий в Windows. Как переслать другие журналы в журнал событий?

2) Можно ли преобразовать многострочные журналы mysql в одну строку.

3) Можно ли добавить какой-либо заголовок к файлам журнала или какой-либо тег в начале каждой строки журнала, чтобы было легко определить, какой это файл журнала.

4) В медленных журналах запросов некоторая информация комментируется. Будут ли эти строки с комментариями переданы с использованием rsyslog во всех системах Unix?

# User@Host: debian-sys-maint[debian-sys-maint] @ localhost []
# Query_time: 0.000297  Lock_time: 0.000220 Rows_sent: 0  Rows_examined: 0
SET timestamp=1539924163;
select count(*) into @discard from `information_schema`.`EVENTS`;

5) mysqlbinlog может использоваться для преобразования двоичного журнала в удобочитаемый формат. Есть ли способ, где я могу преобразовать двоичный файл и переслать его в системный журнал без написания какого-либо специального сценария? Есть ли способ в MySQL или Rsyslog?

1 ответ

1) Журнал ошибок автоматически перенаправляется в журнал событий в Windows. Как переслать другие журналы в журнал событий?

В MySQL нет возможности сделать это.

2) Можно ли преобразовать многострочные журналы mysql в одну строку.

Вы не можете изменить формат журнала медленных запросов без изменения исходного кода MySQL. Это жестко запрограммировано:

  ...
  if (my_b_printf(&log_file,
                  "# Query_time: %s  Lock_time: %s"
                  " Rows_sent: %lu  Rows_examined: %lu\n",
                  query_time_buff, lock_time_buff,
                  (ulong)thd->get_sent_row_count(),
                  (ulong)thd->get_examined_row_count()) == (uint)-1)
    goto err;
  ...

И далее для остальных строк для каждого запроса регистрируется.

Но вы можете получить соответствующую информацию о производительности запросов из PERFORMANCE_SCHEMA, и вы даже можете получить сводки по типу запроса. Есть свои преимущества и недостатки. Смотрите, например, этот блог: https://www.percona.com/blog/2014/02/11/performance_schema-vs-slow-query-log/

3) Можно ли добавить какой-либо заголовок к файлам журнала или какой-либо тег в начале каждой строки журнала, чтобы было легко определить, какой это файл журнала.

Не без изменения исходного кода.

4) В медленных журналах запросов некоторая информация комментируется. Будут ли эти строки с комментариями переданы с использованием rsyslog во всех системах Unix?

Вы не можете переслать медленный журнал запросов в системный журнал.

5) mysqlbinlog может использоваться для преобразования двоичного журнала в удобочитаемый формат. Есть ли способ, где я могу преобразовать двоичный файл и переслать его в системный журнал без написания какого-либо специального сценария? Есть ли способ в MySQL или Rsyslog?

Нет.

Но вы можете использовать mysqlbinlog инструмент для загрузки удаленных двоичных журналов как способ их резервного копирования. См. https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html

Другие вопросы по тегам