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

  1. output.elasticsearch:
  2. # Array of hosts to connect to.
  3. hosts: ["http://es-mon-1:9200", "http://es-mon-2:9200"]
  4. # Optional protocol and basic auth credentials.
  5. #protocol: "https"
  6. #username: "elastic"
  7. #password: "changeme"
この例では、データはノードがある監視クラスターに保存されています。
es-mon-1es-mon-2.

監視クラスターを暗号化通信を使用するように構成した場合は、HTTPS経由でアクセスする必要があります。たとえば、hostsのような設定を使用します。
Elasticsearchの監視機能はインジェストパイプラインを使用するため、監視データを保存するクラスターには少なくとも1つのインジェストノードが必要です。
監視クラスターでElasticsearchのセキュリティ機能が有効になっている場合、Filebeatがメトリクスを正常に送信できるように、有効なユーザーIDとパスワードを提供する必要があります。
これらの設定オプションに関する詳細は、Elasticsearch出力の構成を参照してください。

  • 5. オプション: データを視覚化する場所を特定します。
    Filebeatは、Kibanaのダッシュボード、視覚化、および検索の例を提供します。適切なKibanaインスタンスにダッシュボードを読み込むには、各ノードのFilebeat設定ファイル(filebeat.yml)にsetup.kibana情報を指定します。

Yaml

  1. setup.kibana:
  2. host: "localhost:5601"
  3. #username: "my_kibana_user"
  4. #password: "YOUR_PASSWORD"

本番環境では、監視クラスター用に専用のKibanaインスタンスを使用することを強くお勧めします。
セキュリティ機能が有効になっている場合、FilebeatがKibanaに接続できるように、有効なユーザーIDとパスワードを提供する必要があります:

  • 5.1. 監視クラスターにkibana_admin組み込みロールまたは同等の権限を持つユーザーを作成します。
  • 5.2. Filebeat設定ファイルのElasticsearch出力情報にusernameおよびpassword設定を追加します。例ではハードコーディングされたパスワードが示されていますが、機密値はシークレットキーストアに保存するべきです。
    キバナエンドポイントの構成を参照してください。
    • 6. Elasticsearchモジュールを有効にし、各ノードで初期Filebeat環境を設定します。
      たとえば:
      1. filebeat modules enable elasticsearch
      2. filebeat setup -e
      詳細については、Elasticsearchモジュールを参照してください。
    • 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で監視データを表示