18
Путь мониторинга модульность, гибкость, devops

Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

  • Upload
    ontico

  • View
    444

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Путь мониторингамодульность, гибкость, devops

Page 2: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Ghbdtn!

• Всеволод Поляков

• Lead DevOps Grammarly

• поддержка около 30 сервисов на Java, erlang, python, lisp, ruby, js силами 4-х админов

Page 3: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)
Page 4: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Чего мы хотим?• Получать сообщения о проблемах

• Не получать сообщения когда проблем нет

• Помощь в поиске проблемы

• Предупреждение о возможных проблемах

• Не пропускать проблемы

Page 5: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

DevOps

• Разработчики знают сервис лучше чем опсы

• Нет батлнека в опс команде

• Повышается скорость работы

Page 6: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Почему старое плохо?

• Свои сложные концепции

• Сложно для девелоперов

• Содержит в себе все что может пригодиться, а может и не пригодиться

• Две системы управления конфигурацией

Page 7: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Метрики

• env.role.node_name.metric

• Приложение пишет метрики в statsd

• Система пишет метрики в statsd

• Агрегируем и чекаем сами, без приложения

Page 8: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Пожелания• Простота добавления метрик и проверок по ним

• Должно скейлиться и не падать

• Хранить информацию по метрикам как можно дольше

• Хранить много метрик

• Разработчики мониторят свои сервисы без участия опсов

Page 9: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

• Логи: 300 Gb/день

• Метрики: 120 000, обновляются раз в 10 секунд

• 300 проверок состояний

• Разработчики всех сервисов отвечают за мониторинг

• Занятость команды админов в мониторинге минимальна

Page 10: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Sensu

Page 11: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

influx

• Маленькая база на go ~ 20mb RAM

• Локальная база на каждом сервере

• Хранилище метрик на два дня

Page 12: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Сбор метрик в ноде

Page 13: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Глобальное хранилище

Page 14: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

скрин графаны

Page 15: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Логи

• Общий формат для всех сервисов: json

• Текстовый файл с logrotate

Page 16: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Мониторинг фронтенда

• Логи → nginx → logstash

• Метрики → nginx → агрегатор → statsd

• Плагин для логстеша, разворачивает сорсмап

Page 17: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Слайд по всяким штукам

• 500-е, уникальные юзеры

• разработчики сами все мониторят и просыпаются ночью

• сравнение времени обработки чего-то в фронтенде и на бекенде

• сквозной userID по всем сервисам

Page 18: Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

Над чем мы думаем

• Мониторинг безымянных серверов

• Хранение метрик приложений в mesos\kubernetis окружениях