ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
OCIストリーミングをKafkaサーバーとして使用して、OCIロギングからLogstashへのログを収集します
イントロダクション
Oracle Cloud Infrastructure (OCI) Streamingを使用すると、Apache Kafkaのユーザーは、独自のZookeeperおよびKafkaクラスタに必要な設定、メンテナンスおよびインフラストラクチャ管理をオフロードできます。StreamingはほとんどのKafka APIと互換性があるため、Kafka用に記述されたアプリケーションを使用して、コードをリライトすることなくストリーミング・サービスとの間でメッセージを送信したり受信したりできます。
このチュートリアルでは、OCIストリーミングサービスをKafkaサーバーとして使用する方法を学習します。このサービスは、OCIロギング・サービスからログを含む公開リクエストを受信し、OCI外部のLogstashサーバーからリクエストをサブスクライブします。
目的
- OCIサービス・コネクタ・ハブの作成
- OCIストリーミングをKafkaサーバーとして作成して使用します
- OCI Service Connector HubとOCI Streaming Kafkaを使用して、OCI Loggingサービスからログを取得し、Logstashにリダイレクトします
前提条件
-
Oracle Cloudアカウント。アカウントがない場合は、Oracle Cloud Free Tierアカウントのサインアップできます。
-
OCIのサービスごとに、サービスが相互に通信できるようにするポリシーを提供する必要があります。詳細は、次のリンクを参照してください。
アーキテクチャ
このチュートリアルでは、次のアーキテクチャに示すように、OCIロギング、OCIサービス・コネクタ・ハブおよびOCIストリーミングのOCIサービスを使用します:
タスク1: Oracle Cloud Infrastructureの設定
-
Kafkaサーバーのようにストリーム・プールを作成します。
-
ストリームを作成します。これはKafkaトピックとみなされます。OCIストリーミングをKafkaサーバーとして公開またはサブスクライブするトピックを指定するには、ストリームの名前が必要です。
-
サービス・コネクタの作成ストリームを作成したら、サービス・コネクタを作成できます。次のイメージに示すように、ソース・ロギングおよびターゲット・ストリーミングを追加します。
-
ソース構成の場合は、ログ・グループおよびログ値を空白のままにして、次のイメージに示すように、コネクタはテナンシからすべてのログを取得します:
-
ターゲット構成には、以前に作成したストリームのストリーム名を指定します。
-
タスク2: Logstashサーバーの設定
-
プリファレンスに基づいて、VMインスタンスを作成し、それを
ssh
アクセス権を持つように構成するか、インターネット・アクセスを持つローカル・ステーションを使用します。 -
Logstashサーバーを使用するインスタンスでLogstashをダウンロードします。このチュートリアルでは、
v8.6.1
を使用しました。 -
ダウンロードが完了したら、パッケージを解凍してLogstashフォルダに移動します。
-
次のコード・スニペットに示すように、input.confおよびjaas.confの2つのファイルを作成します。
input.conf
input { kafka { bootstrap_servers => "cell-1.streaming.<oci_region>.oci.oraclecloud.com:9092" topics => ["kafka_topic"] security_protocol => "SASL_SSL" sasl_mechanism => "PLAIN" jaas_path => "./jaas.conf" auto_offset_reset => "earliest" consumer_threads => 1 } } output { stdout { codec => rubydebug } }
jaas.conf
KafkaClient { org.apache.kafka.common.security.plain.PlainLoginModule required username="<username_from_kafka_connection_settings>" password="<auth_token>"; };
-
以前に作成したストリーム・プールから、jaas.confファイルの構成をKafka接続設定のSASL接続文字列からコピーします。
-
次のコマンドを実行して、OCIストリーミングからログを使用するKafkaクライアントでLogstashを起動します:
./bin/logstash -f input.conf
関連リンク
謝辞
- 作成者 - Cristian Vlad (プリンシパル・クラウド・アーキテクト)
- コントリビュータ - Gabriel Feodorov (クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Collect logs from OCI Logging into Logstash using OCI Streaming as a Kafka server
F79037-01
March 2023
Copyright © 2023, Oracle and/or its affiliates.