Девопс не горит — канал про инфраструктуру, Kubernetes, Observability и Platform Engineering. Продакшен, интересные инструменты, инженерные грабли и немного конференционной движухи. Иногда всё-таки горит =)
Связаться с автором - @mrgreyves
Post #127
209
Коллеги, всем привет! =)
Открываю рубрику «Мама, твой сын вайб-кодер!» =)
У меня давно в голове крутилась идея сделать некоторого агента мониторинга, который бы периодически проверял «соседей» и сам им говорил, что с ним все ок
У вас может возникнуть резонный вопрос: а зачем все это?
Отвечая словами поэта - «Все переплетено»
Инфраструктурные домены, про которые я много раз рассказывал в своих докладах, ооочень сильно связаны друг с другом, и нам важно знать, что у соседей все хорошо =)
Причем важно знать это в обе стороны
Из этой проблемы/идеи и появился «Привет, сосед!» =)
«Привет, сосед!», или hello-neighbor, решает достаточно простую задачу — следит за тем, что с соседними инфраструктурными доменами все в порядке
Вы можете задать вопрос: у нас же есть blackbox-exporter, настрой его и не парься
И в некотором роде вы будете правы =)
Blackbox-exporter прекрасно отвечает на вопрос: «Могу ли Я достучаться до X?»
Но мне хотелось отвечать еще на один вопрос: «А может ли X достучаться до МЕНЯ?»
Потому что связность не всегда симметрична
Мы можем прекрасно ходить в соседний инфраструктурный домен, а он к нам — уже нет Где-нибудь поменяли ACL, настройки огнестенки, маршрутизацию — иии привет =)
Отсюда и появилась идея сделать проверку именно между соседями
Каждый hello-neighbor одновременно клиент и сервер: сам ходит к соседям и запоминает тех, кто приходит к нему
Причем для входящих соседей работает автоматическое обнаружение — достаточно, чтобы сосед хотя бы один раз пришел к нам, после чего мы его запомним и начнем следить, не пропал ли он
Получается примерно так:
domain-A → domain-B — работает
domain-B → domain-A — НЕ работает
И мы об этом узнаем =)
Ручная конфигурация тоже никуда не делась. Список соседей можно заполнить в любимом нами YAML-формате и раскатить при помощи GitOps хоть вообще на все инфраструктурные домены =)
На выходе получаем метрики в формате Prometheus и готовые алерты на всякие неприятные ситуации:
- сосед перестал ходить к нам;
- мы перестали ходить к соседу;
- связь стала асимметричной;
- изменился сетевой маршрут.
Ну и дополнительная КИЛЛЕР-ФИЧА — ICMP-диагностика =)
Кроме HTTP-проверок можно отдельно смотреть RTT, потерю пакетов и количество хопов до соседа
Причем HTTP и ICMP специально живут отдельно
ICMP может быть запрещен совершенно легально, поэтому его проблемы никак не делают соседа «мертвым»
А вот изменение количества хопов уже интереснее
Если вчера до соседа было 5 хопов, сегодня стало 9, а latency внезапно выросла — кажется, у нас появилась зацепка, куда смотреть =)
Можно включить и полноценный traceroute, чтобы посмотреть, как именно изменился путь.
Репозиторий доступен по ссылке
Enjoy =)
PS1 — пойду, что ли, разверну его где-нибудь =)
PS2 — с пожеланиями/предложениями приходите в репозиторий или приносите свой PR =)
Открываю рубрику «Мама, твой сын вайб-кодер!» =)
У меня давно в голове крутилась идея сделать некоторого агента мониторинга, который бы периодически проверял «соседей» и сам им говорил, что с ним все ок
У вас может возникнуть резонный вопрос: а зачем все это?
Отвечая словами поэта - «Все переплетено»
Инфраструктурные домены, про которые я много раз рассказывал в своих докладах, ооочень сильно связаны друг с другом, и нам важно знать, что у соседей все хорошо =)
Причем важно знать это в обе стороны
Из этой проблемы/идеи и появился «Привет, сосед!» =)
«Привет, сосед!», или hello-neighbor, решает достаточно простую задачу — следит за тем, что с соседними инфраструктурными доменами все в порядке
Вы можете задать вопрос: у нас же есть blackbox-exporter, настрой его и не парься
И в некотором роде вы будете правы =)
Blackbox-exporter прекрасно отвечает на вопрос: «Могу ли Я достучаться до X?»
Но мне хотелось отвечать еще на один вопрос: «А может ли X достучаться до МЕНЯ?»
Потому что связность не всегда симметрична
Мы можем прекрасно ходить в соседний инфраструктурный домен, а он к нам — уже нет Где-нибудь поменяли ACL, настройки огнестенки, маршрутизацию — иии привет =)
Отсюда и появилась идея сделать проверку именно между соседями
Каждый hello-neighbor одновременно клиент и сервер: сам ходит к соседям и запоминает тех, кто приходит к нему
Причем для входящих соседей работает автоматическое обнаружение — достаточно, чтобы сосед хотя бы один раз пришел к нам, после чего мы его запомним и начнем следить, не пропал ли он
Получается примерно так:
domain-A → domain-B — работает
domain-B → domain-A — НЕ работает
И мы об этом узнаем =)
Ручная конфигурация тоже никуда не делась. Список соседей можно заполнить в любимом нами YAML-формате и раскатить при помощи GitOps хоть вообще на все инфраструктурные домены =)
На выходе получаем метрики в формате Prometheus и готовые алерты на всякие неприятные ситуации:
- сосед перестал ходить к нам;
- мы перестали ходить к соседу;
- связь стала асимметричной;
- изменился сетевой маршрут.
Ну и дополнительная КИЛЛЕР-ФИЧА — ICMP-диагностика =)
Кроме HTTP-проверок можно отдельно смотреть RTT, потерю пакетов и количество хопов до соседа
Причем HTTP и ICMP специально живут отдельно
ICMP может быть запрещен совершенно легально, поэтому его проблемы никак не делают соседа «мертвым»
А вот изменение количества хопов уже интереснее
Если вчера до соседа было 5 хопов, сегодня стало 9, а latency внезапно выросла — кажется, у нас появилась зацепка, куда смотреть =)
Можно включить и полноценный traceroute, чтобы посмотреть, как именно изменился путь.
Репозиторий доступен по ссылке
Enjoy =)
PS1 — пойду, что ли, разверну его где-нибудь =)
PS2 — с пожеланиями/предложениями приходите в репозиторий или приносите свой PR =)
- 👍 5
- 🔥 4
- ❤ 1




