SlideShare a Scribd company logo
1 of 39
Download to read offline
Logstash. Как обработать
логи и не только
Коваль Антон
Что такое logstash
Инструмент для потоковой обработки событий
в реальном времени.
Написан на JRuby.
Почему logstash?
● большое количество плагинов
● простота
● не cloud
● бесплатный
Альтернативы
★ loggly
★ graylog
★ splunk
★ logscale
Как работает
После INPUT
После FILTER
Простейшее приложение
★ установленный logstash
★ конфиг файл
Пример конфига
Чуть посложнее приложение
★ установленный logstash
★ конфиг файл
★ свой плагин
Пишем свой плагин
Легко писать расширения, но …..
Пишем свой плагин
Легко писать расширения, но …..
JRUBY
Пишем свой плагин
Пишем свой плагин
Input: register, run, teardown
Filter: register, filter
Output: register, receive, teardown
Сложное приложение
★ установленный logstash
★ конфиг файл
★ свой плагин
★ java бибилиотеки
Java dependencies
Включение jar зависимостей:
● environment.rb (ручная загрузка jar файлов)
Java dependencies
Включение jar зависимостей:
★ environment.rb (ручная загрузка jar файлов)
★ classpath (пришлось править logstash.sh)
Используем Java классы
java_import net.thumbtack.MyClass
Отказоустойчивость
20 20
Отказоустойчивость
40 событий может быть потеряно
20 20
Масштабируемость
Input: каждый источник работает в отдельном
потоке.
Filter: модель worker-ов.
Output: модель worker-ов.
Best practice (error handling)
Все ошибки складывать в одно поле.
Best practice (logging)
★ в модулях у каждого свой логгинг
★ нельзя поменять формат
★ в сложных конфигах сложно следить за
процессом
Best practice (logging)
Свой custom logging
Мониторинг
Мониторинг
Мониторинг
Output:
★ ganglia
★ graphite
★ zabbix
★ nagios
Мониторинг
Healthcheck
★ активные
★ пассивные
Healthcheck
★ активные (input и output не связаны)
★ пассивные (метрики)
Тестирование (ручное)
Тестирование (автоматическое)
★ Руби-тест:
bin/logstash rspec
spec/core/timestamp_spec.rb
★ blackbox тестирование
Визуализация логов
★ elasticsearch
★ kibana
Визуализация логов
Визуализация логов
Что еще мы делали?
● ротация логов
● сжатие логов
● чтение писем (IMAP)
● сделали свой плагин для JMS
Спасибо!
Вопрос 1
Есть конфигурация с 2-мя output
плагинами.
Что будет, если один из них начнет
медленно посылать события?
Вопрос 2
Есть файл с логами. Как можно сделать
сжатие файла при помощи Logstash?

More Related Content

What's hot

Логгирование. Зачем? Когда? Сколько?
Логгирование. Зачем? Когда? Сколько?Логгирование. Зачем? Когда? Сколько?
Логгирование. Зачем? Когда? Сколько?Ivan Fedorov
 
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.Badoo Development
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоOntico
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и DjangoTaras Lyapun
 
Немного о кеше
Немного о кешеНемного о кеше
Немного о кешеDmitry Ignatiev
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья КудиновCodeFest
 
Kirill A Korinskiy Rit2010 No Sql Storage
Kirill A  Korinskiy Rit2010 No Sql StorageKirill A  Korinskiy Rit2010 No Sql Storage
Kirill A Korinskiy Rit2010 No Sql Storagerit2010
 
Путь мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devopsПуть мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devopsVsevolod Polyakov
 
"RT индексы в поиске Avito" Вячеслав Крюков (Avito)
"RT индексы в поиске Avito" Вячеслав Крюков (Avito)"RT индексы в поиске Avito" Вячеслав Крюков (Avito)
"RT индексы в поиске Avito" Вячеслав Крюков (Avito)AvitoTech
 
Flask, гордость и предубеждение
Flask, гордость и предубеждениеFlask, гордость и предубеждение
Flask, гордость и предубеждениеYehor Nazarkin
 
Erlang, который мы потеряли
Erlang, который мы потерялиErlang, который мы потеряли
Erlang, который мы потерялиIvan Grishaev
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию7bits
 
Parasoft SOAtest
Parasoft SOAtestParasoft SOAtest
Parasoft SOAtestSQALab
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring7bits
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Yandex
 
Абак Пресс
Абак ПрессАбак Пресс
Абак Прессit-people
 

What's hot (20)

Логгирование. Зачем? Когда? Сколько?
Логгирование. Зачем? Когда? Сколько?Логгирование. Зачем? Когда? Сколько?
Логгирование. Зачем? Когда? Сколько?
 
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий Левченко
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и Django
 
Немного о кеше
Немного о кешеНемного о кеше
Немного о кеше
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Kirill A Korinskiy Rit2010 No Sql Storage
Kirill A  Korinskiy Rit2010 No Sql StorageKirill A  Korinskiy Rit2010 No Sql Storage
Kirill A Korinskiy Rit2010 No Sql Storage
 
Путь мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devopsПуть мониторинга: модульность, гибкость, devops
Путь мониторинга: модульность, гибкость, devops
 
"RT индексы в поиске Avito" Вячеслав Крюков (Avito)
"RT индексы в поиске Avito" Вячеслав Крюков (Avito)"RT индексы в поиске Avito" Вячеслав Крюков (Avito)
"RT индексы в поиске Avito" Вячеслав Крюков (Avito)
 
Chef wtf
Chef wtfChef wtf
Chef wtf
 
Flask, гордость и предубеждение
Flask, гордость и предубеждениеFlask, гордость и предубеждение
Flask, гордость и предубеждение
 
Erlang, который мы потеряли
Erlang, который мы потерялиErlang, который мы потеряли
Erlang, который мы потеряли
 
Using Ansible
Using AnsibleUsing Ansible
Using Ansible
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию
 
Parasoft SOAtest
Parasoft SOAtestParasoft SOAtest
Parasoft SOAtest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
 
Абак Пресс
Абак ПрессАбак Пресс
Абак Пресс
 
Build your own multistack JS startup
Build your own multistack JS startupBuild your own multistack JS startup
Build your own multistack JS startup
 

Viewers also liked

Есть ли жизнь без SIEM
Есть ли жизнь без SIEMЕсть ли жизнь без SIEM
Есть ли жизнь без SIEMPositive Hack Days
 
Автоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchАвтоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchPositive Hack Days
 
Продвижение "1С:Автоматическое тестирование конфигураций" среди клиентов как ...
Продвижение "1С:Автоматическое тестирование конфигураций" среди клиентов как ...Продвижение "1С:Автоматическое тестирование конфигураций" среди клиентов как ...
Продвижение "1С:Автоматическое тестирование конфигураций" среди клиентов как ...Ex1s
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийVyacheslav Nikulin
 
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с ElasticsearchОмские ИТ-субботники
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupBadoo Development
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Ontico
 
King hug uk
King hug ukKing hug uk
King hug ukhuguk
 
Life of an Fluentd event
Life of an Fluentd eventLife of an Fluentd event
Life of an Fluentd eventKiyoto Tamura
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Naotoshi Seo
 
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionWTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionTim O'Reilly
 

Viewers also liked (15)

Есть ли жизнь без SIEM
Есть ли жизнь без SIEMЕсть ли жизнь без SIEM
Есть ли жизнь без SIEM
 
Автоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchАвтоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе Elasticsearch
 
Продвижение "1С:Автоматическое тестирование конфигураций" среди клиентов как ...
Продвижение "1С:Автоматическое тестирование конфигураций" среди клиентов как ...Продвижение "1С:Автоматическое тестирование конфигураций" среди клиентов как ...
Продвижение "1С:Автоматическое тестирование конфигураций" среди клиентов как ...
 
Барнаул15
Барнаул15Барнаул15
Барнаул15
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
 
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)
 
The basics of fluentd
The basics of fluentdThe basics of fluentd
The basics of fluentd
 
King hug uk
King hug ukKing hug uk
King hug uk
 
Devconf15
Devconf15Devconf15
Devconf15
 
Fluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log ManagementFluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log Management
 
Life of an Fluentd event
Life of an Fluentd eventLife of an Fluentd event
Life of an Fluentd event
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014
 
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionWTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx version
 

Similar to Thumbtack Expertise Days # 5 - Logstash

Инструменты профайлинга С++ кода
Инструменты профайлинга С++ кодаИнструменты профайлинга С++ кода
Инструменты профайлинга С++ кодаcorehard_by
 
JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?denis Udod
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)IT-Доминанта
 
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...Ontico
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderSQALab
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораSQALab
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекPython Meetup
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest
 
Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circlewebriders
 
MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?Alexey Zinoviev
 
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest
 
Rozum robotics release cycle
Rozum robotics release cycleRozum robotics release cycle
Rozum robotics release cycleNikolay Lagutko
 
Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circleOlexiy Strashko
 
Артем Титаренко
Артем ТитаренкоАртем Титаренко
Артем ТитаренкоCodeFest
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015Alex Chistyakov
 

Similar to Thumbtack Expertise Days # 5 - Logstash (20)

Use Grunt Luke
Use Grunt LukeUse Grunt Luke
Use Grunt Luke
 
Инструменты профайлинга С++ кода
Инструменты профайлинга С++ кодаИнструменты профайлинга С++ кода
Инструменты профайлинга С++ кода
 
JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?
 
Deep storm presentation
Deep storm presentationDeep storm presentation
Deep storm presentation
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)
 
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
Как мы данные готовили ORM и все-все-все в приложении Почта Mail.Ru / Кирилл ...
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотекSWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
 
Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circle
 
MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?
 
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
 
Vagrant puppet
Vagrant puppetVagrant puppet
Vagrant puppet
 
Operden1
Operden1Operden1
Operden1
 
Rozum robotics release cycle
Rozum robotics release cycleRozum robotics release cycle
Rozum robotics release cycle
 
StackLight (aka LMA)
StackLight (aka LMA)StackLight (aka LMA)
StackLight (aka LMA)
 
Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circle
 
Артем Титаренко
Артем ТитаренкоАртем Титаренко
Артем Титаренко
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015
 

Thumbtack Expertise Days # 5 - Logstash