Назад | Перейти на главную страницу

Monit: добавить имя пользователя и пароль для проверки mysql

У меня "проблема" с моей конфигурацией 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