Поскольку я включил журналы mariadb для всех запросов на моем сервере, использование Netdata каждую секунду показывает мне следующие запросы:
SHOW GLOBAL VARIABLES LIKE 'max_connections'
11 Query SHOW GLOBAL STATUS
11 Query commit
Я должен сказать, что это не помогает мне вкладывать средства в то, что происходит на сервере, потому что это загрязняет мои журналы.
Есть ли способ избежать регистрации такого рода запросов каждую секунду?
Хотя это наверное разумнее указать точную проблему с вашей базой данных вместо того, чтобы пытаться очистить журнал (Я бы предложил использовать для этого grep или sed). Но вот продуманное решение, которое решит вашу проблему с логированием раз и навсегда.
Мы будем перенаправлять журналы mysql в канал fifo, который будет считываться и фильтроваться с помощью syslog-ng.
Для этого перейдите в папку, в которой хранится файл общего журнала, удалите / переименуйте исходный журнал и создайте на его месте канал fifo с помощью команды:
mkfifo mysql-general.log
проверьте свой my.cnf, который должен указывать на этот файл:
[mysqld]
general-log-file = /path/to/your/log/mysql-general.log
Затем настройте свой /etc/syslog-ng/syslog-ng.conf
(centos 7 на самом деле потребует сначала его установить), чтобы прочитать канал FIFO и при необходимости отфильтровать его при записи результата в окончательный файл ..
Вот пример конфигурации, которая соответствует вашим потребностям:
source s_mysql_general_log { pipe("/path/to/your/log/mysql-general.log" program_override("mysql-general-log")); };
filter f_mysql_general_log { not match("^SHOW GLOBAL VARIABLES LIKE 'max_connections'") and not match("^11 Query SHOW GLOBAL STATUS") and not match("^11 Query commit"); };
destination d_mysql_general_log { file("/var/log/mysql-general.log"); }
log { source(s_mysql_general_log); filter(f_mysql_general_log); destination(d_mysql_general_log); flags(final); };
В результате вы получите /var/log/mysql-general.log
файл, без вопросов, которые вам не нравятся ... Я постараюсь опубликовать версию этого решения только для systemd чуть позже