Use o plugin aliyun-log-flume para trocar dados de log entre o Log Service e o Apache Flume.
Informações básicas
O aliyun-log-flume é um plugin que conecta o Log Service ao Apache Flume e permite a troca de dados com outros sistemas, como HDFS e Kafka. Ele fornece um sink e uma source.
Sink: o Flume lê dados de outras fontes e os grava no Log Service.
Source: o Flume consome dados de log do Log Service e os envia a outros sistemas.
Para obter mais informações, consulte aliyun-log-flume.
Procedimento
-
Baixe e instale o Apache Flume.
Para obter mais informações, consulte Apache Flume.
-
Baixe o plugin aliyun-log-flume e coloque-o no diretório **
/flume/lib** .Para obter mais informações, consulte aliyun-log-flume-1.3.jar.
-
No diretório **
/flume/conf** , crie um arquivo de configuração chamado flumejob.conf. Inicie o Flume.
Sink
Um sink grava dados de outras fontes no Log Service. Há suporte a dois formatos de análise:
SIMPLE: grava todo o evento do Flume como um único campo no Log Service.
DELIMITED: trata o evento do Flume como dados delimitados por separador, analisa-os em campos com base nos nomes das colunas configuradas e os grava no Log Service.
A tabela a seguir lista os parâmetros do sink.
|
Parâmetro |
Obrigatório |
Descrição |
|
type |
Sim |
Tipo do sink. Defina este parâmetro como |
|
endpoint |
Sim |
Endpoint do projeto do Log Service. Exemplo: |
|
project |
Sim |
Nome do projeto do Log Service. |
|
LogStore |
Sim |
Nome do Logstore. |
|
accessKeyId |
Sim |
AccessKey ID da sua conta Alibaba Cloud. Recomendamos usar o par de AccessKeys de um usuário RAM. Para obter mais informações, consulte Create an AccessKey. |
|
accessKey |
Sim |
AccessKey secret da sua conta Alibaba Cloud. Recomendamos usar o par de AccessKeys de um usuário RAM. Para obter mais informações, consulte Create an AccessKey. |
|
batchSize |
Não |
Número de entradas de dados a serem gravadas no Log Service em cada lote. Valor padrão: 1.000. |
|
maxBufferSize |
Não |
Tamanho da fila de buffer. Valor padrão: 1.000 entradas. |
|
serializer |
Não |
Formato de serialização do evento. Valores válidos:
|
|
columns |
Não |
Obrigatório quando |
|
separatorChar |
Não |
Usado quando |
|
quoteChar |
Não |
Usado quando |
|
escapeChar |
Não |
Usado quando |
|
useRecordTime |
Não |
Defina se o campo |
Para exemplos de configuração de sink, consulte GitHub.
Source
Uma source consome dados de log do Log Service e os envia a outros sistemas. Há suporte aos seguintes formatos de saída:
DELIMITED: grava dados no Flume em formato delimitado.
JSON: grava dados no Flume em formato JSON.
A tabela a seguir lista os parâmetros da source.
|
Parâmetro |
Obrigatório |
Descrição |
|
type |
Sim |
Tipo da source. Defina este parâmetro como |
|
endpoint |
Sim |
Endpoint do projeto do Log Service. Exemplo: |
|
project |
Sim |
Nome do projeto do Log Service. |
|
LogStore |
Sim |
Nome do Logstore. |
|
accessKeyId |
Sim |
AccessKey ID da sua conta Alibaba Cloud. Recomendamos usar o par de AccessKeys de um usuário RAM. Para obter mais informações, consulte Create an AccessKey. |
|
accessKey |
Sim |
AccessKey secret da sua conta Alibaba Cloud. Recomendamos usar o par de AccessKeys de um usuário RAM. Para obter mais informações, consulte Create an AccessKey. |
|
heartbeatIntervalMs |
Não |
Intervalo de heartbeat entre o cliente e o Log Service. Valor padrão: 30.000 ms. |
|
fetchIntervalMs |
Não |
Intervalo de busca de dados. Valor padrão: 100 ms. |
|
fetchInOrder |
Não |
Defina se os dados devem ser consumidos em ordem sequencial. Valor padrão: |
|
batchSize |
Não |
Número de entradas de dados a serem lidas em cada lote. Valor padrão: 100. |
|
consumerGroup |
Não |
Nome do grupo de consumidores usado para leitura de dados. |
|
initialPosition |
Não |
Posição inicial para começar a leitura dos dados. Valores válidos: begin, end e timestamp. Valor padrão: begin. Nota
Se existir um checkpoint no servidor, ele terá precedência. |
|
timestamp |
Não |
Obrigatório quando |
|
deserializer |
Sim |
Formato de desserialização do evento. Valores válidos:
|
|
columns |
Não |
Obrigatório quando |
|
separatorChar |
Não |
Usado quando |
|
quoteChar |
Não |
Usado quando |
|
escapeChar |
Não |
Usado quando |
|
appendTimestamp |
Não |
Usado quando |
|
sourceAsField |
Não |
Usado quando |
|
tagAsField |
Não |
Usado quando |
|
timeAsField |
Não |
Usado quando |
|
useRecordTime |
Não |
Defina se o horário original do log no Log Service deve ser usado para o timestamp do evento Flume. Se |
Para exemplos de configuração de source, consulte GitHub.