Реализация                       , обеспечение                                    и                              сервисов, балансеров и внутренней инфраструктуры

как много текста

мониторинга

отказоустойчивости

наблюдаемости

0

даня

олег

лера

сережа

привет

мониторинга

отказоустойчивости

наблюдаемости

1

мониторинг  

отказоустойчивости

наблюдаемости

выявление аномалии

1

алерты

сбор телеметрии

мониторинг  

отказоустойчивости

наблюдаемость

1

алерты

метрики

логи

выявление аномалии

графики

сбор телеметрии

мониторинг  

отказоустойчивость

наблюдаемость

1

алерты

метрики

логи

выявление аномалии

графики

высокая доступность

минимизация убытков

быстрое восстановление

сбор телеметрии

Цель

Спроектировать и реализовать инфраструктуру мониторинга

И

Задачи

  1. Сбор требований у команды разработки
  2. Выбор технологий
  3. Проектирование архитектуры и пайплайнов
  4. Заведение инструментов для мониторинга
  5. Настройка инструментов и написание конфигов
  6. Написание инструкций для подключения к инфраструктуре мониторинга
  7. Выбор метрик и настройка алертов

2

3

Функциональные требования

  • Минимизация возможности возникновения простоев продуктовых сервисов и сервисов по сбору телеметрии
  • Минимизация времени простоя
  • Анализ телеметрии
  • Автоматизированное определение аномалий и ошибок
  • Оповещение об аномалиях и ошибках
  • Просмотр логов по конкретному пользовательскому запросу
  • Единый формат логов для всех приложений
  • Охват как можно большего числа элементов системы

Нефункциональные требования

  • Инструменты по сбору, хранению и обработки логов и метрик должны выдерживать высокую нагрузку
  • Просты в использовании и подробно описаны
  • Удовлетворять требованиям СИБ
  • Удобное внедрение новых сервисов

4

Стек

Сбор 

  • Filebeat
  • Unified Agent
  • pushclient
  • MDB
  • Datadog

Зоопарк

Обработка

  • Logstash
  • Logbroker
  • YT

Хранение

  • ElasticSearch
  • Clickhouse
  • Solomon
  • MDB
  • YASM

Визуализация

  • Kibana
  • Datalens
  • Monitoring
  • YASM

Поиск

  • Kibana
  • YQL
  • Yandex Deploy

Алерты

  • Juggler
  • Monitorado

Архитектура

ELB

ILB

APPS

5

Логи

ELB

ILB

APPS

6

и их формат

[accesslog <::status:200::> <::module:proxy::> <::reason:success::>
  [report u:service_total
    [cookie_policy u:service_total
      [meta awacs-logs <::env_type:unknown::> <::namespace:bookmate.yandex.net::>
        [regexp default [h100 [cutter
            [icookie <::iproc:CAMQAYABAYgBAcoBNTNBNPIBEzQ5MTI5OTMzMjE2Nzk1MTI0ODQ=::> <::yashr:::>
            [antirobot [sub_antirobot [report u:antirobot [balancer [balancer
            [proxy prod-antirobot-yp-sas-15.sas.yp-c.yandex.net:13512 1618/554 0/sc=200 succ 200]]]] not_robot]
        [sub_search [log_headers <::X-Request-Id:::>
                                 <::X-Yandex-Ja4:::>
                                 <::User-Agent:::>
                                 <::X-Yandex-Ja3:::>
        [regexp default [regexp_host api.bookmate.ru [meta awacs-logs <::domain:api.bookmate.ru::>
        [regexp bookmate-nginx-api-stable [meta awacs-logs <::upstream:bookmate-nginx-api-stable::>
          [report u:bookmate-nginx-api-stable [balancer
          [report u:requests_bookmate-nginx-api-stable_to_sas [balancer
          [proxy bivu3ks2xdormd23.sas.yp-c.yandex.net:80 0.031247s/0.031522s/connect=0.000000s 571/216 0/sc=200 succ 200]]]]]]]]]]]]]
<::iresp:CANAAQ==::>]]]]]]]]

Raw data

Таблица в Clickhouse

ELB

ILB

APPS

7

и их формат

Логи

[accesslog <::status:200::> <::module:proxy::> <::reason:success::>
  [report u:service_total
    [cookie_policy u:service_total
      [meta awacs-logs <::env_type:unknown::> <::namespace:bookmate.yandex.net::>
        [regexp default [h100 [cutter
            [icookie <::iproc:CAMQAYABAYgBAcoBNTNBNPIBEzQ5MTI5OTMzMjE2Nzk1MTI0ODQ=::> <::yashr:::>
            [antirobot [sub_antirobot [report u:antirobot [balancer [balancer
            [proxy prod-antirobot-yp-sas-15.sas.yp-c.yandex.net:13512 1618/554 0/sc=200 succ 200]]]] not_robot]
        [sub_search [log_headers <::X-Request-Id:::>
                                 <::X-Yandex-Ja4:::>
                                 <::User-Agent:::>
                                 <::X-Yandex-Ja3:::>
        [regexp default [regexp_host api.bookmate.ru [meta awacs-logs <::domain:api.bookmate.ru::>
        [regexp bookmate-nginx-api-stable [meta awacs-logs <::upstream:bookmate-nginx-api-stable::>
          [report u:bookmate-nginx-api-stable [balancer
          [report u:requests_bookmate-nginx-api-stable_to_sas [balancer
          [proxy bivu3ks2xdormd23.sas.yp-c.yandex.net:80 0.031247s/0.031522s/connect=0.000000s 571/216 0/sc=200 succ 200]]]]]]]]]]]]]
<::iresp:CANAAQ==::>]]]]]]]]

Raw data

Таблица в Clickhouse

Метрики

ELB

ILB

APPS

8

YASM

mem_usage, cpu_usage, net_usage

http_4xx, http_5xx, timings

ELB

ILB

APPS

9

ELB

ILB

APPS

10

Логи

и их формат

{
  "@timestamp":        "2015-08-21T12:27:16.81",
  "message":           "your lovely message",
  "@fields":           {
    // your context, may be nested
  },
  "stackTrace":        "Some error",
  "loggerName":        "name-of-the-logger",
  "threadName":        "main",
  // check ch.qos.logback.classic.Level for 
  //level string representation
  "levelStr":          "INFO",
  "level":             20000
}

Формат строчки лога приложения

Ее представление в ES

ELB

ILB

APPS

11

Логи

и их формат

{
  "@timestamp":        "2015-08-21T12:27:16.81",
  "message":           "your lovely message",
  "@fields":           {
    // your context, may be nested
  },
  "stackTrace":        "Some error",
  "loggerName":        "name-of-the-logger",
  "threadName":        "main",
  // check ch.qos.logback.classic.Level for 
  //level string representation
  "levelStr":          "INFO",
  "level":             20000
}

Формат строчки лога приложения

Ее представление в ES

ELB

ILB

APPS

12

Метрики

ELB

ILB

APPS

13

ELB

ILB

APPS

14

15

Визуализация

Kibana

YASM

Monitoring

Алерты

Monitorado

juggler_checks_defaults:
  namespace: bookmate
  tags: [sre, bookmate]
  flaps:
    stable: 180
    critical: 0
    boost: 0

settings_defaults:
  abc: media_books

deploy:
  objects:
    deploy_unit:bookmate-nginx-stable.assets: default

  alertsets:
    default:
      alerts:
        cpu_usage:
          signal: '%cpu_perc(99)'
          warn: 70
          crit: 80

Juggler

config

config

YASM

Solomon

16

17

Уже сделано (~95%):

  1. Спроектирована архитектуры
  2. Заведены и настроены инструменты для сбора и хранения телеметрии
  3. Выбраны пул отслеживаемых метрик 

Осталось:

  1. Ревью алертов
  2. Раскатывание мониторингов на оставшиеся сервисы

И написать диплом...

diploma 1.0

By superpupervlad

diploma 1.0

  • 99