Лучший способ определить, является ли какой-либо удаленный сервис живым, - попросить его обработать запрос так, как он предназначен - фактически это единственный способ действительно узнать, что что-то работает правильно.
В качестве примера, я всегда получаю, чтобы мои балансировщики нагрузки получали реальный ответ «голова» от наших веб-серверов, вы можете сделать то же самое для небольшого выбора в блоке БД, если хотите, или любого другого действующего сервера. В качестве подсказки вы можете создать «online.txt» (или любое другое имя, которое вы хотите дать ему) на своих веб-серверах, чтобы ваши LB пытались получить этот файл, а в случае неудачи он удаляет сервер из VIP, это отличный способ вручную вывести отдельные серверы из ваших VIP-пользователей, просто переименовав один файл.
Ping только проверяет способность реагировать на пинги, так что это базовая ОС, части стека IP и физические ссылки - но это все, все остальное может быть недоступно, и вы не будете знать.
Я знаю, что это упомянуто ниже, но это повторяется снова и снова.
Эхо-запросы ICMP (также называемые «Pings») (иначе ICMP Type 8) встроены в спецификацию стека IP, да, но их не нужно ни внедрять, ни использовать. На самом деле, существует большое количество интернет-провайдеров, которые отказываются переадресовывать их и молча отбрасывают эти запросы, так как они являются формой сетевой атаки (называемой pingflood).
Как упомянуто выше, это обрабатывается ОС (в частности, на уровне сетевого стека) и, таким образом, зависит от конфигурации ОС, реагировать на них или нет. Если это отключено (мера безопасности?), Вы ничего не можете сделать с получением ответов ping с другого конца. Вот почему это не надежно.