У меня "проблема" с моей конфигурацией Monit. Мониторинг работает должным образом, но я получаю следующие ошибки в файле ошибок mysql /var/log/mysql/error.log
каждый раз, когда запускается сценарий мониторинга:
190821 10:47:49 [Warning] Access denied for user ''@'localhost' (using password: NO)
190821 10:48:19 [Warning] Access denied for user ''@'localhost' (using password: NO)
190821 10:48:49 [Warning] Access denied for user ''@'localhost' (using password: NO)
190821 10:49:19 [Warning] Access denied for user ''@'localhost' (using password: NO)
190821 10:49:49 [Warning] Access denied for user ''@'localhost' (using password: NO)
Вот мой файл конфигурации monit:
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group database
group mysql
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host localhost port 3306 protocol mysql then alert
depend mysql_bin
depend mysql_rc
check file mysql_bin with path /usr/sbin/mysqld
group mysql
include /etc/monit/templates/rootbin
check file mysql_rc with path /etc/init.d/mysql
group mysql
include /etc/monit/templates/rootbin
Есть ли способ указать имя пользователя и пароль для проверок monit, чтобы предотвратить появление этих предупреждений в журнале ошибок?
Это мониторинг, пытающийся подключиться к вашему экземпляру MySQL как анонимный пользователь. Либо вы создаете анонимного пользователя (не рекомендуется), либо в соответствии с официальная документация:
MYSQL
Синтаксис:
PROTOCOL MYSQL [USERNAME string PASSWORD string]
ИМЯ ПОЛЬЗОВАТЕЛЯ Имя пользователя MySQL (максимум 16 символов).
ПАРОЛЬ Пароль MySQL (можно использовать специальные символы, но для не буквенно-цифровых символов пароль должен быть заключен в кавычки).
Имя пользователя и пароль (учетные данные) по желанию и если не установлен, Monit выполнит тест, используя анонимный вход. Это может привести к регистрации ошибки аутентификации в вашем журнале MySQL, в зависимости от вашей конфигурации MySQL.
Если учетные данные установлены, Monit войдет в систему и выполнит ping-тест MySQL. Monit не требует никаких привилегий базы данных, ему просто нужен пользователь базы данных. Возможно, вы захотите создать отдельного пользователя для Monit, который будет использовать его при тестировании, например:
CREATE USER 'monit'@'host_from_which_monit_performs_testing' IDENTIFIED BY 'mysecretpassword'; FLUSH PRIVILEGES;
Пример:
check process mysql with pidfile /var/run/mysqld/mysqld.pid start program = "/sbin/start mysql" stop program = "/sbin/stop mysql" if failed port 3306 protocol mysql username "foo" password "bar" then alert