Alibaba Cloud Logstash クラスタを使用して、Logstash パイプラインの出力として指定された Alibaba Cloud Elasticsearch クラスタにデータを転送すると、いくつかの問題が発生する可能性があります。たとえば、ネットワークに接続できない、パイプライン構成が無効、ソース、Logstash パイプライン、または Elasticsearch クラスタの負荷が高い、パイプラインは開始されているが Elasticsearch クラスタにデータが書き込まれていない、関連サービスは正常に実行されているがソースからデータをクエリできない、または宛先のデータ書き込み操作が異常であるなどです。このトピックでは、これらの問題の解決策について説明します。
ネットワーク接続の失敗
確認項目 | 問題のサンプルシナリオ | 推奨される解決策 |
Logstash クラスタが、宛先の Elasticsearch クラスタおよびソースと同じネットワーク環境にあるかどうかを確認します。 説明 Alibaba Cloud Logstash クラスタと Elasticsearch クラスタは、仮想プライベートクラウド (VPC) にデプロイされます。Logstash クラスタと Elasticsearch クラスタを同じ VPC にデプロイすることをお勧めします。 | ソースはインターネット上にあり、Logstash クラスタは VPC 内にあります。 | 次のいずれかの解決策を使用します。
|
NAT ゲートウェイが正しく構成されているかどうかを確認します。 |
| ビジネス要件に基づいて、次のいずれかの解決策を使用します。
|
アップロードされた Java Database Connectivity (JDBC) ドライバが有効かどうかを確認します。 | JDBC ドライバを使用して PolarDB からデータを同期する場合、ログにエラーは報告されませんが、宛先の Elasticsearch クラスタにデータが書き込まれません。以前のバージョンの JDBC ドライバを使用すると、データが書き込まれます。 | 適切なバージョンの JDBC ドライバを使用します。詳細については、「サードパーティライブラリの構成」をご参照ください。 |
ソースのホワイトリストメカニズムまたはセキュリティグループルールが、Logstash クラスタへのアクセスを制限しているかどうかを確認します。 | Filebeat を使用して、ソースから Logstash クラスタにデータを収集します。Filebeat は、クライアント側の ECS インスタンスにデプロイされます。ただし、ECS インスタンスのポートはセキュリティグループで有効になっていません。 | ビジネス要件に基づいて、次のいずれかの解決策を使用します。
|
Logstash パイプラインの入力および出力構成で指定された RAM ユーザーに必要な権限があるかどうかを確認します。 |
| ビジネス要件に基づいて、次のいずれかの解決策を使用します。
|
無効なパイプライン構成
確認項目 | 問題のサンプルシナリオ | 推奨される解決策 |
Logstash クラスタのクラスタログをクエリし、ログにエラーが報告されているかどうかを確認します。Logstash クラスタのクラスタログをクエリする方法については、「ログのクエリ」をご参照ください。 | 必要なプラグインが Logstash クラスタにインストールされていません。たとえば、クラスタログにエラーメッセージ | 次のいずれかの解決策を使用します。
|
構成情報を手動で入力します。 | 構成情報に非表示の特殊文字が含まれていないことを確認します。特殊文字が含まれている場合は、削除します。 | |
フィルタ部分の構成に基づいてコードをフィルタリングできません。たとえば、無効な Ruby コードは、フィルタ部分の構成に基づいてフィルタリングできません。 | 次のいずれかの解決策を使用します。
| |
パイプライン構成で構成したパラメータ名またはパラメータ値が無効です。たとえば、logstash-output-elasticsearch プラグインを構成するときに、パラメータ名 hosts を host として入力するか、無効な RDS インスタンス名を入力します。 | パイプライン設定の構成方法については、オープンソース Logstash ドキュメントまたは Alibaba Cloud Logstash のベストプラクティス を参照してください。 | |
Logstash クラスタがソースまたは Elasticsearch クラスタに接続するときに接続がタイムアウトします。たとえば、Logstash クラスタが Elasticsearch クラスタに長時間接続できない場合、エラーメッセージ | Logstash クラスタが Elasticsearch クラスタに接続できること、およびソースと Elasticsearch クラスタのエンドポイントが正しいことを確認します。 | |
Elasticsearch クラスタで HTTPS が有効になっていますが、Logstash パイプラインを構成するときに http を指定します。 | パイプラインの構成を変更して、Logstash パイプライン、ソース、および Elasticsearch クラスタが同じプロトコルを使用するようにします。 |
異常な負荷
確認項目 | 問題のサンプルシナリオ | 推奨される解決策 |
ノードのディスク使用率が過度に高いかどうかを確認します。詳細については、「クラスタ監視の概要」をご参照ください。 |
| ビジネス要件に基づいて、次のいずれかの解決策を使用します。
|
ノードのメモリ使用量について、メモリ不足 (OOM) エラーが報告されているかどうかを確認します。詳細については、「クラスタ監視の概要」をご参照ください。 | ノードのメモリ使用量について OOM エラーが報告されます。その結果、ノードが起動に失敗します。 | Elasticsearch クラスタ内のノードを再起動します。 |
ソースまたは Elasticsearch クラスタの負荷が正常かどうかを確認します。 | Elasticsearch クラスタは異常な状態です。その結果、クラスタにデータを書き込むことができません。 | 書き込み操作を一時停止し、Elasticsearch クラスタを正常な状態に回復します。クラスタをスケールアウトすることをお勧めします。 |
パイプラインの開始後に Elasticsearch クラスタにデータが書き込まれない
確認項目 | 問題のサンプルシナリオ | 推奨される解決策 |
Logstash クラスタのパイプライン構成デバッグ機能を有効にし、クラスタのデバッグログを表示して、データが Logstash クラスタに転送されているかどうかを確認します。パイプライン構成デバッグ機能を有効にするには、Logstash クラスタに logstash-output-file_extend プラグインをインストールする必要があります。パイプライン構成デバッグ機能の使用方法については、「パイプライン構成デバッグ機能の使用」をご参照ください。
| データが Logstash クラスタに転送されない場合、次の状況が発生する可能性があります。
| ビジネス要件に基づいて、次のいずれかの解決策を使用します。
|
データが Logstash クラスタに転送される場合、次の状況が発生する可能性があります。
| ビジネス要件に基づいて、次のいずれかの解決策を使用します。
|
すべてのサービスが正常に実行されている間のソースからの異常なデータクエリまたは宛先への異常なデータ書き込み
確認項目 | 問題のサンプルシナリオ | 推奨される解決策 |
パイプライン構成シナリオとパイプラインプラグインの属性に基づいて、次の操作を実行します。
| JDBC を使用している場合、次の状況が発生する可能性があります。
| ビジネス要件に基づいて、次のいずれかの解決策を使用します。
|
logstash-input-elasticsearch プラグインを使用している場合、次の状況が発生する可能性があります。
| Logstash はリアルタイムデータ同期には適していません。データがソースにリアルタイムで書き込まれる場合は、長いクエリ間隔を指定することをお勧めします。これにより、ソースでの頻繁なクエリと Elasticsearch クラスタでの頻繁な書き込み操作を防ぐことができます。 | |
Logstash クラスタのスローログを表示して、データが Elasticsearch クラスタに低速で書き込まれているかどうかを確認します。スローログを表示する方法については、「ログのクエリ」をご参照ください。 | ソースと Elasticsearch クラスタの負荷にボトルネックが発生していません。ただし、[パイプラインワーカー] パラメータにはデフォルト値が保持されます。その結果、データは宛先 Elasticsearch クラスタに低速で書き込まれます。 | [パイプラインバッチサイズ] パラメータと [パイプラインワーカー] パラメータを大きい値に設定します。詳細については、「構成ファイルを使用したパイプラインの管理」をご参照ください。 |