このトピックでは、Flumeを使用してログデータを消費する方法について説明します。 aliyun-log-flumeプラグインを使用して、Simple Log ServiceをFlumeに接続し、Simple log Serviceにログデータを書き込むか、Simple Log Serviceからログデータを消費することができます。
背景情報
aliyun-log-flumeプラグインは、Simple Log ServiceとFlumeを接続するために使用されます。 Simple Log ServiceがFlumeに接続された後、Simple Log ServiceはFlumeを使用してHadoop分散ファイルシステム (HDFS) やKafkaなどの他のシステムに接続できます。 aliyun-log-flumeプラグインは、Simple Log ServiceとFlumeを接続するためのシンクとソースを提供します。
シンク: 他のデータソースからデータを読み取り、データをSimple Log Serviceに書き込みます。
Source: Simple log Serviceからログデータを消費し、ログデータを他のシステムに書き込みます。
詳細については、「aliyun-log-flume」をご参照ください。
手順
Flumeをダウンロードしてインストールします。
詳細については、「Apache Flume」をご参照ください。
aliyun-log-flumeプラグインをダウンロードし、プラグインを***/flume/libディレクトリに移動します。
プラグインをダウンロードするには、[aliyun-log-flume-1.3.jar] をクリックします。
***/flume/confディレクトリに、flumejob.confという名前の設定ファイルを作成します。
Flumeを起動します。
シンク
Flumeを使用して、他のデータソースからSimple Log Serviceにデータを書き込むようにシンクを設定できます。 解析には次のモードがサポートされています。
シンプル: Flumeイベントは、フィールドとしてSIMPLE Log Serviceに書き込まれます。
DELIMITED: Flumeイベントは、設定された列名に基づいてフィールドに解析され、Simple Log Serviceに書き込まれます。
次の表に、シンクのパラメーターを示します。
パラメーター | 必須 | 説明 |
タイプ | 課金されます | シンクのタイプ。 デフォルト値: com.aliyun.Loghub.flume.sink.LoghubSink. |
エンドポイント | 課金されます | Simple Log Serviceプロジェクトのエンドポイント。 例: |
project | 課金されます | プロジェクトの名前。 |
logstore | 課金されます | ログストアの名前 |
accessKeyId | 課金されます | Alibaba Cloudが提供するAccessKey ID。 AccessKey IDは、ユーザーを識別するために使用されます。 アカウントのセキュリティを確保するために、RAMユーザーのAccessKeyペアを使用することを推奨します。 AccessKeyペアを取得する方法の詳細については、「AccessKeyペア」をご参照ください。 |
accessKey | 課金されます | Alibaba Cloudが提供するAccessKeyシークレット。 AccessKeyシークレットは、ユーザーのキーを認証するために使用されます。 アカウントのセキュリティを確保するために、RAMユーザーのAccessKeyペアを使用することを推奨します。 AccessKeyペアを取得する方法の詳細については、「AccessKeyペア」をご参照ください。 |
batchSize | 課金されません | 一度にSimple Log Serviceに書き込まれるデータエントリの数。 デフォルト値は 1000 です。 |
maxBufferSize | 課金されません | キャッシュキュー内のデータエントリの最大数。 デフォルト値は 1000 です。 |
シリアライザー | 課金されません | Flumeイベントのシリアル化モード。 有効な値:
|
列 | 課金されません | 列。 シリアライザーパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 複数の列はコンマ (,) で区切ります。 列は、データエントリと同じ順序でソートされます。 |
separatorChar | 課金されません | 区切り文字。1文字でなければなりません。 シリアライザーパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 デフォルトでは、コンマ (,) が使用されます。 |
quoteChar | 課金されません | 引用だ シリアライザーパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 デフォルトでは、二重引用符 (") が使用されます。 |
escapeChar | 課金されません | エスケープ文字。 シリアライザーパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 デフォルトでは、二重引用符 (") が使用されます。 |
useRecordTime | 課金されません | データがSimple log Serviceに書き込まれるときに、データエントリのtimestampフィールドの値をログ時刻として使用するかどうかを指定します。 デフォルト値:false この値は、現在の時刻がログ時刻として使用されることを示します。 |
シンクの設定例の詳細については、『GitHub』をご参照ください。
ソース
Flumeを使用して、Simple Log Serviceから他のデータソースにデータを送信するようにソースを設定できます。 次のモードが書き込みにサポートされています。
DELIMITED: ログデータは区切り文字モードでFlumeに書き込まれます。
JSON: ログデータはJSONモードでFlumeに書き込まれます。
次の表に、ソースのパラメーターを示します。
パラメーター | 必須 | 説明 |
タイプ | 課金されます | ソースのタイプ。 デフォルト値: com.aliyun.Loghub.flume.source.LoghubSource。 |
エンドポイント | 課金されます | Simple Log Serviceプロジェクトのエンドポイント。 例: |
project | 課金されます | プロジェクトの名前。 |
logstore | 課金されます | ログストアの名前 |
accessKeyId | 課金されます | Alibaba Cloudが提供するAccessKey ID。 AccessKey IDは、ユーザーを識別するために使用されます。 アカウントのセキュリティを確保するために、RAMユーザーのAccessKeyペアを使用することを推奨します。 AccessKeyペアを取得する方法の詳細については、「AccessKeyペア」をご参照ください。 |
accessKey | 課金されます | Alibaba Cloudが提供するAccessKeyシークレット。 AccessKeyシークレットは、ユーザーのキーを認証するために使用されます。 アカウントのセキュリティを確保するために、RAMユーザーのAccessKeyペアを使用することを推奨します。 AccessKeyペアを取得する方法の詳細については、「AccessKeyペア」をご参照ください。 |
heartbeatIntervalMs | 課金されません | クライアントがハートビートメッセージをSimple Log Serviceに送信する間隔。 デフォルト値: 30000 単位:ミリ秒。 |
fetchIntervalMs | 課金されません | Simple Log Serviceからデータを読み取る間隔。 デフォルト値:100 単位:ミリ秒。 |
fetchInOrder | 課金されません | ログデータがSimple log Serviceに書き込まれる順序でログデータを消費するかどうかを指定します。 デフォルト値:false |
batchSize | 課金されません | 一度に読み取られるデータエントリの数。 デフォルト値:100 |
consumerGroup | 課金されません | ログデータの読み取りに使用されるコンシューマグループの名前。 |
initialPosition | 課金されません | データが読み取られる開始点。 有効な値: begin、end、timestamp デフォルト値: begin。 説明 チェックポイントがSimple Log Serviceに存在する場合、チェックポイントは優先的に使用されます。 |
timestamp | 課金されません | UNIXタイムスタンプ。 initialPositionパラメーターをtimestampに設定した場合、このパラメーターを設定する必要があります。 |
デシリアライザー | 課金されます | イベントの逆シリアル化モード。 有効な値:
|
列 | 課金されません | 列。 deserializerパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 複数の列はコンマ (,) で区切ります。 列は、データエントリと同じ順序でソートされます。 |
separatorChar | 課金されません | 区切り文字。1文字でなければなりません。 deserializerパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 デフォルトでは、コンマ (,) が使用されます。 |
quoteChar | 課金されません | 引用だ deserializerパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 デフォルトでは、二重引用符 (") が使用されます。 |
escapeChar | 課金されません | エスケープ文字。 deserializerパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 デフォルトでは、二重引用符 (") が使用されます。 |
appendTimestamp | 課金されません | timestampパラメーターで指定したタイムスタンプをフィールドとして各ログに追加するかどうかを指定します。 deserializerパラメーターをDELIMITEDに設定した場合、このパラメーターを設定する必要があります。 デフォルト値:false |
sourceAsField | 課金されません | ログソースを__source__という名前のフィールドとして追加するかどうかを指定します。 deserializerパラメーターをJSONに設定した場合、このパラメーターを設定する必要があります。 デフォルト値:false |
tagAsField | 課金されません | ログタグをフィールドとして追加するかどうかを指定します。 このフィールドの名前は__tag __:{ Tag name} の形式です。 deserializerパラメーターをJSONに設定した場合、このパラメーターを設定する必要があります。 デフォルト値:false |
timeAsField | 課金されません | __time__という名前のフィールドとしてログ時間を追加するかどうかを指定します。 deserializerパラメーターをJSONに設定した場合、このパラメーターを設定する必要があります。 デフォルト値:false |
useRecordTime | 課金されません | Simple log Serviceからログデータを読み取るときに、ログのtimestampフィールドの値をログ時刻として使用するかどうかを指定します。 デフォルト値:false この値は、現在の時刻がログ時刻として使用されることを示します。 デフォルト値:false |
ソースの設定例の詳細については、『GitHub』をご参照ください。