Я пытаюсь протестировать плагин check_mysql для Nagios с помощью командной строки. Он отлично работает, когда я просто проверяю localhost, но когда я пытаюсь указать другой сервер (используя аргумент -H), я продолжаю получать следующее сообщение об ошибке:
КРИТИЧЕСКИЙ - Невозможно подключиться к mysql: // nagios_user @ {remoteServerHostname} / - Доступ запрещен для пользователя 'nagios_user' @ '{localServerHostName}' (с использованием пароля: ДА)
Похоже, он пытается подключиться к базе данных с помощью сервера localhost, хотя я указал другое имя хоста. Я уже настроил этого пользователя в удаленной базе данных, и у него есть правильные разрешения. Я просто пытаюсь понять, почему сценарий продолжает вставлять имя локального сервера вместо удаленного.
По умолчанию сервер MySQL запрещает доступ клиентам с IP-адресами, отличными от адреса сервера. Чтобы обойти это, запустите на своем сервере следующую команду:
# mysql -u root
mysql> grant select on [DB name you're checking].* to 'nagios_user'@'[Nagios server IP address or hostname]' identified by '[password for nagios_user]';
mysql> flush privileges;
Также убедитесь, что брандмауэр вашего сервера MySQL разрешает доступ с вашего сервера Nagios через порт сервера MySQL (по умолчанию 3306).
В итоге я использовал NRPE с плагином, который решил мою проблему с подключением.