mircomasa.filebeat
Filebeat ロール
概要
このロールは以下を行います:
- Ubuntu、CentOS、Windows に Filebeat をインストールします。
- 準備した設定ファイル(ログパス、Elasticsearch への接続など)をコピーします。
ロールのタスク
- サーバーの準備(Elasticsearch リポジトリを追加)
- [オプション] カスタムパス用のフォルダを作成
- Filebeat をインストール
- 設定ファイルをコピー
要件
- インストールのための Ansible 最小バージョン: 2.5
- サポートされているOS:
- CentOS
- 6、7
- Ubuntu
- 16.04、18.04
- Debian
- 8、9
- Windows
- CentOS
ロール変数
以下の変数は Playbook で "variable: value" と設定できます。
filebeat_version
インストールする主要な Filebeat ブランチを選択します(5.x 或いは 6.x 現在の安定バージョン)。デフォルト値は6
です。filebeat_last_version
インストールする特定の Filebeat バージョンを選択します。デフォルト値は6.6.0
です。elastic_gpg_key
Elasticsearch リポジトリからの GPG キー。デフォルト値はhttps://artifacts.elastic.co/GPG-KEY-elasticsearch
です。filebeat_node_name
Filebeat ノードの名前。デフォルト値は{{ inventory_hostname }}
です。このオプションが未定義の場合、ホスト名が使用されます。filebeat_ssl_enabled
Filebeat と Logstash/Elasticsearch の間の SSL 接続をオン/オフにします。SSL オプションは以下のように適切な辞書フィールドで設定する必要があります。
ssl:
key: "/etc/pki/tls/private/server.key"
certificate: "/etc/pki/tls/certs/server.crt"
certificate_authorities: "/etc/pki/CA/ca-root.pem"
Windows のセットアップの場合:
ssl:
key: 'c:\tls\private\server.key'
certificate: 'c:\tls\certs\server.pem'
certificate_authorities: 'c:\CA\ca-root.pem'
設定オプションの path
セクションでは Filebeat がどのファイルを探すかを定義します。たとえば、Filebeat は設定パスで Elasticsearch テンプレートファイルを探し、ログパスにログファイルを書き込みます。Filebeat はデータパスでレジストリファイルを探します。Linux ホストのデフォルト値は以下のように設定されています:
path:
home: /usr/share/filebeat
config: /etc/filebeat
data: /var/lib/filebeat
logs: /var/log/filebeat
Windows セットアップの場合、デフォルトパスは以下のようになります:
path:
home: 'c:\program files\filebeat'
config: 'c:\program files\filebeat'
data: 'c:\programdata\filebeat'
logs: 'c:\programdata\filebeat\logs'
win_download_path
Windows の Filebeat パッケージをダウンロードして解凍するための一時ディレクトリ。デフォルト値は'{{ ansible_env.TEMP }}/filebeat'
です(ansible_env.TEMP の値がイデポテンスの問題を解決します)。input_logpath
ログファイルのパス。
*NIX OS のファミリーのデフォルト値は "/var/log/*.log"
です。
WIN OS のファミリーのデフォルト値は 'c:\windows\*.log'
です。
変数 filebeat_inputs
はパイプラインで処理されるログのタイプ、ログパス、およびそのタイプのログを保存する Elasticsearch インデックスを定義します。以下の例のように、YAML 形式でさまざまなパス、ログタイプ、インデックス名を持つ複数の入力を指定できます:
filebeat_inputs:
- name: hybris
paths:
- '/var/log/console*.log'
fields:
logtype: hybris
index_name: hybris-console
- name: access
paths:
- '/var/log/access*.log'
- '/var/log/nginx_access*.log'
fields:
logtype: access
index_name: nginx-access
出力のカスタマイズ
filebeat_output
データ送信用の出力を設定します(elasticsearch
またはlogstash
)。デフォルト値はelasticsearch
です。filebeat_elasticsearch_output.hosts
接続するホストの配列。デフォルト値はlocalhost
です。filebeat_elasticsearch_output.port
カスタムポートを設定するための値。デフォルト値は9200
です。filebeat_logstash_outputs
接続するホストとポートの配列。デフォルト値はlocalhost:5044
です。
高度な設定パラメータ
filebeat(systemd)\initd
セクションの設定オプションは、*nix OS に応じてどの初期化スクリプトを使用して Filebeat サービスを管理するかを定義します。カスタムパスが設定されている場合、それも考慮されます。
filebeat_service_name
Filebeat サービスを管理する nssm\init スクリプトの名前。filebeat_bulk_max_size
単一の Logstash リクエストでバルクする最大イベント数。デフォルト値は500
です。filebeat_worker
Elasticsearch ホストあたりのワーカー数。デフォルト値は1
です。filebeat_logging_to_syslog
すべてのログ出力を syslog に送信します。デフォルト値はfalse
です。filebeat_logging_to_files
すべてのログ出力を回転ファイルに送信します。デフォルト値はtrue
です。filebeat_rotateeverybytes
ログファイルのサイズ制限を定義します。デフォルト値は104857600
=100MB
です。filebeat_keepfiles
保持するログファイルの数。デフォルト値は30
です。filebeat_ignore_older
無視されるファイルの値(2h、5m などの時間文字列が使用可能)。デフォルト値は0
(無効)です。filebeat_scan_frequency
Filebeat がファイルの更新をチェックする頻度を定義します。デフォルト値は15s
です。filebeat_harvester_buffer_size
バッファサイズを定義します。デフォルト値は65535
です。filebeat_logname
ログファイルの名前。デフォルト値は"filebeat.log"
です。
依存関係
ca-cert(SSL のインストール時のみ)
例 Playbook
Filebeat 6.x バージョンのインストール:
- name: Filebeat をインストール
hosts: all
roles:
- role: ansible-role-filebeat
ログファイルと Elasticsearch 出力のカスタムパスを指定して Filebeat 6.x バージョンをインストール:
- name: Filebeat をインストール
hosts: all
roles:
- role: ansible-role-filebeat
vars:
input_logpath: "/var/log/messages"
filebeat_elasticsearch_output:
hosts:
- elasticsearch.example.com
port: 9200
ライセンス
Apache
著者情報
著者:
- Lean Delivery Team team@lean-delivery.com