SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Карта граблей на
поле сбора и
доставки логов.
Lazada-way
Юрий Бушмелев
Lazada TechHub
Lazada? Что это?
• интернет-магазин №1 в 6 странах ЮВА (Вьетнам, Таиланд,
Малайзия, Индонезия, Сингапур и Филиппины), с 2016 года
— часть Alibaba Group
• 4 дата-центра
• более 80 микро-сервисов на GO + наследие на PHP
• более 6 миллионов сообщений в минуту по системе в целом
6 миллионов сообщений, которые надо...
• отправить из приложения
• принять для доставки
• доставить для дальнейшего анализа и хранения
• анализировать
• хранить
6 миллионов сообщений?!!
— что вы туда пишете?!
— access-логи
— зачем вы это делаете?!
— для трейсинга
Поле вариантов
Как писать лог из приложения?
• в stdout/stderr
• в файл
• в syslog
• как-то иначе API
?
Как собирать логи?
• docker log driver
• читать из файла
• syslog daemon
• как-то иначе
сервер
API
?API
API
Как и куда доставлять логи?
• GELF по UDP в Graylog
• JSON в ELK через MQ
• syslog в файлы
• как-то иначе
сервер
API ?
?
Как это было
Как мы писали лог из приложения
приложение пишет в stdout/
stderr,
которые перенаправлены
шеллом в файлы,
которые пишутся в каталог,
который проброшен внутрь
контейнера с хост-системы
... на сервере, который
настроил Джек!
сервер
Файл td-agentAPIAPIAPI
Как мы собирали и доставляли логи
на хосте был запущен td-
agent, который:
• читал файлы логов
• парсил их в JSON
• слал в Kafka-topic
Kafkatd-agent
JSON
Куда мы доставляли логи
• часть логов — в Logstash +
Kibana
• часть логов — в Graylog
• часть логов — в другой
Graylog
... и все они — в один кластер
ElasticSearch
Kafka
LogstashLogstashLogstash
GraylogGraylogGraylog
ES
Вид сверху
Kafka
сервер
Файл td-agentAPIAPIAPI
JSON
LogstashLogstashLogstash
GraylogGraylogGraylog
ES
①②③
④
⑥
⑤
Грабли!
1. Необходим доступ для записи в каталог
2. Нужно много места на диске
3. Невозможна нормальная ротация (только copytruncate)
4. Разные API писали логи в разных форматах
5. td-agent работал реже, чем не работал
6. Проблемы с ElasticSearch
• устаревшая версия (1.7)
• не было выделенных мастеров
• разнородные логи с пересекающимися полями
• отсутствие статического маппинга полей
Кто виноват и что делать?
Стандарты!
• единый формат логов для всех API
• единый стандарт на способы записи, сбора и доставки логов
• единые библиотеки логгирования
• SLA на доставку логов
Заменить td-agent
• fluentd
• filebeat
• syslog-ng/rsyslog/nxlog
• написать что-то своё
Rsyslog — хороший
• много модулей почти на все случаи жизни
• человекопонятный RainerScript
• imfile + mmnormalize + omkafka позволяют сэмулировать td-
agent
• mmnormalize стоит отдельного упоминания
• мощная система шаблонов
• RELP — гарантия доставки
• очереди в памяти и на диске с тонкими настройками
• многопоточность и параллелизация
Rsyslog — плохой
• не каждой версией можно пользоваться
• плохо документирован
• RainerScript скуден по возможностям
• omkafka до v8.28 может терять сообщения
• сообщения иногда застревают в RELP
• настройки очередей крайне неочевидны
• параллелится не всё и не всегда
• иногда приходится читать исходники
Как мы стали писать и собирать логи
приложение пишет в unix
datagram socket,
который находится в каталоге,
который проброшен в
контейнер с хост-системы,
на которой запущен rsyslog
... на сервере, который
настроил Puppet!
сервер
API
API
API
rsyslog
Как мы стали доставлять логи
rsyslog на хосте:
• вычитывает сообщение из
сокета
• парсит его в JSON
• кладёт его в локальный лог
(если надо)
• отправляет далее (в релей
или в Kafka)
Kafka
сервер
Файл
JSON
rsyslog
APIAPIAPI
rsyslog
Новый вид сверху
Kafka
LogstashLogstashLogstash
GraylogGraylogGraylog
ES
сервер
Файл
JSON
rsyslogAPIAPIAPI
rsyslog rsyslog
Метрики
• собственная статистика rsyslog (impstats)
• кастомные счётчики rsyslog (dyn_stats)
• rsyslog_exporter собственной разработки
• prometheus
• grafana
• метрики Graylog
Подводные грабли
• Graylog не успевает
• 50k msg/s только с live API
• 12k msg/s в Graylog
• случается, что запись в сокет блокируется
• нужно мониторить размеры очередей (и сделать алерты по
ним)
• амплификация в 10 раз — легко
• мы растём
Файловое хранилище
• сервер с максимально набитым рейдом в каждом ДЦ
• быстрый и простой способ
• получить все логи в одном месте
• использовать утилиты командной строки (tail|grep|awk|jq)
и скрипты над файловыми логами
• организовать долгосрочное хранилище логов
Это РЕАЛЬНО работает!!!
Вид сверху с файловым хранилищем
Kafka
LogstashLogstashLogstash
GraylogGraylogGraylog
ES
сервер
Файл
JSON
rsyslogAPIAPIAPI
rsyslog rsyslog
rsyslog
Что делать - II
• выкинули Logstash и Kibana
• переехали на собственный кластер Kafka
• перенесли логи со строгими форматами в новый кластер
Graylog
Новый Graylog
• всё в Docker
• 3 сервера Kafka
• 7 серверов Graylog (v2.3)
• 24 дата-инстанса ElasticSearch (v5.5) на 12 серверах (4xHDD
RAID0 на инстанс)
• Indexing Rate до 100k msg/s
• 140Tb данных в неделю
Опять грабли!
• грядущие распродажи 11/11 и 12/12
• количество логов уже перевалило за 6 миллионов
сообщений в минуту
• Graylog + ES не могли «прожевать» больше 100k msg/s
• выход из строя одной ноды Kafka фатален
• выход из строя одного инстанса ES фатален (Disk I/O)
Новый новый Graylog
• всё в Docker
• 5 серверов Kafka
• 7 серверов Graylog (v2.3)
• hot/warm-архитектура ElasticSearch (v5.5)
• 3 выделенных мастера
• 16 hot-инстансов на 4xSSD RAID0
• 32 warm-инстанса на 4xHDD RAID0
• ротация индексов по размеру
• Indexing Rate до 160k msg/s (9m msg/min)
Планы на будущее
• работа над High Availability
• метрики Graylog
• рейт-лимиты
• SLA с разработчиками
• документация
Итого
• «стандартизируй это»
• решения на базе syslog-ов - всё еще торт
• rsyslog работает хорово
• запись в сокет блокируется
• логи могут теряться
• файловые хранилища логов — быстро, просто, удобно
• Graylog + ElasticSearch — всё сложно
• чем меньше логов — тем лучше
Спасибо за внимание!
Юрий Бушмелев
@jay7t
jay4mail@gmail.com

Contenu connexe

Tendances

RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsDaniel Podolsky
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyVsevolod Polyakov
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Ontico
 
NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?Daniel Podolsky
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Ontico
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустяYuriy Nasretdinov
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС2ГИС Технологии
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Ontico
 
My talk at Highload++ 2015
My talk at Highload++ 2015My talk at Highload++ 2015
My talk at Highload++ 2015Alex Chistyakov
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановCodeFest
 
Golang в avito
Golang в avitoGolang в avito
Golang в avitoAvitoTech
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, BadooOntico
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013Roman Pavlushko
 
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Ontico
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Ontico
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...Ontico
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014Alex Chistyakov
 

Tendances (19)

RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwords
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в Grammarly
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
 
Ryazan
RyazanRyazan
Ryazan
 
NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
 
Облако в Badoo год спустя
Облако в Badoo год спустяОблако в Badoo год спустя
Облако в Badoo год спустя
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 
My talk at Highload++ 2015
My talk at Highload++ 2015My talk at Highload++ 2015
My talk at Highload++ 2015
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Golang в avito
Golang в avitoGolang в avito
Golang в avito
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, Badoo
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014
 

En vedette

Как построить хороший performance review: опыт Badoo / Алексей Рыбак (Badoo)
Как построить хороший performance review: опыт Badoo / Алексей Рыбак (Badoo)Как построить хороший performance review: опыт Badoo / Алексей Рыбак (Badoo)
Как построить хороший performance review: опыт Badoo / Алексей Рыбак (Badoo)Ontico
 
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...Ontico
 
Logging and ranting / Vytis Valentinavičius (Lamoda)
Logging and ranting / Vytis Valentinavičius (Lamoda)Logging and ranting / Vytis Valentinavičius (Lamoda)
Logging and ranting / Vytis Valentinavičius (Lamoda)Ontico
 
Встреча докладчиков Hl++ 2017
Встреча докладчиков Hl++ 2017Встреча докладчиков Hl++ 2017
Встреча докладчиков Hl++ 2017Ontico
 
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)Ontico
 
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)Ontico
 
Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к 6000 шар...
Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к 6000 шар...Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к 6000 шар...
Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к 6000 шар...Ontico
 
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Ontico
 
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)Ontico
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ontico
 
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...Ontico
 
Lua в нагруженных телеком-системах / Дмитрий Борисов (ИП Борисов Дмитрий Нико...
Lua в нагруженных телеком-системах / Дмитрий Борисов (ИП Борисов Дмитрий Нико...Lua в нагруженных телеком-системах / Дмитрий Борисов (ИП Борисов Дмитрий Нико...
Lua в нагруженных телеком-системах / Дмитрий Борисов (ИП Борисов Дмитрий Нико...Ontico
 
DDoS-атаки: тектонические изменения в 2016-2017 году / Артём Гавриченков (Qra...
DDoS-атаки: тектонические изменения в 2016-2017 году / Артём Гавриченков (Qra...DDoS-атаки: тектонические изменения в 2016-2017 году / Артём Гавриченков (Qra...
DDoS-атаки: тектонические изменения в 2016-2017 году / Артём Гавриченков (Qra...Ontico
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
 
Cassandra для хранения метаданных: успехи и провалы / Андрей Смирнов (Virtust...
Cassandra для хранения метаданных: успехи и провалы / Андрей Смирнов (Virtust...Cassandra для хранения метаданных: успехи и провалы / Андрей Смирнов (Virtust...
Cassandra для хранения метаданных: успехи и провалы / Андрей Смирнов (Virtust...Ontico
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Ontico
 
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)Ontico
 
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Ontico
 
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Ontico
 

En vedette (20)

Как построить хороший performance review: опыт Badoo / Алексей Рыбак (Badoo)
Как построить хороший performance review: опыт Badoo / Алексей Рыбак (Badoo)Как построить хороший performance review: опыт Badoo / Алексей Рыбак (Badoo)
Как построить хороший performance review: опыт Badoo / Алексей Рыбак (Badoo)
 
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
Как писать сервис, поддержка которого не превращается в ад / Антон Резников, ...
 
Logging and ranting / Vytis Valentinavičius (Lamoda)
Logging and ranting / Vytis Valentinavičius (Lamoda)Logging and ranting / Vytis Valentinavičius (Lamoda)
Logging and ranting / Vytis Valentinavičius (Lamoda)
 
Встреча докладчиков Hl++ 2017
Встреча докладчиков Hl++ 2017Встреча докладчиков Hl++ 2017
Встреча докладчиков Hl++ 2017
 
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)
 
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
Безболезненный Fallback cache на Scala / Олег Нижников (Tinkoff.ru)
 
Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к 6000 шар...
Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к 6000 шар...Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к 6000 шар...
Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к 6000 шар...
 
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)
 
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
Честное перформанс-тестирование / Дмитрий Пивоваров (ZeroTurnaround)
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
 
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
Все, что тимлид должен знать о найме и увольнении / Степан Овчинников (ИНТЕРВ...
 
Lua в нагруженных телеком-системах / Дмитрий Борисов (ИП Борисов Дмитрий Нико...
Lua в нагруженных телеком-системах / Дмитрий Борисов (ИП Борисов Дмитрий Нико...Lua в нагруженных телеком-системах / Дмитрий Борисов (ИП Борисов Дмитрий Нико...
Lua в нагруженных телеком-системах / Дмитрий Борисов (ИП Борисов Дмитрий Нико...
 
DDoS-атаки: тектонические изменения в 2016-2017 году / Артём Гавриченков (Qra...
DDoS-атаки: тектонические изменения в 2016-2017 году / Артём Гавриченков (Qra...DDoS-атаки: тектонические изменения в 2016-2017 году / Артём Гавриченков (Qra...
DDoS-атаки: тектонические изменения в 2016-2017 году / Артём Гавриченков (Qra...
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
 
Cassandra для хранения метаданных: успехи и провалы / Андрей Смирнов (Virtust...
Cassandra для хранения метаданных: успехи и провалы / Андрей Смирнов (Virtust...Cassandra для хранения метаданных: успехи и провалы / Андрей Смирнов (Virtust...
Cassandra для хранения метаданных: успехи и провалы / Андрей Смирнов (Virtust...
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
 
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
Сложности performance-тестирования / Андрей Акиньшин (JetBrains)
 
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
 
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
 

Similaire à Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Lazada)

Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и DjangoTaras Lyapun
 
Не превращайте ваши логи в клинопись
Не превращайте ваши логи в клинописьНе превращайте ваши логи в клинопись
Не превращайте ваши логи в клинописьAndrey Rebrov
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС 2ГИС Технологии
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ontico
 
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Ontico
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchИлья Середа
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Badoo Development
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Ontico
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang productionAlina Dolgikh
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012Roman Pavlushko
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, ParallelsNikolay Samokhvalov
 
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...Ontico
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программистаSlach
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.Alexander Titov
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаITCrowd Almaty
 

Similaire à Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Lazada) (20)

Sivko
SivkoSivko
Sivko
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и Django
 
Не превращайте ваши логи в клинопись
Не превращайте ваши логи в клинописьНе превращайте ваши логи в клинопись
Не превращайте ваши логи в клинопись
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС «Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
«Путь от монолита на PHP к микросервисам на Scala» – Денис Иванов, 2ГИС
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
 
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
 
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
Облако в Badoo год спустя - работа над ошибками, Юрий Насретдинов (Badoo)
 
Максим Лапшин. Erlang production
Максим Лапшин. Erlang productionМаксим Лапшин. Erlang production
Максим Лапшин. Erlang production
 
Deep storm presentation
Deep storm presentationDeep storm presentation
Deep storm presentation
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
Опыт работы с LuaJIT в нагруженных интернет-проектах / Александр Гладыш (Logi...
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программиста
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 

Plus de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Plus de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Карта граблей на поле сбора и доставки логов. Lazada-way / Юрий Бушмелев (Lazada)

  • 1. Карта граблей на поле сбора и доставки логов. Lazada-way Юрий Бушмелев Lazada TechHub
  • 2. Lazada? Что это? • интернет-магазин №1 в 6 странах ЮВА (Вьетнам, Таиланд, Малайзия, Индонезия, Сингапур и Филиппины), с 2016 года — часть Alibaba Group • 4 дата-центра • более 80 микро-сервисов на GO + наследие на PHP • более 6 миллионов сообщений в минуту по системе в целом
  • 3. 6 миллионов сообщений, которые надо... • отправить из приложения • принять для доставки • доставить для дальнейшего анализа и хранения • анализировать • хранить
  • 4. 6 миллионов сообщений?!! — что вы туда пишете?! — access-логи — зачем вы это делаете?! — для трейсинга
  • 6. Как писать лог из приложения? • в stdout/stderr • в файл • в syslog • как-то иначе API ?
  • 7. Как собирать логи? • docker log driver • читать из файла • syslog daemon • как-то иначе сервер API ?API API
  • 8. Как и куда доставлять логи? • GELF по UDP в Graylog • JSON в ELK через MQ • syslog в файлы • как-то иначе сервер API ? ?
  • 10. Как мы писали лог из приложения приложение пишет в stdout/ stderr, которые перенаправлены шеллом в файлы, которые пишутся в каталог, который проброшен внутрь контейнера с хост-системы ... на сервере, который настроил Джек! сервер Файл td-agentAPIAPIAPI
  • 11. Как мы собирали и доставляли логи на хосте был запущен td- agent, который: • читал файлы логов • парсил их в JSON • слал в Kafka-topic Kafkatd-agent JSON
  • 12. Куда мы доставляли логи • часть логов — в Logstash + Kibana • часть логов — в Graylog • часть логов — в другой Graylog ... и все они — в один кластер ElasticSearch Kafka LogstashLogstashLogstash GraylogGraylogGraylog ES
  • 14. Грабли! 1. Необходим доступ для записи в каталог 2. Нужно много места на диске 3. Невозможна нормальная ротация (только copytruncate) 4. Разные API писали логи в разных форматах 5. td-agent работал реже, чем не работал
  • 15. 6. Проблемы с ElasticSearch • устаревшая версия (1.7) • не было выделенных мастеров • разнородные логи с пересекающимися полями • отсутствие статического маппинга полей
  • 16. Кто виноват и что делать?
  • 17. Стандарты! • единый формат логов для всех API • единый стандарт на способы записи, сбора и доставки логов • единые библиотеки логгирования • SLA на доставку логов
  • 18. Заменить td-agent • fluentd • filebeat • syslog-ng/rsyslog/nxlog • написать что-то своё
  • 19. Rsyslog — хороший • много модулей почти на все случаи жизни • человекопонятный RainerScript • imfile + mmnormalize + omkafka позволяют сэмулировать td- agent • mmnormalize стоит отдельного упоминания • мощная система шаблонов • RELP — гарантия доставки • очереди в памяти и на диске с тонкими настройками • многопоточность и параллелизация
  • 20. Rsyslog — плохой • не каждой версией можно пользоваться • плохо документирован • RainerScript скуден по возможностям • omkafka до v8.28 может терять сообщения • сообщения иногда застревают в RELP • настройки очередей крайне неочевидны • параллелится не всё и не всегда • иногда приходится читать исходники
  • 21. Как мы стали писать и собирать логи приложение пишет в unix datagram socket, который находится в каталоге, который проброшен в контейнер с хост-системы, на которой запущен rsyslog ... на сервере, который настроил Puppet! сервер API API API rsyslog
  • 22. Как мы стали доставлять логи rsyslog на хосте: • вычитывает сообщение из сокета • парсит его в JSON • кладёт его в локальный лог (если надо) • отправляет далее (в релей или в Kafka) Kafka сервер Файл JSON rsyslog APIAPIAPI rsyslog
  • 24. Метрики • собственная статистика rsyslog (impstats) • кастомные счётчики rsyslog (dyn_stats) • rsyslog_exporter собственной разработки • prometheus • grafana • метрики Graylog
  • 25. Подводные грабли • Graylog не успевает • 50k msg/s только с live API • 12k msg/s в Graylog • случается, что запись в сокет блокируется • нужно мониторить размеры очередей (и сделать алерты по ним) • амплификация в 10 раз — легко • мы растём
  • 26. Файловое хранилище • сервер с максимально набитым рейдом в каждом ДЦ • быстрый и простой способ • получить все логи в одном месте • использовать утилиты командной строки (tail|grep|awk|jq) и скрипты над файловыми логами • организовать долгосрочное хранилище логов Это РЕАЛЬНО работает!!!
  • 27. Вид сверху с файловым хранилищем Kafka LogstashLogstashLogstash GraylogGraylogGraylog ES сервер Файл JSON rsyslogAPIAPIAPI rsyslog rsyslog rsyslog
  • 28. Что делать - II • выкинули Logstash и Kibana • переехали на собственный кластер Kafka • перенесли логи со строгими форматами в новый кластер Graylog
  • 29. Новый Graylog • всё в Docker • 3 сервера Kafka • 7 серверов Graylog (v2.3) • 24 дата-инстанса ElasticSearch (v5.5) на 12 серверах (4xHDD RAID0 на инстанс) • Indexing Rate до 100k msg/s • 140Tb данных в неделю
  • 30. Опять грабли! • грядущие распродажи 11/11 и 12/12 • количество логов уже перевалило за 6 миллионов сообщений в минуту • Graylog + ES не могли «прожевать» больше 100k msg/s • выход из строя одной ноды Kafka фатален • выход из строя одного инстанса ES фатален (Disk I/O)
  • 31. Новый новый Graylog • всё в Docker • 5 серверов Kafka • 7 серверов Graylog (v2.3) • hot/warm-архитектура ElasticSearch (v5.5) • 3 выделенных мастера • 16 hot-инстансов на 4xSSD RAID0 • 32 warm-инстанса на 4xHDD RAID0 • ротация индексов по размеру • Indexing Rate до 160k msg/s (9m msg/min)
  • 32. Планы на будущее • работа над High Availability • метрики Graylog • рейт-лимиты • SLA с разработчиками • документация
  • 33. Итого • «стандартизируй это» • решения на базе syslog-ов - всё еще торт • rsyslog работает хорово • запись в сокет блокируется • логи могут теряться • файловые хранилища логов — быстро, просто, удобно • Graylog + ElasticSearch — всё сложно • чем меньше логов — тем лучше
  • 34. Спасибо за внимание! Юрий Бушмелев @jay7t jay4mail@gmail.com