Что такое Logstash?
Logstash — это open-source инструмент для сбора, обработки и трансформации данных в реальном времени. Он является частью Elastic Stack и служит центральным компонентом для создания data pipeline между различными источниками данных и системами хранения.
Основные возможности Logstash
- Сбор данных — подключение к множеству источников (файлы, базы данных, API)
 - Парсинг и фильтрация — разбор неструктурированных данных
 - Трансформация — изменение формата и структуры данных
 - Обогащение данных — добавление дополнительной информации
 - Маршрутизация — отправка данных в различные системы
 - Масштабируемость — горизонтальное масштабирование pipeline
 
Установка Logstash
Установка через Docker:
Установка на Ubuntu/Debian:
Конфигурация pipeline
Пример базовой конфигурации Logstash:
 1input {
 2  file {
 3    path => "/var/log/nginx/access.log"
 4    start_position => "beginning"
 5  }
 6  beats {
 7    port => 5044
 8  }
 9}
10
11filter {
12  if [fileset][module] == "nginx" {
13    grok {
14      match => { "message" => "%{NGINXACCESS}" }
15    }
16  }
17  
18  date {
19    match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
20  }
21  
22  mutate {
23    convert => { "response" => "integer" }
24    convert => { "bytes" => "integer" }
25  }
26}
27
28output {
29  elasticsearch {
30    hosts => ["http://elasticsearch:9200"]
31    index => "nginx-logs-%{+YYYY.MM.dd}"
32  }
33  
34  stdout {
35    codec => rubydebug
36  }
37}
Применение Logstash
- Централизация логов — сбор логов с различных серверов
 - ETL процессы — извлечение, трансформация и загрузка данных
 - Мониторинг систем — обработка метрик и событий
 - Интеграция данных — объединение данных из разных источников
 - Реальное время — потоковая обработка данных
 
Плагины и расширения
Logstash поддерживает множество плагинов:
- Input плагины — file, beats, jdbc, kafka, http
 - Filter плагины — grok, mutate, date, geoip, json
 - Output плагины — elasticsearch, kafka, email, slack
 - Codec плагины — json, multiline, csv, avro
 
Установка дополнительных плагинов:
Преимущества использования
- Гибкость — поддержка множества форматов данных
 - Производительность — эффективная обработка больших объемов
 - Надежность — механизмы повторных попыток и обработки ошибок
 - Мониторинг — встроенные метрики и API для мониторинга
 - Сообщество — большое количество готовых плагинов
 
Мониторинг Logstash
Проверка состояния через API:
FAQ
Чем Logstash отличается от Beats?
Beats — легковесные агенты для сбора данных, а Logstash — мощный инструмент трансформации. Часто используются вместе: Beats собирают данные, Logstash их обрабатывает.
Можно ли использовать Logstash без Elasticsearch?
Да, Logstash может отправлять данные в различные системы: Kafka, MongoDB, файлы, базы данных и другие output плагины.
Как масштабировать Logstash?
Можно запускать несколько экземпляров Logstash, использовать очереди (Redis, Kafka) для буферизации и балансировать нагрузку между инстансами.