Puppet/Ansible перед разворачиванием сервера на каждый вид вещей которые надо замониторить? Как у вас построен этот процесс?(graphite+grafana+moira)
смотря чем мониторить
TL:DR Для управления триггерами и нотификациями как кодом, мы использованием подходы завязанные на CI/CD. А именно: У нас есть декларативное описание триггеров и нотификаций который называется alert.yaml. Мы храним эти alert.yaml в гите, и раскатываем описанные в них триггеры и нотификации через Teamcity, используя самописную-обертку "alert-autoconf" над moira-client(opensource) . Для сервисов - в момент генерации нового сервиса мы создаем alert.yaml, с базовым набором триггеров, и подкладываем его в репу этого нового сервиса. Так же в момент генерации сервиса создается сборка этого сервиса и выкатка его в Teamcity, где одним из шагов является выкатка содержимого alert.yaml в Мойру. Все подписки создаваемые таким образом принадлежат системному пользователю, и если кто-то решит уволиться, то его алерты не уволятся вместе с ним. Для инфраструктурных команд - где у ребят нет каких-то выделенных сервисов: Для таких команд мы подготовили отдельный репозиторий Alerting, и в нем организовали структуру хранения alert.yaml: $team/[$service,$system,$any]/alert.yaml, и на все эти alert.yaml создаем отдельные сборки в Teamcity, которые следят за изменениями в директориях этих файлов. При получении PR с изменением какого-то файла, стартует авто-тестирование этого alert.yaml. после чего изменения можно будет вмержить. После мержа, запускается выкатка содержимого alert.yaml в прод.
Обсуждают сегодня