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

次に、beatsロールを追加したプレイブックyamlを作成します。 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に記載されています。この変数をプレイブック内でオーバーライドして別のバージョンをインストールすることができます。現在は1つの7.xバージョンと1つの6.xバージョンでのみテストしていますが(本執筆時点での7.17.0および6.8.23)、このロールは他のバージョンでも大体の場合に動作するはずです。
  • Beat製品はbeat変数に記載されています。現在テストしているBeatsはFilebeat、Metricbeat、Packetbeatですが、このロールはThe Beats Familyの他のメンバーでも大体の場合に動作するはずです。

テスト

このプレイブックは、CIとローカルテストのためにKitchenを使用します。

要件

  • 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"(The Beats Familyの他のBeatsも大体の場合に動作しますが、現在はテストされていません)。
  • beat_conf (必須): Beat設定。マップとして定義する必要があります。
  • beats_version (デフォルトは7.17.0): Beatsのバージョン。
  • version_lock (デフォルトはfalse): trueに設定すると、インストールされたバージョンがロックされ、他のプロセスによる更新を防ぎます。これにより、ロールが次回実行時にビートを更新できなくなることはありません(必要に応じてロックを解除し、再ロックします)。
  • use_repository (デフォルトはtrue): trueの場合、yumまたはaptにElasticリポジトリを使用します。falseの場合、カスタムのcustom_package_urlを指定する必要があります。
  • beats_add_repository (デフォルトは{use_repository}): trueの場合、yumまたはaptにElasticリポジトリをインストールします。falseの場合、現在のリポジトリが使用されます。リポジトリにすでにBeatsパッケージがある場合に便利です。
  • start_service (デフォルトはtrue): trueの場合サービスが開始され、falseの場合開始されません。
  • restart_on_change (デフォルトはtrue): 設定またはインストールされたバージョンの変更は、trueの場合に再起動を引き起こします。
  • daemon_args (Beatsの1.xバージョンに適用): ビートにランタイムパラメータを渡すことができます。
  • logging_conf (デフォルトは{"files":{"rotateeverybytes":10485760}}): ロギング設定。マップとして定義する必要があります。マップはビート設定のロギングセクションにシリアライズされます。
  • shipper_conf (Beatsの1.xバージョンに適用): シッパー設定。マップとして定義する必要があります。マップはビート設定のシッパーセクションにシリアライズされます。
  • output_conf (デフォルトは{"elasticsearch":{"hosts":["localhost:9200"]}}): 出力設定。マップはビート設定の出力セクションにシリアライズされます。
  • beats_pid_dir (デフォルトは/var/run): Beatsのpidファイルの場所。
  • beats_conf_dir (デフォルトは/etc/{beat}): Beats設定ファイルのconfディレクトリの場所。
  • default_ilm_policy (デフォルト未定義): カスタムポリシーが定義されている場合のデフォルトポリシーへのローカルパス。

ILMに焦点を合わせる

デフォルトでは、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-filebeat.json*にコピーされます。このポリシーはこのビートのデフォルトポリシーとして使用されます。

ライセンス

Apache 2.0

制限事項

同じビートの複数のインスタンスを同じターサーバーにインストールすることはできません。

使用に関する質問

役割の使用方法についての質問を歓迎します。ただし、GitHubの問題リストを「問題」に集中させるために、コミュニティはhttps://discuss.elastic.co/c/beatsで質問を提起するようお願いします。これをメンテナが監視します。

コミュニティの貢献は常に感謝され歓迎されています!すべての貢献には適切なテストを含めることを確認してください。

プロジェクトについて

Beats for Linux

インストール
ansible-galaxy install elastic.beats
ライセンス
other
ダウンロード
782.4k
所有者