geerlingguy.filebeat
Ansible角色:Filebeat用于ELK堆栈
这是一个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