39
Logstash. Как обработать логи и не только Коваль Антон

Thumbtack Expertise Days # 5 - Logstash

Embed Size (px)

Citation preview

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?