Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Путь мониторинга, DevOps club в Grammarly

1,237 views

Published on

Published in: Technology
  • Be the first to comment

Путь мониторинга, DevOps club в Grammarly

  1. 1. Путь мониторинга модульность.гибкость.devops
  2. 2. Ghbdtn! • Всеволод Поляков • Lead DevOps Grammarly • поддержка около 30 сервисов на Java, erlang, python, lisp, ruby, js силами 4-х админов
  3. 3. Чего мы хотим? • Получать сообщения о проблемах • Не получать сообщения когда проблем нет • Помощь в поиске проблемы • Предупреждение о возможных проблемах • Не пропускать проблемы
  4. 4. DevOps • Разработчики знают сервис лучше чем опсы • Нет батлнека в опс команде • Повышается скорость работы
  5. 5. Почему старое плохо? • Свои сложные концепции • Сложно для девелоперов • Содержит в себе все что может пригодиться, а может и не пригодиться • Две системы управления конфигурацией
  6. 6. Метрики • env.role.node_name.metric • Приложение пишет метрики в statsd • Система пишет метрики в statsd • Агрегируем и чекаем сами, без приложения
  7. 7. Statsd • Агрегируем сами • metric.name:1|c • каунтеры, гауджи и таймеры
  8. 8. Пожелания • Простота добавления метрик и проверок по ним • Должно скейлиться и не падать • Хранить информацию по метрикам как можно дольше • Хранить много метрик • Разработчики мониторят свои сервисы без участия опсов
  9. 9. • Логи: 300 Gb/день • Метрики: 120 000, после агрегации, обновляются раз в 10 секунд • 300 проверок состояний • Разработчики всех сервисов отвечают за мониторинг • Занятость команды админов в мониторинге минимальна
  10. 10. Sensu
  11. 11. influx • Маленькая база на go ~ 20mb RAM • Локальная база на каждом сервере • Хранилище метрик на два дня
  12. 12. Сбор метрик в ноде
  13. 13. Глобальное хранилище
  14. 14. скрин графаны
  15. 15. Логи • Общий формат для всех сервисов: json • Текстовый файл с logrotate
  16. 16. Мониторинг фронтенда Web browser Web browser Web browser Nginx x 2 Access logs Logstash Elasticsearch x 3 Statsd Graphite Graphana Kibana x 2
  17. 17. Мониторинг фронтенда metrics codec Logstash metrics data ~ 2600 RPS ~ 90 GiB / day logs data ~ 450 RPS ~ 50 GiB / day Nginx access logs statsd logs codec (source maps) elasticsearch tail *.log files UDP HTTP
  18. 18. Heka - by Mozilla • Hekad ~~ легковесный и ускоренный Logstash • Можно ставить на каждый сервер • Может объединить сбор метрик и логов
  19. 19. Heka - by Mozilla Hekad - single process, plugins by configuration Inputs Decoders Filters Encoders Outputs ● File polling ● File tailing ● HTTP ● TCP/UDP ● Kafka ● nagios checks ● statsd ● Framing ● Regex ● Token Splitters ● JSON ● Access logs ● Geo IP ● Linux Stats ● Protobuf ● Rsyslog ● MySQL slow log ● Counter ● Anomaly detection ● Frequent items ● Unique ● HTTP status graph ● Alert ● Elasticsearc h ● Stats ● Influxdb schema ● JSON ● AMQP ● Carbon ● Elasticsearc h ● File ● HTTP ● IRC ● Kafka ● Log ● Nagios ● SMTP
  20. 20. Жизнь без Heka Server Statsd Logstash-fw Elasticsearch Graphite Logstash gateway Statsd x 3 x 4 x 300 x 2app & server metrics metrics from logs logs
  21. 21. Жизнь с Heka Server Hekad Elasticsearch Graphite x 4x 300 x 2 app & server metrics metrics from logs logs Полная конфигурация мониторинга приложения находится в одном месте Statsd Logstash -fw Logstash gateway Statsd x3 ✓
  22. 22. Стабильность HTTP сервисов ● health-чеки ок, но их мало ● нужно мониторить error логи сервисов ● нужно собирать статистику статусов и времени отклика всех http запросов ● нужно взвешивать показатели относительно количества уникальных пользователей ● e.g. “% пользователей, получивших http 50x для сервиса за последние N минут”
  23. 23. ● подсчет укикальных значений по большому массиву данных в реальном времени — непростая задача ● Elasticsearch HyperLogLog++ алгоритм с нечеткой логикой, лучше подходит для оффлайн анализа ● statsd - считаем уники распределенно, но не группируем ● в идеале, сделать риалтаймовую и распределенную? молотилку для уников и гистограмм Считалка уников
  24. 24. Стабильность HTTP сервисов
  25. 25. Слайд по всяким штукам • 500-е, уникальные юзеры • разработчики сами все мониторят и просыпаются ночью • сравнение времени обработки чего-то в фронтенде и на бекенде • сквозной userID по всем сервисам
  26. 26. Над чем мы думаем • Мониторинг безымянных серверов • Коллекция и хранение метрик приложений в mesos/kubernetes окружениях
  27. 27. Спасибо. мои контакты: ctrlok@gmail.com github.com/ctrlok skype: ctrlok1987 мои контакты2: yuriy.bogdanov@grammarly.com github.com/ybogdanov

×