Мониторинг Salt
Тема дорожной карты · SaltStack
Salt управляет всей инфраструктурой, поэтому его саму нужно мониторить так же тщательно, как и продакшен-сервисы. Мониторинг Salt включает три аспекта: проверка работоспособности контура управления (мастер и миньоны), отслеживание состояния заданий (успехи, падения states, время выполнения) и мониторинг состояния узлов. Для этого Salt предоставляет встроенные механизмы: шина событий, returners и beacons. Шина событий собирает все события системы, returners направляют результаты заданий во внешние системы, а beacons собирают локальные события ОС на миньонах и отправляют их на шину. Эти механизмы обеспечивают наблюдаемость и способствуют самовосстановлению.
Как это работает
Все действия Salt порождают события на шине мастера: подключения миньонов, приём ключей, публикация заданий, возвраты результатов. Для просмотра потока событий в реальном времени используйте команду salt-run state.event pretty=True. Это первый инструмент для отладки проблем с выполнением заданий. Опция event_return в конфиге мастера направляет копию событий в выбранный returner, что позволяет сохранять историю событий во внешнем хранилище. Returners также решают задачу отправки результатов заданий: команда salt '*' state.apply --return <имя_returner'а> отправляет результаты не только на мастер, но и во внешнюю систему. В каталоге returner'ов есть десятки модулей для различных баз данных, мессенджеров и систем алертинга. Beacons на миньонах периодически проверяют условия (например, использование памяти, статус сервиса или изменения файлов через inotify) и публикуют события на шину. Связка beacon → reactor обеспечивает автоматическое восстановление: если сервис упал, событие активирует reactor, который запускает state для восстановления сервиса. Живость парка можно проверить командой salt-run manage.status, которая показывает списки up/down на основе последних контактов миньонов.
Когда применять
Минимальный уровень мониторинга для продакшена включает системный мониторинг процессов salt-master и salt-minion, а также портов 4505 и 4506, и регулярную проверку salt-run manage.down для выявления отвалившихся миньонов. Следующий уровень — история заданий во внешней системе через returner или event_return. Без этого вопрос «что сломало ночной highstate» превращается в трудоёмкие раскопки job cache на мастере. Beacons следует включать для условий, которые важно ловить именно на узле и быстро, например заполнение диска, падение критичного сервиса или изменение защищаемого файла. Полноценный APM для Salt не обязателен, но связка «события в хранилище + алерты на падения states + manage.down по расписанию» закрывает большинство реальных инцидентов.
Типичные ошибки
Первая ошибка — мониторинг только процесса мастера: демон может быть жив, но воркеры перегружены, и миньоны ловят таймауты. Следите за симптомами (время test.ping, доля неответивших), а не только за наличием процесса. Вторая ошибка — event_return во внешнюю систему без оценки объёма: шина большого парка генерирует плотный поток событий, и медленный returner может тормозить мастера. Фильтруйте, что записывать. Третья ошибка — beacons с коротким интервалом и тяжёлой проверкой: датчик сам создаёт нагрузку, которую призван ловить. Четвёртая ошибка — доверие manage.status как истине в последней инстанции: он опирается на последние контакты миньонов, и «up» не гарантирует, что миньон исполнит задание. Контрольный test.ping надёжнее. Пятая ошибка — отсутствие алертов на непринятые ключи: новый узел «не работает», хотя просто ждёт salt-key -a.
Связанные понятия
Полезные ресурсы
🔤 Английские термины в этой теме
Слова из этой темы, которые русскоязычные часто произносят неверно. Кнопка 🔊 произносит голосом браузера.
- caught /kɔːt/ gh немое, как *cot* разбор: Читаем стектрейсы: exception, caused by, at line
- maintenance /ˈmeɪntənəns/ первый, «мейнтэнэнс», не «мейнтЕнанс» разбор: Немые буквы и ударение: cache, queue, suite, height
- usage /ˈjuːsɪdʒ/ «Юсидж», с глухим «с» разбор: Пишем README и документацию на английском
- event /ɪˈvɛnt/ ударение на второй слог разбор: Немые буквы и ударение: cache, queue, suite, height
- infrastructure /ˈɪnfrəstrʌktʃər/ ударение на первый слог разбор: Немые буквы и ударение: cache, queue, suite, height