logstash

Ansible Роль: Logstash

CI

Ansible роль, которая устанавливает Logstash на RedHat/CentOS и Debian/Ubuntu.

Обратите внимание, что по умолчанию эта роль устанавливает паттерн grok для syslog; если вы хотите добавить больше фильтров, добавьте их в директорию /etc/logstash/conf.d/. Например, вы можете создать файл с именем 13-myapp.conf с соответствующим grok фильтром и перезапустить Logstash, чтобы начать его использовать. Проверьте свой grok regex с помощью Grok Debugger.

Требования

Хотя возможны и другие методы, эта роль предназначена для работы с Elasticsearch в качестве бэкенда для хранения логов.

Переменные роли

Доступные переменные перечислены ниже, junto с значениями по умолчанию (см. defaults/main.yml):

logstash_version: '7.x'

Основная версия Logstash для установки.

logstash_package: logstash

Конкретный пакет для установки. Вы можете указать версию пакета, используя правильный синтаксис для вашей платформы и менеджера пакетов, изменив имя пакета.

logstash_listen_port_beats: 5044

Порт, на котором Logstash будет слушать beats.

logstash_elasticsearch_hosts:
  - http://localhost:9200

Хосты, на которые Logstash должен отправлять логи в Elasticsearch.

logstash_dir: /usr/share/logstash

Директория, в которой установлен Logstash.

logstash_ssl_dir: /etc/pki/logstash
logstash_ssl_certificate_file: logstash-forwarder-example.crt
logstash_ssl_key_file: logstash-forwarder-example.key

Локальные пути к файлам SSL сертификата и ключа, которые будут скопированы в logstash_ssl_dir.

Смотрите Генерация самоподписанного сертификата для получения информации о создании и использовании самоподписанных сертификатов с Logstash и Filebeat.

logstash_local_syslog_path: /var/log/syslog
logstash_monitor_local_syslog: true

Необходимо ли добавлять конфигурацию для локального syslog файла (определенного как logstash_local_syslog_path) в Logstash. Установите это значение в false, если вы мониторите локальный syslog по-другому или если вам не важен локальный syslog файл. Другие локальные логи можно добавить с помощью ваших собственных конфигурационных файлов, размещённых в /etc/logstash/conf.d.

logstash_enabled_on_boot: true

Установите это значение в false, если вы не хотите, чтобы Logstash запускался при старте системы.

logstash_install_plugins:
  - logstash-input-beats
  - logstash-filter-multiline

Список плагинов Logstash, которые должны быть установлены.

logstash_setup_default_config: true

Установите это значение в false, если вы не хотите добавлять конфигурационные файлы по умолчанию, идущие с этой ролью (в директории files/filters). Вы можете добавить свои собственные конфигурационные файлы в /etc/logstash/conf.d.

Генерация самоподписанного сертификата

Для максимальной безопасности вы должны использовать свой собственный действительный сертификат и ключ, и обновить переменные logstash_ssl_* в вашем плейбуке, чтобы использовать ваш сертификат.

Чтобы сгенерировать самоподписанную пару сертификатов/ключей, используйте команду:

$ openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout logstash.key -out logstash.crt -subj '/CN=example.com'

Обратите внимание, что Filebeat и Logstash могут неправильно работать с самоподписанными сертификатами, если вы также не добавили полный цепочку доверия (включая удостоверяющий центр для вашего самоподписанного сертификата) на ваш сервер. Смотрите: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

Новые версии Filebeat и Logstash также требуют приватный ключ в формате pkcs8, который можно создать, конвертировав ранее сгенерированный ключ, например:

openssl pkcs8 -in logstash.key -topk8 -nocrypt -out logstash.p8

Другие заметки

Если вы видите высокую загрузку процессора от одного из процессов logstash, и вы используете Logstash вместе с другим приложением, работающим на порту 80 на платформе вроде Ubuntu с upstart, то процесс logstash-web может застревать в цикле, пытаясь запуститься на порту 80, не удаваясь, и снова пытаясь запуститься из-за наличия флага restart в /etc/init/logstash-web.conf. Чтобы избежать этой проблемы, измените эту строку, добавив limit к инструкции повторного запуска, или установите сервис logstash-web в enabled=no в вашем плейбуке, например:

- name: Убедитесь, что процесс logstash-web остановлен и отключен.
  service: name=logstash-web state=stopped enabled=no

Пример Плейбука

- hosts: search

  pre_tasks:
    - name: Использовать Java 8 на Debian/Ubuntu.
      set_fact:
        java_packages:
          - openjdk-8-jdk
      when: ansible_os_family == 'Debian'

  roles:
    - geerlingguy.java
    - geerlingguy.elasticsearch
    - geerlingguy.logstash

Лицензия

MIT / BSD

Информация об авторе

Эта роль была создана в 2014 году Джеффом Гирлингом, автором Ansible for DevOps.

Установить
ansible-galaxy install geerlingguy/ansible-role-logstash
Лицензия
mit
Загрузки
217911
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns