Filebeatを使用したElasticsearchログデータの収集
Filebeatを使用してElasticsearchのログファイルを監視し、ログイベントを収集して監視クラスターに送信できます。最近のログはKibanaのMonitoringページで確認できます。
Elastic Agentを使用している場合は、ログ収集のためにFilebeatを展開しないでください。代わりに、Elasticsearch統合を構成してログを収集します。
- 1. Elasticsearchが実行中であり、Filebeatからデータを受信する準備が整った監視クラスターがあることを確認します。
本番環境では、データを保存するために別のクラスター(監視クラスターと呼ばれます)を使用することを強くお勧めします。別の監視クラスターを使用することで、本番クラスターの停止が監視データへのアクセスに影響を与えるのを防ぎます。また、監視活動が本番クラスターのパフォーマンスに影響を与えるのを防ぎます。詳細については、本番環境での監視を参照してください。 - 2. 監視したいログを特定します。
FilebeatのElasticsearchモジュールは、監査ログ、非推奨ログ、gcログ、サーバーログ、およびスローログを処理できます。Elasticsearchログの場所に関する詳細は、path.logs設定を参照してください。
構造化された(*.json
)バージョンと非構造化された(プレーンテキスト)バージョンの両方のログがある場合は、構造化されたログを使用する必要があります。そうしないと、Kibanaで適切なコンテキストに表示されない可能性があります。 - 3. Filebeatをインストールし、監視したいログを含むElasticsearchノードにインストールします。
- 4. ログデータを送信する場所を特定します。
たとえば、Filebeatの設定ファイル(filebeat.yml
)で監視クラスターのElasticsearch出力情報を指定します。
Yaml
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["http://es-mon-1:9200", "http://es-mon-2:9200"]
# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
この例では、データはノードがある監視クラスターに保存されています。es-mon-1 と es-mon-2 . |
監視クラスターを暗号化通信を使用するように構成した場合は、HTTPS経由でアクセスする必要があります。たとえば、hosts
のような設定を使用します。
Elasticsearchの監視機能はインジェストパイプラインを使用するため、監視データを保存するクラスターには少なくとも1つのインジェストノードが必要です。
監視クラスターでElasticsearchのセキュリティ機能が有効になっている場合、Filebeatがメトリクスを正常に送信できるように、有効なユーザーIDとパスワードを提供する必要があります。
これらの設定オプションに関する詳細は、Elasticsearch出力の構成を参照してください。
- 5. オプション: データを視覚化する場所を特定します。
Filebeatは、Kibanaのダッシュボード、視覚化、および検索の例を提供します。適切なKibanaインスタンスにダッシュボードを読み込むには、各ノードのFilebeat設定ファイル(filebeat.yml
)にsetup.kibana
情報を指定します。
Yaml
setup.kibana:
host: "localhost:5601"
#username: "my_kibana_user"
#password: "YOUR_PASSWORD"
本番環境では、監視クラスター用に専用のKibanaインスタンスを使用することを強くお勧めします。
セキュリティ機能が有効になっている場合、FilebeatがKibanaに接続できるように、有効なユーザーIDとパスワードを提供する必要があります:
- 5.1. 監視クラスターに
kibana_admin
組み込みロールまたは同等の権限を持つユーザーを作成します。 - 5.2. Filebeat設定ファイルのElasticsearch出力情報に
username
およびpassword
設定を追加します。例ではハードコーディングされたパスワードが示されていますが、機密値はシークレットキーストアに保存するべきです。
キバナエンドポイントの構成を参照してください。- 6. Elasticsearchモジュールを有効にし、各ノードで初期Filebeat環境を設定します。
たとえば:
詳細については、Elasticsearchモジュールを参照してください。filebeat modules enable elasticsearch
filebeat setup -e
- 7. 各ノードのFilebeatでElasticsearchモジュールを構成します。
監視したいログがデフォルトの場所にない場合は、modules.d/elasticsearch.yml
ファイル内の適切なパス変数を設定します。Elasticsearchモジュールの構成を参照してください。
JSONログがある場合は、プレーンテキストログの代わりにvar.paths
設定をそれらを指すように構成します。 - 8. Filebeatを開始します。
Filebeatをどのようにインストールしたかによっては、Filebeatモジュールを実行しようとしたときにファイルの所有権や権限に関連するエラーが表示されることがあります。設定ファイルの所有権と権限を参照してください。 - 9. 監視クラスターに適切なインデックスが存在するか確認します。
たとえば、cat indicesコマンドを使用して、新しいfilebeat-*
インデックスがあることを確認します。
KibanaのMonitoring UIを使用する場合、.monitoring-*
インデックスも必要です。これらのインデックスは、Elastic Stack製品に関するメトリクスを収集するときに生成されます。たとえば、Metricbeatを使用した監視データの収集を参照してください。 - 10. Kibanaで監視データを表示。
- 6. Elasticsearchモジュールを有効にし、各ノードで初期Filebeat環境を設定します。