Серверы и деплой

Как подключить сервер к мониторингу без входящих портов

Установка агента одной командой, что он присылает, откуда берутся инциденты и почему платформе не нужны ни ключи от сервера, ни открытые порты.

Александр ЦапковОбновлено 10 сентября 20263 мин
Схема: ваш сервер исходящим запросом идёт за заданием к платформе, обратного канала нет

Сервер подключается одной командой, выполненной по SSH вами. Платформа к серверу не подключается — ни при установке, ни потом.

Что понадобится

  • сервер с Linux и Docker, от 2 ГБ оперативной памяти;
  • доступ к нему по SSH — свой собственный, чтобы выполнить одну команду;
  • ничего больше: ни открытых входящих портов, ни белого списка адресов.

Шаг 1. Добавьте сервер

Проект → Мониторинг → Серверы → Подключить сервер. Введите понятное название — «Продакшн», «Песочница», имя клиента.

Дальше два пути:

  • Вручную — команда на сервере. Платформа покажет команду установки с одноразовым ключом. Копируете, выполняете у себя по SSH.
  • По SSH — автоматически. Пароль используется один раз при установке и не сохраняется.

Ключ показывается один раз и живёт 60 минут. Восстановить его нельзя: если потеряли — подключайте сервер заново.

Шаг 2. Выполните команду на сервере

Установщик создаёт на сервере пару ключей, регистрирует его и запускает фоновую службу. Закрытая часть ключа остаётся на вашем сервере и не передаётся никуда, включая нас.

Через минуту сервер в интерфейсе станет активным. Первые метрики приходят следующим тактом.

Шаг 3. Укажите, что проверять

Кроме метрик хоста агент опрашивает адреса проверок здоровья ваших приложений — с самого сервера, изнутри. Это отличается от внешней проверки доступности: внешняя отвечает на вопрос «видно ли снаружи», внутренняя — «жив ли процесс». Обе нужны, и они ловят разные отказы.

Что показывает мониторинг

  • процессор, память, диск;
  • контейнеры Docker и их состояние;
  • задержку на проверках здоровья;
  • историю по каждому показателю.

Откуда берутся инциденты

Инцидент открывается сам, без вашего участия, в трёх случаях: пропал сигнал от агента, кончается диск, упал контейнер. Участникам проекта уходит письмо со ссылкой на карточку.

«Пропал сигнал» здесь — полноценное событие, а не пробел в графике. Сервер, который перестал отвечать, и сервер, о котором нет данных, для дежурного одно и то же.

Почему агент не требует входящих портов

Агент работает по pull-модели: он сам обращается наружу за заданием и присылает результат. Обратного канала нет — платформа не может постучаться на ваш сервер, даже если бы захотела.

Практическое следствие: компрометация платформы не даёт выполнения команд на ваших серверах. Это не обещание в договоре, а свойство схемы — команды некуда доставить.

Отсюда же второе: у нас нет ваших SSH-ключей. Их негде взять — при установке ключи создаёт сам сервер, а секреты развёртывания оператор платформы не читает по устройству хранилища, а не по регламенту.

Что дальше

Полное описание раздела — Мониторинг серверов и Docker.

Мониторинг серверов и DockerАгент на сервере присылает метрики процессора, памяти, диска и контейнеров.

Автор

Александр ЦапковОснователь Скоупворк

Веду платформу и её боевой контур сам: разработка, выкат, дежурство. Пишу о том, на чём мы обожглись, — с датами, замерами и ссылками на решения в репозитории.