Мы в 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%.
Читайте больше в документации.
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-сервера
Читайте больше в документации.
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 поддерживает два ключевых режима валидации ожидаемых ответов:
- contains_all (по умолчанию): Все ожидаемые записи должны присутствовать в ответе, но дополнительные записи допускаются.
- exact: Ответ должен содержать строго указанные записи, без дополнительных. Идеально подходит для критических записей, которые не должны меняться.
Читайте больше в документации.
Заключение
ICMP, TCP и DNS-проверки — это фундаментальный набор инструментов для проактивного мониторинга инфраструктуры. Они позволяют выявлять проблемы на самых низких уровнях сетевого стека, до того как они затронут веб-приложения или конечных пользователей.
Интеграция этих проверок в ваши CI/CD пайплайны через API или CLI Pingera позволяет автоматизировать контроль и обеспечить надежность вашего сервиса 24/7.
Готовы обеспечить полный контроль над своим периметром? Создайте свою первую инфраструктурную проверку на app.pingera.ru!