elastic.beats
アーカイブ
このプロジェクトはもはやメンテナンスされていません。代替のスタート体験を考えているなら、以下のオプションを試すことをお勧めします:
- Elastic Cloudで無料トライアルを開始する、私たちのホスティングサービスです。
- Kubernetesを通じてスタックを起動したい場合は、Elastic Cloud on Kubernetes (ECK)を確認してください。
- 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
次に、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で質問を提起するようお願いします。これをメンテナが監視します。
コミュニティの貢献は常に感謝され歓迎されています!すべての貢献には適切なテストを含めることを確認してください。