elastic.beats
存档
该项目不再维护。对于其他入门体验,您可以尝试以下选项:
- 在 Elastic Cloud 开始免费试用,我们的托管服务。
- 查看 Elastic Cloud on Kubernetes (ECK) 以通过Kubernetes启动堆栈。
- 阅读我们的 在Docker上运行Elastic Stack 指南。
- 查看 Elastic Stack Terraform 提供程序。
ansible-beats
此角色提供了一种安装Elastic支持的Beats的通用方法。
已测试的Beats
- Filebeat
- MetricBeat(1.x中的TopBeat)
- Packetbeat
已测试的版本
- 7.x
- 6.x
已测试的平台
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
- Debian 8
- Debian 9
- Debian 10
- CentOS 7
- Amazon Linux 2
使用方法
创建一个包含您自己任务的Ansible剧本,并包含角色beats。您必须在剧本上下文中访问此存储库。
ansible-galaxy install elastic.beats,v7.17.0
然后创建您的playbook yaml并添加角色beats。 应用beats角色会在主机上安装一个节点。
最简单的配置如下:
hosts: localhost
roles:
- role: elastic.beats
vars:
beats_version: 7.17.0
beat: filebeat
beat_conf:
filebeat:
inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
上述内容将在主机“localhost”上安装Filebeat 7.17.0。
注意:
- Beats默认版本在
beats_version
中描述。您可以在剧本中覆盖此变量以安装其他版本。 虽然我们只用一个7.x和一个6.x版本进行测试(在写作时分别为 7.17.0 和 6.8.23),但该角色在大多数情况下也应能与其他版本正常工作。 - Beat产品在
beat
变量中描述。虽然当前测试的Beats是Filebeat、Metricbeat和Packetbeat,但该角色在大多数情况下也应能与 Beats家族 的其他成员一起工作。
测试
此剧本使用 Kitchen 进行CI和本地测试。
要求
- Ruby
- Bundler
- Docker
- Make
运行测试
要合并Ubuntu 18.04主机
$ make converge
要运行测试
$ make verify
要列出所有不同的测试套件
$ make list
默认测试套件是Ubuntu 18.04。如果您想测试其他套件,可以用 PATTERN
变量覆盖
$ make converge PATTERN=standard-centos-7
PATTERN
是一个厨房模式,可以匹配多个套件。要对CentOS运行所有测试
$ make converge PATTERN=centos-7
测试完成后,您可以通过以下命令清理所有内容
$ make destroy-all
基本Beats配置
所有Beats配置参数均受支持。这是通过一个配置映射参数 beat_conf
完成的,该参数序列化为 ${beat}.yml
文件。
使用映射确保Ansible剧本不需要更新以反映新的/弃用的/插件配置参数。
除了 beat_conf
映射外,还支持其他几个参数以实现附加功能,例如脚本安装。这些可以在角色的 defaults/main.yml
文件中找到。
以下示例展示了如何将配置参数应用于Packetbeat实例。
- name: 安装packetbeat的示例剧本
hosts: localhost
roles:
- { role: beats, beat: "packetbeat",
beat_conf: {
"interfaces": {"device":"any"},
"protocols": {
"dns": {
"ports": [53],
"include_authorities":true
},
"http": {
"ports": [80, 8080, 8000, 5000, 8002]
},
"memcache": {
"ports": [11211]
},
"mysql": {
"ports": [3306]
},
"pgsql": {
"ports": [5432]
},
"redis": {
"ports": [6379]
},
"thrift": {
"ports": [9090]
},
"mongodb": {
"ports": [27017]
}
}
},
output_conf : {
"elasticsearch": {
"hosts": ["localhost:9200"]
}
}
}
vars:
use_repository: "true"
附加配置
支持的变量如下:
- beat (必需): Beat产品。支持的值有:“filebeat”、“metricbeat”和“packetbeat”(来自 Beats家族 的其他beast大多数情况下应正常工作,但当前未测试)。
- beat_conf (必需): Beat配置。应定义为映射。
- beats_version (默认值为
7.17.0
): Beats版本。 - version_lock (默认值为
false
): 如果设置为true,则锁定已安装的版本,从而防止其他进程更新。 这不会影响角色在后续运行中更新beat的能力(如果需要会解锁并重新锁定)。 - use_repository (默认值为
true
): 如果为true,则使用elastic repo进行yum或apt。如果为false,必须提供自定义的custom_package_url。 - beats_add_repository (默认值为
{use_repository}
): 如果为真,则为yum或apt安装elastic repo。如果为false,将使用当前仓库。如果您已在repo中有beats包,这个选项很有用。 - start_service (默认值为
true
): 如果为true,则会启动服务,否则为false。 - restart_on_change (默认值为
true
): 如果为true,配置或安装版本的更改将导致重启。 - daemon_args (适用于beats的1.x版本): 允许运行时参数传递给beats。
- logging_conf (默认值为
{"files":{"rotateeverybytes":10485760}}
): 日志配置。应定义为映射。映射序列化为beat配置的日志部分。 - shipper_conf (适用于beats的1.x版本): 发送方配置。应定义为映射。映射序列化为beat配置的发送方部分。
- output_conf (默认值为
{"elasticsearch":{"hosts":["localhost:9200"]}}
): 输出配置。映射序列化为beat配置的输出部分。 - beats_pid_dir (默认值为
/var/run
): beats pid文件的位置。 - beats_conf_dir (默认值为
/etc/{beat}
): beats配置文件的conf目录位置。 - default_ilm_policy (默认值未定义): 如果定义了自定义策略,则是默认策略的本地路径。
专注于ILM
默认情况下,beat将创建一个作为被部署beat一部分定义的默认策略。您可以通过在 beat_conf 中定义ILM配置来覆盖默认ILM设置。 例如:
- role: ansible-beats
beat: metricbeat
beat_conf:
setup:
ilm:
policy_file: /etc/filebeat/policies/my-default-metricbeat.json
overwrite: true
metricbeat.modules:
...
default_ilm_policy: conf/my-default-metricbeat.json
become: yes
这将把 conf/my-default-filebeat.json 复制到 /etc/filebeat/policies/my-default-metricbeat.json。该策略将作为此beat的默认策略使用。
许可证
Apache 2.0
限制
同一目标服务器上无法安装相同beast的多个实例。
有关使用的问题
我们欢迎关于如何使用该角色的问题。然而,为了保持GitHub问题列表专注于“问题”,我们请社区在 https://discuss.elastic.co/c/beats 提出问题。维护者会进行监控。
欢迎和感谢社区贡献!请确保所有贡献都包含适当的测试。