solutionDrive.logstash

Ansible角色:Logstash

构建状态

这是一个用于在RedHat/CentOS和Debian/Ubuntu上安装Logstash的Ansible角色。

请注意,此角色默认安装一个syslog grok模式;如果您想添加更多过滤器,请查看logstash_configuration_fileslogstash_filter_files的文档。

例如,您可以创建一个名为13-myapp.conf的文件,并使用适当的grok过滤器,然后重启logstash开始使用。可以通过Grok调试工具测试您的grok正则表达式。

需求

虽然其他方法也是可能的,但此角色旨在与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

Logstash的SSL配置,用于接受来自远程主机上运行的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_filelogstash_ssl_key_file,您可以提供相对于角色目录的路径,或文件的绝对路径。

logstash_local_syslog_path: /var/log/syslog
logstash_monitor_local_syslog: true

是否应将本地syslog文件(定义为logstash_local_syslog_path)的配置添加到logstash。如果您以不同方式监控本地syslog,或者您不关心本地syslog文件,请将其设置为false。其他本地日志可以通过您自己放置在/etc/logstash/conf.d中的配置文件添加。

logstash_enabled_on_boot: yes

如果您不希望logstash在系统启动时运行,请将其设置为no

logstash_install_plugins:
  - logstash-input-beats

应安装的Logstash插件列表。

logstash_install_dir: /usr/share/logstash

安装目录的路径。以前,"/opt/logstash"是硬编码的,现在默认值是"/usr/share/logstash"。

其他说明

如果您发现在某个logstash进程中CPU使用率很高,并且您正在使用Logstash与另一个在端口80上运行的应用程序一起使用,并且平台类似于带有upstart的Ubuntu,则logstash-web进程可能会由于尝试在端口80上启动而陷入循环,失败后又尝试重新启动,因为在/etc/init/logstash-web.conf中存在restart标志。

要避免此问题,您可以更改该行以在重新启动语句中添加limit,或者在剧本中将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

作者信息

该角色由Jeff Geerling于2014年创建,他是Ansible for DevOps的作者。

关于项目

Logstash for Linux.

安装
ansible-galaxy install solutionDrive.logstash
许可证
mit
下载
497