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

Как контролировать сокет MySQL с помощью icinga2

Я хотел бы контролировать свой сервер MySQL с помощью icinga2, как показано в заголовке выше. Мой сервер MySQL использует сокет unix. Я пробовал следующее:

object Service "MYSQL" {
    import "generic-service"
    check_command = "mysql"
    vars.mysql_query_hostname = "/var/run/mysqld/mysqld.sock"
    vars.mysql_ignore_auth = true
    vars.mysql_port = 6800
    host_name = "mysql.server"
    }

и я перезапускаю службу icinga2. Когда я проверяю из сети icinga2, у меня возникает следующая ошибка службы MySQL: Выходные данные плагина Не удается подключиться к серверу MySQL на '192.168.2.4' (111)

Кажется, что icinga2 не может проверить службу MySQL с помощью сокета unix. Что-то не так с конфигурацией, которую я использую?

РЕДАКТИРОВАТЬ 1: Итак, я установил icinga2 на клиенте и настроил его как сателлит. Я читал, что агент icinga2 - это элегантный способ мониторинга сервисов удаленного сервиса. Поскольку эта настройка останется, я готов потратить время и усилия, чтобы настроить все правильно.

На сервере /etc/icinga2/conf.d/services.conf

apply Service "MySQL" {
import "generic-service"
check_command = "mysql"
command_endpoint = host.vars.client_endpoint
assign where host.vars.client_endpoint == "client1.example.com"
}

/etc/icinga2/conf.d/hosts.conf

object Host "client1.example.com" {
import "generic-host"
address = "192.168.2.4"
vars.client_endpoint = "client1.example.com"
vars.mysql_hostname = "/var/run/mysqld/mysqld.sock"
}

На клиенте я установил необходимый плагин «check_mysql», и icinga2 запущен. Когда я проверяю через веб-интерфейс icinga2, я все равно получаю следующий вывод подключаемого модуля: Вывод подключаемого модуля Не удается подключиться к серверу MySQL на «192.168.2.4» (111) Кажется, что он все еще проверяет через TCP. Что я делаю не так?

Icinga2 работает на том же сервере, что и ваша служба MySQL? В этом случае у вас будет проблема в вашей команде. Можете ли вы вставить подробную информацию о вашей команде в свой вопрос.

В другом случае, чтобы протестировать сокет Unix для mysql, который не прослушивает порт TCP, вы должны использовать NRPE или SSH для подключения к вашему серверу mysql и проверить службу. Результат будет отправлен на ваш сервер icinga2.

РЕДАКТИРОВАТЬ 1:

Если вы хотите протестировать службу, у которой нет слушателя в сети на удаленном сервере, вы можете использовать несколько вещей:

  1. check_by_ssh

При этом вы сможете выполнять удаленные команды на своем удаленном сервере, и ответ на эту команду будет отправлен на ваш сервер icinga2. Это решение устанавливает конфигурацию ssh между вашими серверами.

  1. NRPE

В противном случае вы можете установить NRPE на удаленном сервере и выполнять команды, результаты которых будут отправлены на ваш сервер icinga2.

NRPE можно запускать в Windows или Linux.

Я думаю, что эти два решения проще, чем установка icinga2 в качестве сателлита на все ваши серверы для наблюдения.