ログ収集¶
Guanceは、包括的なログ収集機能を備えています。主にホストログ収集とK8Sコンテナログ収集に分けられます。両者ではDataKitのインストール方法が異なり、ログ収集の方法もそれぞれ異なります。収集されたログデータはGuanceに一元集約され、統一された保存、検索、分析が行われ、問題の迅速な特定と解決を支援します。
本記事では、ホスト環境でのログ収集方法を主に説明します。K8S環境でのログ収集については、ベストプラクティス Kubernetesクラスターにおけるログ収集のいくつかの方法 を参照してください。
前提条件¶
または、Guance にログインし、インテグレーション > DataKit で、ホストOSに応じて Linux、Windows、MacOS を選択し、DataKitのインストール手順を取得することもできます。
ログコレクターの設定¶
DataKitのインストールが完了したら、標準ログ収集またはカスタムログ収集の2つの方法で、システムログやアプリケーションログ(Nginx、Redis、Docker、ESなど)といったさまざまなログデータの収集を行うことができます。
注意
ログコレクターを設定する際は、ログのPipeline機能を有効にし、ログの時間 time とログレベル status のフィールドを抽出する必要があります。
time:ログの生成時刻。timeフィールドが抽出されないか、解析に失敗した場合は、デフォルトでシステムの現在時刻が使用されます。status:ログのレベル。statusフィールドが抽出されない場合は、デフォルトでstatusがunknownに設定されます。
詳細はドキュメント Pipelineの設定と使用 を参照してください。
ログデータの保存¶
ログコレクターの設定が完了したら、DataKitを再起動すると、ログデータが一元的にGuanceのワークスペースに送信されます。
- ログデータ量が多いユーザーは、ログインデックス または ログブラックリスト を設定することで、データ保存コストを節約できます。
- ログを長期間保存する必要があるユーザーは、ログバックアップ を使用してログデータを保存できます。
大きな時間差のあるデータの書き込み
書き込みタイムスタンプが現在時刻と大きく異なるデータを書き込むと、ストレージエンジン内のデータブロックのmin-maxインデックスの効率が低下します。これにより、ごく小さな時間範囲のクエリであっても、大量のデータブロックをスキャンする必要が生じ、クエリ性能が著しく低下します。
この問題を緩和するため、システムはデフォルトで、タイムスタンプが現在時刻から12時間以上ずれているデータポイントを書き込み時にフィルタリングします(データポイントのみを破棄し、データパケット全体は破棄しません)。この仕組みにより、インデックスの有効性が維持され、クエリ効率が向上します。
Kodo-X の設定追加:
kodo-x.yaml:3つのパラメータを追加
enable_discard_expired_data:時間差の大きなデータを破棄するかどうか(デフォルトで有効)
discard_expired_seconds:時間差の大きいと判断する基準(デフォルト値12時間)
discard_data_type:破棄するデータタイプ(デフォルト値):