Есть ли какая-нибудь настройка для monit или другой способ контролировать, может ли один сервер получить доступ к mysql на другом сервере?
Я пробовал это с помощью monit, но, как вы, наверное, знаете, после 10 попыток mysql блокирует сервер.
check host db1.server with address db1.server
if failed port 3306 protocol mysql then alert
.
mysqli: host <host> is blocked because of many connection errors; unblock with mysqladmin flush-hosts
редактировать (всего новый ответ)
Я немного погуглил об этой проблеме и нашел подсказку:
Кажется, что MySql
не очень нравится, когда:
Таким образом, обходным путем может быть выполнение настоящего MySql
подключение и запустите запрос.
Вот способ сделать это. Вам нужно будет установить mysql-client
на сервере мониторинга и предоставить правильный доступ на сервере MySql.
Monit
проверьте настройку:
check program mysql with path "/root/mysql_check.sh"
if status != 0 then alert
Сценарий mysql_check.sh
:
#!/bin/sh
mysql -u<user> -p<password> --host=xx.xx.xx.xx <<END
SHOW VARIABLES LIKE "%version%";
END
Сценарий mysql_check.sh
также должно быть действительным для пользовательского Nagios
чек.
Я успешно протестировал это (значит, можно запустить запрос удаленно), но, поскольку я не могу воспроизвести blocked host
проблема на моем MySql 5.5
сервер, я не могу сказать, действительно ли это решает проблему.
Попробуйте и скажите, каков результат.
Мои ссылки: