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

Мониторинг: Что сообщает пинг mysqladmin?

Я пытаюсь отслеживать, работает ли наш сервер mysql. Для этого я использую следующую команду:

mysqladmin ping

Он вернет следующее:

mysqld is alive

Это просто проверяет, запущен ли процесс в данный момент, или также проверяет, принимает ли сервер соединения?

«mysqladmin ping» пытается подключиться к выбранному серверу MySQL. Фактический сервер можно указать с помощью опции -h (например, mysqladmin ping -h db.example.com), по умолчанию - localhost.

Если сервер отвечает (даже с отказом в доступе или аналогичным сообщением), предполагается, что сервер работает, и "mysqladmin ping" завершается с кодом 0.

В противном случае предполагается, что сервер не работает и существует «mysqladmin ping» с кодом 1.

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

SELECT "1";

Вашему пользователю для подключения потребуется как минимум разрешение на ИСПОЛЬЗОВАНИЕ. Это не скажет вам, есть ли какие-либо проблемы с таблицами вашей базы данных, но мониторинг вашего приложения, вероятно, скажет вам это.

Вполне возможно, что это то, что mysqladmin ping и так делает.

«вверх» - очень широкий термин. Например. он может отвечать на ping, но на самом деле у него нет свободного места на диске, или все запросы блокируются или сбой каждую секунду и автоматически перезапускаются, или все таблицы фактически помечены как сбойные или, что еще хуже, отброшены, или datadir отключен от системы и т. д.

Или это может происходить как сумасшедшая подкачка, а процессор загружен несколькими запросами, поэтому он вряд ли может сканировать, поэтому он точно не работает.

Или например он может не отвечать на пинг, например из-за ограничения количества подключений, но ваши приложения используют постоянное подключение и работают отлично.

Или например он может не отвечать на пинг, например из-за некоторых проблем с клиентом на localhost, но опять же - все приложения фактически не испытывают никаких проблем.

Итак, иногда «пинг» является правильным ответом, но вы всегда должны учитывать эти случаи, думая о том, «контролировать, работает ли сервер».