geerlingguy.filebeat

Ansible角色:Filebeat用于ELK堆栈

CI

这是一个Ansible角色,用于在RedHat/CentOS或Debian/Ubuntu上安装Filebeat

需求

没有。

角色变量

可用的变量列在下面,并附有默认值(请参见defaults/main.yml):

filebeat_version: 7.x

控制安装的Filebeat的主版本。

filebeat_package: filebeat
filebeat_package_state: present

要安装的具体软件包。您可以通过更改包名称,使用适合您平台和包管理器的正确语法指定软件包的版本。您也可以控制软件包状态(例如,已安装、未安装或最新)。

filebeat_create_config: true

是否创建Filebeat配置文件并处理SSL密钥和证书的复制。如果您希望自己创建配置文件,可以将其设置为false

filebeat_inputs:
  - type: log
    paths:
      - "/var/log/*.log"

在Filebeat配置的inputs部分将列出的输入。请查看Filebeat输入配置指南以获取更多选项。

filebeat_output_elasticsearch_enabled: false
filebeat_output_elasticsearch_hosts:
  - "localhost:9200"

是否启用Elasticsearch输出,以及要将输出发送到哪些主机。

filebeat_output_elasticsearch_auth:
    username: "admin"
    password: "S3CR3eeet"

# 或,仅适用于8+版本
filebeat_output_elasticsearch_auth:
    api_key: "xa-123a-f3ea012d-aaae1"

配置Elasticsearch输出的身份验证。请注意,api_key和用户/密码是互斥的,api_key仅在版本8中可用。

filebeat_output_logstash_enabled: true
filebeat_output_logstash_hosts:
  - "localhost:5000"

是否启用Logstash输出,以及要将输出发送到哪些主机。

filebeat_enable_logging: false
filebeat_log_level: warning
filebeat_log_dir: /var/log/filebeat
filebeat_log_filename: filebeat.log

Filebeat日志记录。

filebeat_ssl_certs_dir: /etc/pki/logstash
filebeat_ssl_private_dir: "{{ filebeat_ssl_certs_dir }}"

存储证书和密钥文件的路径。

filebeat_ssl_ca_file: ""
filebeat_ssl_certificate_file: ""
filebeat_ssl_key_file: ""

SSL证书和密钥文件的本地路径。

filebeat_ssl_copy_file: true

是否将证书和密钥复制到filebeat_ssl_dir中,或使用现有的。

为了最大限度地提高安全性,您应该使用自己的有效证书和密钥文件,并在剧本中更新filebeat_ssl_*变量以使用您的证书。

要生成自签名证书/密钥对,可以使用以下命令:

$ sudo openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout filebeat.key -out filebeat.crt

请注意,除非您在服务器上添加了完整的信任链(包括自签名证书的证书颁发机构),否则filebeat和logstash可能无法正确与自签名证书一起使用。参见:https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

filebeat_ssl_insecure: "false"

将其设置为"true"以允许使用自签名证书(当CA不可用时)。

覆盖filebeat模板

如果由于选项未暴露无法通过变量自定义,您可以覆盖用于生成Filebeat配置的模板。

filebeat_template: "filebeat.yml.j2"

您可以复制并修改提供的模板,或者例如,指向您剧本目录中的模板文件,以代替管理的模板使用。

filebeat_template: "{{ playbook_dir }}/templates/filebeat.yml.j2"

依赖关系

没有。

示例剧本

- hosts: logs

- name: 设置java_packages变量(Debian/Ubuntu)。
  set_fact:
    java_packages:
      - openjdk-8-jdk
  when: ansible_os_family == 'Debian'

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

许可

MIT / BSD

作者信息

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

安装
ansible-galaxy install geerlingguy.filebeat
许可证
mit
下载
2.6M
拥有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns