Установка Logstash в Unix/Linux

Установка Logstash в Unix/Linux

Logstash — это сервер с открытым исходным кодом, который обрабатывает данные из множества источников одновременно, преобразует их, а затем отправляет в «stash» (естественно, это Elasticsearch). Простыми словами, Logstash — это инструмент для нормализации, фильтрации и сбора логов.

Установка Logstash в Unix/Linux

Я расскажу как можно установить logstash на различные Unix/Linux ОС. А установка начнется с установки JAVA, т.к она неотъемная часть данной утилиты.

Если в вашей системе не установлена Java, используйте одну из следующих ссылок для ее установки:

Установка JAVA (JDK) на CentOS/RHEL/Fedora

Установка JAVA 9 (JDK9) на Debian/Ubuntu/LinuxMint

Установка Java на Debian/Ubuntu/Mint

Вот еще полезное чтиво:

Узнать размер Java Heap Memory Size

Установка переменных JAVA_HOME / PATH в Linux

PS: Logstash требует Java 8 и Java 9 не поддерживается.

А сейчас, переходим к установки логстеша. Возможно, я буду сокращать «LogStash» как «LS» или «ЛогСтеш» — «ЛС».

Установка Logstash в CentOS/Fedora/RHEL

Загружаем и устанавливаем публичный ключ подписи:

Открываем (создаем) файл:

И прописываем:

Вы можете установить его с помощью команды:

Настройка и запуск утилиты будет немного ниже.

Установка Logstash в Debian/Ubuntu

Загружаем и устанавливаем публичный ключ подписи:

Возможно, вам придется установить пакет apt-transport-https на Debian перед установкой утилиты:

Добавляем репозиторий:

Вы можете установить его с помощью команды:

Настройка и запуск утилиты будет немного ниже.

Установка Logstash на другие Unix/Linux ОС

-=== СПОСОБ 1 — использовать docker==-

Не было нужды использовать логстеш в докере. Как появиться, так сразу же обновлю данную статью.

-=== СПОСОБ 2 — использовать готовый архив==-

Скачиваем с официального сайта архив с ЛС:

Распакуем архив:

Переносим папку:

Прописываем переменное окружение:

У меня это:

Чтобы изменения применились, выполните:

Создаем конфиг:

И прописываем:

Затем запустите logstash:

Как-то так.

Настройка/Запуск Logstash в Unix/Linux

И так, установили ЛС и можно приступать к его настройке.

Настройка Logstash в Unix/Linux 

Рассмотрим готовый пример, у меня используется ОС —  CentOS 6/7 и я настрою LS на ней.

Прописываем переменное окружение:

У меня это:

PS: Для того чтобы узнать где лежит ( куда выполнилась установка LS, используйте — whereis logstash команду)!

Чтобы изменения применились, выполните:

И так, основной конфиг я не трогал и он имеет следующую структуру:

Ничего сложного в понимании данных строк — НЕТ!

Все конфиги должны быть в /etc/logstash/conf.d.

Запуск Logstash в Unix/Linux

Перед началом запуска, проверяем что у нас используется «SysV init vs systemdedit»:

Запуск Logstash используя Systemd

Такие дистрибутивы, как Debian Jessie, Ubuntu 15.10+ и многие производные SUSE, используют systemd и команду systemctl для запуска и остановки служб. После установки пакета вы можете запустить Logstash с помощью:

Добавим службу в автозагрузку ОС:

Настройте брандмауэр, чтобы Logstash мог получать логи от клиентов (TCP-порт 5044):

Запуск Logstash используя init/Upstart

Для систем, использующих «upstart», вы можете запустить Logstash с помощью:

Автоматически созданный файл конфигурации для «upstart» систем — /etc/init/logstash.conf.

Настройте брандмауэр, чтобы Logstash мог получать логи от клиентов (TCP-порт 5044).

Запуск Logstash используя SysV

Для систем, использующих SysV, для систем, использующих»

Автоматически созданный файл конфигурации для систем SysV — /etc/init.d/logstash.

Настройте брандмауэр, чтобы Logstash мог получать логи от клиентов (TCP-порт 5044).

Установка плагинов для LogStash

Проверяем какие плагины имеются:

Для установки плагина, используйте:

Для обновления:

Чтобы удалить:

Работа с Logstash в Unix/Linux

Сначала давайте проверим вашу установку Logstash, запустив самый простой конвейер Logstash.

Конвейер Logstash имеет два обязательных элемента: вход и выход и один необязательный элемент — фильтр. Плагины ввода используют данные из источника, плагины фильтров изменяют данные, как вы указали, а выходные плагины записывают данные в пункт назначения.

работа Logstash pipeline

Чтобы проверить установку Logstash, запустите самый простой конвейер Logstash. Например:

Или (если прописали переменное окружение):

Можно прописать что-то и LS отдаст (выход CTR +C).

Как работает LogStash?

Конвейер обработки событий Logstash имеет три этапа: inputs (входы) → filters (фильтры) → outputs (выходы). Входы генерируют события, фильтры изменяют их, а выходы отправляют их в другое место. Входы и выходы поддерживают кодеки, которые позволяют кодировать или декодировать данные при входе или выходе из конвейера без использования отдельного фильтра.

Inputs

Вы используете inputs для получения данных в Logstash. Некоторые из наиболее часто используемых inputs:

  • file — Читает файл, подобно команде «tail -F».
  • syslog — Прослушивает порт 514 для сообщений syslog и анализирует данные (в соответствии с форматом RFC3164)
  • redis — Считывает данные с redis-сервера, используя как redis-каналы, так и redis-списки. Redis часто используется в качестве «брокера» (broker) в централизованной установке Logstash, которая ставит в очередь события Logstash от удаленных Logstash «отправителей» (shippers).
  • beats — Обрабатывает события, отправленные с Filebeat.

Дополнительные сведения о доступных inputs см. в разделе «Input Plugins».

Filters

Фильтры (Filters) являются промежуточными устройствами обработки данных в конвейере Logstash. Вы можете комбинировать фильтры с условными выражениями для выполнения действия над событиями, если оно соответствует определенным критериям. Некоторые полезные фильтры:

  • grok — Парсит и структурирует произвольный текст. Grok в настоящее время является лучшим средством для анализа неструктурированных данных логов во что-то структурированное и запрашиваемое. Благодаря 120 шаблонам, которые встроены в Logstash, вы сможете найти все для ваших потребностей!
  • mutate — Выполняет общие преобразования в полях событий. Вы можете переименовывать, удалять, заменять и изменять поля в ваших событиях.
  • drop — Удаляет событие полностью, например, debug events.
  • clone — Создает копию события, возможно добавление или удаление полей.
  • geoip — Добавляет информацию о географическом расположении IP-адресов (также показывает потрясающие графики в Kibana!)

Дополнительные сведения о доступных фильтрах см. в разделе «Модули фильтра»(Filter Plugins).

Outputs

Outputs (Выходы) являются заключительной фазой конвейера Logstash. Событие может проходить через несколько выходов, но как только вся обработка вывода завершена, событие завершило свое выполнение. Некоторые часто используемые результатов включают:

  • elasticsearch — Отправляет данные о событиях в Elasticsearch. Если вы планируете сохранять данные в эффективном, удобном и легко запрашиваемом формате, то Elasticsearch поможет вам.
  • file — Записает данные события в файл на диске.
  • graphite — Отправляет данные о событиях в графит (популярный инструмент с открытым исходным кодом для хранения и графического отображения метрик.
  • statsd — Отправляет данные о событиях в statsd сервис, который «слушает статистику, например счетчики и таймеры, отправляет по UDP и отправляет агрегаты в одну или несколько подключаемых внутренних служб». Если вы уже используете statsd, это может пригодиться вам!

Дополнительные сведения о доступных outputs см. в разделе плагины вывода (Output Plugins).

Codecs

Кодеки (Codecs) — это в основном потоковые фильтры, которые могут работать как часть входа (input) или выхода (output). Codecs позволяют вам легко отделить передачу ваших сообщений от процесса сериализации. Популярные кодеки включают в себя json, msgpack и plain (text):

  • json — Кодирует или декодирует данные в формате JSON.
  • multiline — Объединяет многострочные текстовые события, такие как java exception и stacktrace, в одно событие.

Дополнительные сведения о доступных кодеках см. в разделе плагины кодеков (Codec Plugins).

А на этом, у меня все! Статья «Установка Logstash в Unix/Linux » завершена.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *