logstash
Ansible Роль: Logstash
Это роль Ansible, которая устанавливает Logstash на RedHat/CentOS и Debian/Ubuntu.
Обратите внимание, что эта роль по умолчанию устанавливает шаблон grok для syslog; если вы хотите добавить больше фильтров, посмотрите документацию по logstash_configuration_files
и logstash_filter_files
.
В качестве примера вы можете создать файл с именем 13-myapp.conf
и добавить соответствующий фильтр grok, а затем перезапустить Logstash, чтобы начать его использование. Протестируйте ваш grok regex с помощью Grok Debugger.
Требования
Хотя возможны и другие методы, эта роль предназначена для работы с Elasticsearch в качестве бэкенда для хранения логов.
Переменные роли
Доступные переменные перечислены ниже вместе с их значениями по умолчанию (см. defaults/main.yml
):
logstash_listen_port_beats: 5044
Порт, на котором Logstash будет слушать beats.
logstash_version: 2.3
Основная версия Logstash для установки по умолчанию.
logstash_configuration_files:
- 01-lumberjack-input.conf
- 30-lumberjack-output.conf
logstash_filter_files:
- 10-syslog.conf
- 11-nginx.conf
- 12-apache.conf
- 14-solr.conf
- 15-drupal.conf
logstash_elasticsearch_host: localhost
Список файлов конфигурации (входов/выходов) и файл фильтров для установки. По умолчанию устанавливаются файлы входа/выхода lumberjack и переменные фильтры. Вы можете указать свои собственные файлы конфигурации, разместив файлы входа/выхода в своем каталоге templates
, а фильтры в каталоге files
. Затем создайте свой собственный список в каталоге vars/main.yml
и vars_files
в вашей обертке роли и включите эту роль для развертывания Logstash с вашей конфигурацией. См. Пример плейбука
ниже.
logstash_elasticsearch_hosts:
- http://localhost:9200
Хосты, на которые Logstash будет отправлять логи в Elasticsearch.
logstash_ssl_dir: /etc/pki/logstash
logstash_ssl_certificate_file: logstash-forwarder-example.crt
logstash_ssl_key_file: logstash-forwarder-example.key
Конфигурация SSL для Logstash для приема запросов от logstash-forwarder, работающего на удаленных хостах. Примечание по безопасности: на производственных или публичных (например, любых непроверочных) серверах вы должны создать свою пару ключей/сертификатов и использовать её вместо включенного по умолчанию! Вы можете использовать OpenSSL для создания файлов ключей и сертификатов, с такой командой:
openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout logstash.key -out logstash.crt
.
Обратите внимание, что filebeat и logstash могут не работать правильно с самоподписанными сертификатами, если у вас также не добавлена полная цепочка доверия (включая Центр сертификации для вашего самоподписанного сертификата) на сервере. См.: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891
Для logstash_ssl_certificate_file
и logstash_ssl_key_file
вы можете указать путь относительно каталога роли или абсолютный путь к файлу.
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: yes
Установите это значение в no
, если не хотите, чтобы Logstash запускался при старте системы.
logstash_install_plugins:
- logstash-input-beats
Список плагинов Logstash, которые должны быть установлены.
logstash_install_dir: /usr/share/logstash
Путь к каталогу установки. Ранее путь "/opt/logstash" был жестко закодирован, теперь по умолчанию используется "/usr/share/logstash".
Другие заметки
Если вы замечаете высокую загрузку ЦП от одного из процессов logstash
, и вы используете Logstash вместе с другим приложением на порту 80 в платформе, такой как Ubuntu с upstart, процесс logstash-web
может застрять в цикле, пытаясь запуститься на порту 80, не удаваясь, и пытаясь запуститься снова, из-за присутствия флага restart
в /etc/init/logstash-web.conf
.
Чтобы избежать этой проблемы, измените эту строку, добавив limit
к выражению respawn, или установите сервис logstash-web
в enabled=no
в вашем плейбуке, например:
- name: Убедитесь, что процесс logstash-web остановлен и отключен.
service: name=logstash-web state=stopped enabled=no
Пример плейбука
- hosts: search
vars_files:
- vars/main.yml
roles:
- geerlingguy.elasticsearch
- geerlingguy.logstash
Лицензия
MIT / BSD
Информация об авторе
Эта роль была создана в 2014 году Джеффом Гирлингом, автором Ansible for DevOps.
ansible-galaxy install solutionDrive/ansible-role-logstash