Alibaba Cloud Logstash に関するよくある質問への回答をまとめました。
-
インターネット経由で Logstash にデータをインポートまたは Logstash からデータをエクスポートするにはどうすればよいですか。
-
セルフマネージド Kafka クラスターを Logstash の入力または出力として使用する際にエラーが発生した場合はどうすればよいですか。
-
Logstash を使用して Simple Log Service から Elasticsearch にデータを同期するにはどうすればよいですか。
-
Logstash を使用してデータを同期する際に "[routing] is missing for join field [joinField]" エラーが表示されるのはなぜですか。
-
Logstash を使用して 2 つの Elasticsearch クラスター間でデータを同期する際に、マッピングの一貫性を確保するにはどうすればよいですか。
インターネット経由のデータ転送
Logstash クラスターは VPC 内で稼働するため、インターネットアクセスには NAT ゲートウェイが必要です。詳細については、「インターネット経由のデータ転送用に NAT ゲートウェイを設定する」をご参照ください。
セルフマネージド Kafka クラスターでのエラー
主なエラーは次のとおりです。
-
No entry found for connection
原因:Logstash ノードが Kafka のホスト名を解決できません。
解決策:
server.propertiesファイルに次の内容を追加します。10.10.10.10:9092 にある Kafka サービスの例:listeners=PLAINTEXT://10.10.10.10:9092 advertised.listeners=PLAINTEXT://10.10.10.10:9092重要-
10.10.10.10:9092をお使いの Kafka クラスターのアドレスとポートに置き換えます。 -
Alibaba Cloud Kafka サービスを使用している場合は、Logstash ノードの IP アドレスを Kafka クラスターのホワイトリストに追加してください。
-
-
could not be established. Broker may not be available
原因:Kafka サービスに到達できない、または存在しません。
解決策: Kafka サービスが実行中であるか、またパイプライン設定の
bootstrap_serversの値が正しいかを確認します。
MySQL の JDBC サポート
はい、サポートしています。最初に mysql-connector-java ライブラリをアップロードしてください。詳細については、「サードパーティライブラリを設定する」をご参照ください。
ノードのモニタリング
はい、モニタリングできます。X-Pack を介して Logstash クラスターを Elasticsearch クラスターに関連付け、Kibana でノードをモニタリングします。詳細については、「X-Pack モニタリングを設定する」をご参照ください。
スクリプトファイルのアップロード
いいえ、アップロードできません。Logstash はパイプライン設定を通じてのみデータを転送します。詳細については、「設定ファイルを使用してパイプラインを管理する」をご参照ください。
HTTP 入力の設定
はい、設定できます。Logstash は HTTP または HTTPS 経由で、単一行および複数行のイベントを受信できます。詳細については、「Http input plugin」をご参照ください。
Logstash クラスターはデフォルトではインターネットからアクセスできません。インターネットからの HTTP リクエストを収集するには、NAT ゲートウェイを設定する必要があります。詳細については、「インターネット経由のデータ転送用に NAT ゲートウェイを設定する」をご参照ください。
Simple Log Service から Elasticsearch へのデータ同期
logstash-input-sls プラグインを使用します。詳細については、「logstash-input-sls プラグインを使用する」をご参照ください。
リアルタイムデータ同期
Logstash はニアリアルタイムでデータを同期します。パイプラインがアクティブで、ソースにデータが存在する限り、宛先へのデータの書き込みを継続します。
"routing is missing" エラーへの対処
親ドキュメントと子ドキュメントは同じシャード上に存在する必要があるため、子ドキュメントには routing 値が必要です。宛先インデックスのプライマリシャード数を 1 に設定し、パイプライン設定に routing =>"0" を追加してください。
パイプライン更新がスタックした場合のトラブルシューティング
クラスターのメインログを確認して原因を特定します (ログを照会する)。主な原因と解決策は次のとおりです。
|
原因 |
解決策 |
|
パイプライン設定が正しくありません。 |
更新を一時停止します。クラスターが一時停止したら、パイプライン設定を修正してクラスターを再起動します。詳細については、「クラスタータスクの進捗詳細を表示する」をご参照ください。 |
|
ディスク使用率が高い。 |
クラスターをアップグレードします。詳細については、「クラスターをアップグレードする」をご参照ください。アップグレード後、クラスターを更新し、更新の進捗を確認します。 |
|
宛先の Elasticsearch クラスター (output: elasticsearch) で自動インデックス作成が有効になっていません。 |
Elasticsearch クラスターで自動インデックス作成を有効にします。詳細については、「YML パラメーターを設定する」をご参照ください。操作完了後、クラスターを更新し、変更の進捗をモニタリングします。 |
|
Beats 入力ポートが 8000~9000 の範囲外です。 |
更新を一時停止します。クラスターが一時停止したら、パイプライン設定でポートを 8000~9000 の範囲内の値に変更し、クラスターを再起動します。 |
|
ソースまたは宛先でパブリック IP アドレスを使用しています。 |
次のいずれかの方法で対処します。
|
|
パイプライン設定に |
次のいずれかの方法で対処します。
|
プライベート IP アドレスへの ping
デフォルトでは、Logstash クラスターのプライベート IP アドレスに ping できません。代わりに telnet を使用してネットワークの接続をテストしてください。
Elasticsearch データ同期におけるマッピングの一貫性
Alibaba Cloud Elasticsearch は、セキュリティ上の理由からデフォルトで [自動インデックス] を無効にしています。Logstash は Create index API ではなく、データを直接送信してインデックスを作成します。データを転送する前に、宛先クラスターで [自動インデックス] を有効にするか、マッピング付きでインデックスを事前に作成してください。
rubydebug モードのサポート
いいえ、サポートしていません。代わりに logstash-output-file_extend プラグインを使用してデバッグログを出力してください。rubydebug のようなモードでは stdout 出力が必要ですが、Alibaba Cloud Logstash はサポートしていません。