elastic.beats

存档

该项目不再维护。对于其他入门体验,您可以尝试以下选项:

ansible-beats

构建状态 Ansible Galaxy

此角色提供了一种安装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.06.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 提出问题。维护者会进行监控。

欢迎和感谢社区贡献!请确保所有贡献都包含适当的测试。

安装
ansible-galaxy install elastic.beats
许可证
other
下载
782.4k
拥有者