К содержанию
Pingera

Инструкция по ICMP, TCP и DNS проверкам в Pingera

  • Опубликовано:
  • Обновлено
  • 5 мин чтения
Инструкция по ICMP, TCP и DNS проверкам в Pingera

Мы в Pingera осознаем, что веб-приложение — это лишь вершина айсберга. Под ней лежит ИТ-инфраструктура, надежность которой определяет доступность сервиса в целом. В дополнение к нашим синтетическим и веб-проверкам, пользователи могут отслеживать свои DNS-серверы, TCP-сервисы и проверять базовую доступность серверов с помощью ICMP.

В этой статье мы дадим краткие технические рецепты для этих проверок, объясним, для каких задач лучше всего подходит каждая из них, и покажем, как получить максимальную пользу, используя их через API или CLI.

ICMP: Проверка базовой сетевой доступности (Ping)

Начнем с ICMP (Internet Control Message Protocol) — протокола, знакомого многим по утилите ping. Наши серверы проверок отправляют ICMP echo запросы к вашим хостам и замеряют время ответа и процент потери пакетов.

Когда использовать ICMP?

ICMP проверяет базовую доступность вашего хоста на сетевом уровне. Он не скажет вам, работает ли веб-сервер, но ответит на вопрос: «Достижим ли этот IP-адрес?». Это фундаментальный инструмент для:

  • Мониторинга сетевых устройств: Проверка доступности маршрутизаторов, файрволов, или балансировщиков.
  • Измерения сетевой задержки: Отслеживание времени отклика для выявления проблем в сети.
  • Диагностики потери пакетов: Обнаружение нестабильности сетевого соединения.

Технические детали и пример API

Pingera позволяет детально настроить ICMP-проверку, контролируя количество отправляемых пакетов (probe_count), интервал и таймаут для каждого запроса. Ключевой элемент — это условие (assertion) по максимальной потере пакетов, которое позволяет пометить проверку как неуспешную, даже если хост доступен, но сеть нестабильна.

Пример: Высокочастотная ICMP-проверка с контролем потери пакетов

Для детального анализа сети можно отправлять больше пакетов с меньшим интервалом, устанавливая порог потери, например, в 25%.

Создать регулярную проверку ICMP (API)

curl -X POST -H "Authorization: API_TOKEN" -d
'{
"type": "icmp",
"host": "example.com",
"parameters": {"probe_count": 20, "probe_interval": 0.1, "assertions": {"max_packet_loss": 25}},
"name": "new ICMP check"
}'
https://api.pingera.ru/v1/checks

Создать регулярную проверку ICMP (CLI)

pngr checks create --name 'icmp-from-pngr' --host 8.8.8.8 --parameters '{"probe_count": 20, "probe_interval": 0.1, "assertions": {"max_packet_loss": 25}}' --type icmp

Выполнить проверку ICMP (API)

curl -X POST -H "Authorization: API_TOKEN" -d
'{
"type": "icmp",
"host": "example.com",
"parameters": {"probe_count": 20, "probe_interval": 0.1, "assertions": {"max_packet_loss": 25}},
}'
https://api.pingera.ru/v1/checks/execute

Получите результат в /v1/checks/jobs/{job_id}

Выполнить проверку ICMP (CLI)

pngr checks run custom --host 8.8.8.8 --parameters '{"probe_count": 20, "probe_interval": 0.1, "assertions": {"max_packet_loss": 25}}' --type icmp

Читайте больше в документации.

TCP: Глубокая проверка сервисов по порту

TCP (Transport Control Protocol) — основа интернета, протокол, на котором работает большинство ключевых сервисов: HTTP, SMTP, SSH, FTP и многие другие.

С TCP-проверками от Pingera вы можете не только убедиться в успешном тройном рукопожатии (установке соединения), но и сымитировать взаимодействие с сервисом: отправить данные в сокет и валидировать ответ.

Когда использовать TCP-проверки?

TCP-проверки выходят за рамки HTTP и помогают оценить доступность критически важных, но невидимых для обычных веб-проверок, сервисов:

  • Почтовые серверы (SMTP/POP3/IMAP): Проверка, что сервер принимает соединения и отвечает на базовые команды, например, HELO для SMTP.
  • SSH-серверы (порт 22): Контроль доступности для удаленного подключения.
  • Кастомные TCP-сервисы: Любое ваше приложение, которое слушает TCP-порт. Можно отправить специальный запрос для проверки статуса.
  • Базы данных: Хотя прямой доступ к БД извне не рекомендуется, TCP-проверка может подтвердить доступность балансировщика перед кластером.

Технические детали и пример API

Ключевые параметры TCP-проверки — это хост и порт. Для продвинутого мониторинга можно настроить отправку текста в сокет после установки соединения.

Пример: Проверка доступности SMTP-сервера

Создать регулярную проверку TCP/SMTP (API)

curl -X POST -H "Authorization: API_TOKEN" -d
'{
"type": "tcp",
"host": "smtp.example.com",
"port": 467,
"parameters": {"send_text": "EHLO client.example.com", "search_text": "Hello"},
"name": "new TCP check"
}'
https://api.pingera.ru/v1/checks

Создать регулярную проверку TCP/SMTP (CLI)

pngr checks create --name 'smtp-check' --host smtp.example.com --port 467 --parameters '{"send_text": "EHLO client.example.com", "search_text": "Hello"}' --type tcp

Выполнить проверку TCP/SMTP (API)

Выполниить проверку и получить job ID в ответ:

curl -X POST -H "Authorization: API_TOKEN" -d
'{
"type": "tcp",
"host": "smtp.example.com",
"port": 467,
"parameters": {"send_text": "EHLO client.example.com", "search_text": "Hello"},
}'
https://api.pingera.ru/v1/checks/execute

Получите результат в /v1/checks/jobs/{job_id}

Выполнить проверку TCP/SMTP (CLI)

Выполнить проверку с pngr и сразу получить результат:

pngr checks run custom --host smtp.example.com --port 467 --parameters '{"send_text": "EHLO client.example.com", "search_text": "Hello"}' --type tcp

Читайте больше в документации.

DNS: Валидация доменных имен

DNS (Domain Name System) — критически важный компонент, поскольку проблемы с ним часто приводят к полной недоступности сервисов.

DNS-проверки позволяют отслеживать корректность работы DNS-сервера и валидировать DNS-записи. Вы можете проверять не только базовые A/AAAA записи, но и MX, TXT, CNAME, NS и другие.

Когда использовать DNS-проверки?

  • Валидация записей: Контроль соответствия DNS-ответов ожидаемым значениям после миграции или изменения конфигурации.
  • Мониторинг MX-записей: Убедитесь, что почтовые серверы корректно настроены для приема почты.
  • Проверка TXT-записей: Контроль записей для SPF, DKIM, DMARC, которые влияют на безопасность и доставляемость email.
  • Проверка авторитетных NS-серверов: Контроль корректности делегирования домена.

Технические детали и пример API

Pingera поддерживает два ключевых режима валидации ожидаемых ответов:

  1. contains_all (по умолчанию): Все ожидаемые записи должны присутствовать в ответе, но дополнительные записи допускаются.
  2. exact: Ответ должен содержать строго указанные записи, без дополнительных. Идеально подходит для критических записей, которые не должны меняться.

Создать регулярную проверку DNS (API)

curl -X POST -H "Authorization: API_TOKEN" -d
'{
"type": "dns",
"host": "example.com",
"timeout": 5,
"parameters": {
"record_type": "A",
"expected_answers": ["93.184.216.34"]
},
"name": "new DNS A-record check"
}'
https://api.pingera.ru/v1/checks

Создать регулярную проверку DNS (CLI)

pngr checks create --name 'dns-check-a-record' --host example.com --timeout 5 --parameters '{"record_type": "A", "expected_answers": ["93.184.216.34"]}' --type dns

Выполнить проверку DNS (API)

Выполниить проверку и получить job ID в ответ:

curl -X POST -H "Authorization: API_TOKEN" -d
'{
"type": "dns",
"host": "example.com",
"parameters": {
"record_type": "A",
"expected_answers": ["93.184.216.34"]
}
}'
https://api.pingera.ru/v1/checks/execute

Получите результат в /v1/checks/jobs/{job_id}

Выполнить проверку DNS (CLI)

pngr checks run custom --host example.com --parameters '{"record_type": "A", "expected_answers": ["93.184.216.34"]}' --type dns

Читайте больше в документации.

Заключение

ICMP, TCP и DNS-проверки — это фундаментальный набор инструментов для проактивного мониторинга инфраструктуры. Они позволяют выявлять проблемы на самых низких уровнях сетевого стека, до того как они затронут веб-приложения или конечных пользователей.

Интеграция этих проверок в ваши CI/CD пайплайны через API или CLI Pingera позволяет автоматизировать контроль и обеспечить надежность вашего сервиса 24/7.

Готовы обеспечить полный контроль над своим периметром? Создайте свою первую инфраструктурную проверку на app.pingera.ru!

Читайте также

Проверки · Новости

Cron-расписание для Проверок в Pingera

Запуск проверок Pingera по расписанию cron. Настраивайте мониторинг под бизнес-логику: рабочие часы, старт после бэкенд-задач или проверки в начале месяца.

  • Опубликовано:
  • Обновлено
  • 2 мин чтения

Новости · Проверки

Добавили три новых региона для проверок

Pingera добавила 3 новые локации для мониторинга: Йоханнесбург, Сан-Паулу и Гонконг. Это критически важно для SRE и DevOps, работающих с рынками Африки, Латинской Америки и Азии.

  • Опубликовано:
  • Обновлено
  • 2 мин чтения