Amazon Data Firehose era precedentemente noto come Amazon Kinesis Data Firehose
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Scrittura su Amazon Data Firehose utilizzando Kinesis Agent
L'agente Amazon Kinesis è un'applicazione software Java autonoma che funge da implementazione di riferimento per mostrare come raccogliere e inviare dati a Firehose. L'agente monitora continuamente un set di file e invia nuovi dati al flusso di distribuzione di Firehose. L'agente mostra come gestire la rotazione dei file, il checkpoint e riprovare in caso di errore. Mostra come è possibile fornire i dati in modo affidabile, tempestivo e semplice. Mostra anche come è possibile emettere CloudWatch metriche per monitorare e risolvere meglio il processo di streaming. Per saperne di più, awslabs/. amazon-kinesis-agent
Come impostazione predefinita, i record vengono analizzati da ciascun file in base alla nuova riga di caratteri ('\n'
). Tuttavia, l'agente può anche essere configurato per analizzare record a più righe (consulta Impostazioni configurazione agente).
Puoi installare l'agente su ambienti server basati su Linux, come server Web, server di log e server di database. Dopo aver installato l'agente, configuralo specificando i file da monitorare e il flusso Firehose per i dati. Una volta configurato, l'agente raccoglie in modo duraturo i dati dai file e li invia in modo affidabile al flusso Firehose.
Argomenti
- Prerequisiti
- Credenziali
- Fornitore di credenziali personalizzate
- Scarica e installa l'agente
- Configurazione e avvio dell'agente
- Impostazioni configurazione agente
- Monitoraggio di più directory di file e scrittura in flussi multipli
- Utilizzare l'agente per pre-elaborare i dati
- Comandi dell'interfaccia a riga di comando dell'agente
- Domande frequenti
Prerequisiti
-
Il sistema operativo deve essere Amazon Linux o Red Hat Enterprise Linux versione 7 o successiva.
-
La versione 2.0.0 o successiva dell'agente viene eseguita utilizzando la versione JRE 1.8 o successiva. La versione 1.1.x dell'agente viene eseguita utilizzando JRE 1.7 o una versione successiva.
-
Se utilizzi Amazon EC2 per eseguire l'agente, avvia l'istanza EC2.
-
Il ruolo o AWS le credenziali IAM che specifichi devono essere autorizzati a eseguire l'operazione Amazon Data PutRecordBatchFirehose affinché l'agente possa inviare dati al tuo flusso Firehose. Se abiliti il CloudWatch monitoraggio per l'agente, è necessaria anche l'autorizzazione a eseguire l' CloudWatch PutMetricDataoperazione. Per ulteriori informazioni Controllo dell'accesso con Amazon Data Firehose Monitoraggio dell'integrità di Kinesis Agent, consulta Autenticazione e controllo degli accessi per Amazon CloudWatch.
Credenziali
Gestisci le credenziali AWS utilizzando uno dei seguenti metodi:
-
Crea un fornitore di credenziali personalizzate. Per informazioni dettagliate, vedi Fornitore di credenziali personalizzate.
-
Specifica un ruolo IAM quando avvii l'istanza EC2.
-
Specifica le credenziali AWS durante la configurazione dell'agente (consulta le voci relative a
awsAccessKeyId
eawsSecretAccessKey
nella tabella di configurazione sotto Impostazioni configurazione agente). -
Modifica
/etc/sysconfig/aws-kinesis-agent
per specificare la regione AWS e le chiavi di accesso AWS. -
Se la tua istanza EC2 si trova in un AWS account diverso, crea un ruolo IAM per fornire l'accesso al servizio Amazon Data Firehose. Specificate quel ruolo quando configurate l'agente (vedete AssumeroLearn e IdassumeRoleExternal). Utilizza uno dei metodi precedenti per specificare le credenziali AWS di un utente in un altro account, che ha l'autorizzazione per assumere questo ruolo.
Fornitore di credenziali personalizzate
Puoi creare un fornitore di credenziali personalizzate e assegnare il nome della classe e il percorso jar all'agente Kinesis nelle seguenti impostazioni di configurazione: userDefinedCredentialsProvider.classname
e userDefinedCredentialsProvider.location
. Per le descrizioni di queste due impostazioni di configurazione, consulta Impostazioni configurazione agente.
Per creare un fornitore di credenziali personalizzate, definisci una classe che implementa l'interfaccia AWSCredentialsProvider
, come quella nell'esempio seguente.
import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; public class
YourClassName
implements AWSCredentialsProvider { publicYourClassName
() { } public AWSCredentials getCredentials() { return new BasicAWSCredentials("key1
", "key2
"); } public void refresh() { } }
La classe deve avere un costruttore che non accetti argomenti.
AWS richiama periodicamente il metodo di aggiornamento per ottenere le credenziali aggiornate. Se desideri che il fornitore di credenziali fornisca credenziali diverse per tutta la sua durata, includi il codice per aggiornare le credenziali con questo metodo. In alternativa, puoi lasciare vuoto questo metodo se desideri un fornitore di credenziali che offra credenziali statiche (non modificabili).
Scarica e installa l'agente
Innanzitutto connettiti all'istanza, Per ulteriori informazioni, consulta Connessione all'istanza nella Guida per l'utente di Amazon EC2 per le istanze Linux. Se riscontri problemi durante la connessione, consulta Risoluzione dei problemi durante la connessione all'istanza in Guida all'uso di Amazon EC2 per le istanze Linux.
Quindi, installa l'agente utilizzando uno dei seguenti metodi.
-
Configurazione dell'agente dai repository Amazon Linux
Questo metodo funziona solo per le istanze Amazon Linux. Utilizzando il seguente comando:
sudo yum install –y aws-kinesis-agent
L'agente 2.0.0 o versione successiva è installato su computer con sistema operativo Amazon Linux 2 (AL2). Questa versione dell'agente richiede Java 1.8 o la versione successiva. Se la versione Java richiesta non è ancora presente, viene installata durante il processo di installazione dell'agente. Per ulteriori informazioni su Amazon Linux 2, consulta https://aws.amazon.com/amazon-linux-2/
. -
Configurazione dell'agente dal repository Amazon S3
Questo metodo funziona per Red Hat Enterprise Linux e per le istanze di Amazon Linux 2 perché installa l'agente dal repository disponibile pubblicamente. Utilizza il comando seguente per scaricare e installare la versione più recente dell'agente versione 2.x.x:
sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn2.noarch.rpm
Per installare una versione specifica dell'agente, specifica il numero di versione nel comando. Ad esempio, il seguente comando installa l'agente 2.0.1.
sudo yum install –y https://streaming-data-agent.s3.amazonaws.com/aws-kinesis-agent-2.0.1-1.amzn1.noarch.rpm
Se disponi di Java 1.7 e non vuoi aggiornarlo, puoi scaricare la versione 1.x.x dell'agente, che è compatibile con Java 1.7. Ad esempio, per scaricare l'agente 1.1.6, puoi utilizzare il seguente comando:
sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-1.1.6-1.amzn1.noarch.rpm
L'agente 1.x.x più recente può essere scaricato utilizzando il seguente comando:
sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm
-
Per configurare l'agente dal repository GitHub
-
Innanzitutto, assicurati che sia installata la versione Java richiesta, in base alla versione dell'agente.
-
Scarica l'agente dal repository awslabs/ amazon-kinesis-agent
GitHub . -
Installare l'agente spostandosi nella directory di download ed eseguendo il comando seguente:
sudo ./setup --install
-
-
Configurazione dell'agente in un container Docker
L'agente Kinesis può essere eseguito anche in un container tramite la base container amazonlinux. Utilizza il seguente Dockerfile e poi esegui
docker build
.FROM amazonlinux RUN yum install -y aws-kinesis-agent which findutils COPY agent.json /etc/aws-kinesis/agent.json CMD ["start-aws-kinesis-agent"]
Configurazione e avvio dell'agente
Configurazione e avvio dell'agente
-
Aprire e modificare il file di configurazione (come superutente se vengono utilizzate le autorizzazioni predefinite di accesso al file):
/etc/aws-kinesis/agent.json
In questo file di configurazione, specificate i file (
"filePattern"
) da cui l'agente raccoglie i dati e il nome del flusso Firehose"deliveryStream"
() a cui l'agente invia i dati. Il nome del file è un modello e l'agente riconosce le rotazioni dei file. Puoi ruotare i file o creare nuovi file non più di una volta al secondo. L'agente utilizza il timestamp di creazione dei file per determinare quali file tracciare e inserire nel flusso Firehose. La creazione di nuovi file o la rotazione di file più frequentemente di una volta al secondo non consente all'agente di distinguerli in modo corretto.{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "yourdeliverystream
" } ] }La regione AWS predefinita è
us-east-1
. Se utilizzi una regione diversa, aggiungi l'impostazionefirehose.endpoint
al file di configurazione, specificando l'endpoint della regione in uso. Per ulteriori informazioni, consulta Impostazioni configurazione agente. -
Avvia l'agente manualmente:
sudo service aws-kinesis-agent start
-
(Facoltativo) Configurare l'agente per iniziare l'avvio del sistema:
sudo chkconfig aws-kinesis-agent on
L'agente è ora in esecuzione come servizio di sistema in background. Monitora continuamente i file specificati e invia i dati al flusso Firehose specificato. L'attività dell'agente viene registrata in /var/log/aws-kinesis-agent/aws-kinesis-agent.log
.
Impostazioni configurazione agente
L'agente supporta due impostazioni di configurazione obbligatorie, filePattern
e deliveryStream
, oltre a impostazioni di configurazione opzionali per funzionalità aggiuntive. Puoi specificare le impostazioni di configurazione obbligatoria e opzionale in /etc/aws-kinesis/agent.json
.
Quando modifichi il file di configurazione, devi arrestare e avviare l'agente, utilizzando i comandi seguenti:
sudo service aws-kinesis-agent stop
sudo service aws-kinesis-agent start
In alternativa, potresti utilizzare il comando seguente:
sudo service aws-kinesis-agent restart
Seguono le impostazioni di configurazione generali.
Impostazione di configurazione | Descrizione |
---|---|
assumeRoleARN |
L'Amazon Resource Name (ARN) del ruolo che deve essere assunto dall'utente. Per ulteriori informazioni, consulta Delega l'accesso tra account AWS con i ruoli IAM nella Guida per l'utente IAM. |
assumeRoleExternalId |
Si è verificato un identificatore opzionale che determina chi può assumere il ruolo. Per ulteriori informazioni, consulta Come utilizzare un ID esterno nella Guida per l’utente di IAM. |
awsAccessKeyId |
ID chiave di accesso AWS che sovrascrive le credenziali predefinite. Questa impostazione ha la precedenza su tutti gli altri provider di credenziali. |
awsSecretAccessKey |
Chiave segreta AWS che sovrascrive le credenziali predefinite. Questa impostazione ha la precedenza su tutti gli altri provider di credenziali. |
cloudwatch.emitMetrics |
Consente all'agente di emettere metriche su CloudWatch if set (true). Impostazione predefinita: true |
cloudwatch.endpoint |
L'endpoint regionale per. CloudWatch Impostazione predefinita: |
firehose.endpoint |
L'endpoint regionale per Amazon Data Firehose. Impostazione predefinita: |
sts.endpoint |
L'endpoint regionale per Servizio di token di sicurezza AWS. Impostazione predefinita: |
userDefinedCredentialsProvider.classname |
Se definisci un fornitore di credenziali personalizzate, specifica il nome completo della classe utilizzando questa impostazione. Non includere .class alla fine del nome della classe. |
userDefinedCredentialsProvider.location |
Se definisci un fornitore di credenziali personalizzate, utilizza questa impostazione per specificare il percorso assoluto del jar contenente il fornitore di credenziali personalizzate. L'agente cerca anche il file jar nel seguente percorso: /usr/share/aws-kinesis-agent/lib/ . |
Seguono le impostazioni di configurazione del flusso.
Impostazione di configurazione | Descrizione |
---|---|
aggregatedRecordSizeBytes |
Per fare in modo che l'agente aggreghi i record e poi li inserisca nel flusso Firehose in un'unica operazione, specificate questa impostazione. Impostatelo sulla dimensione che desiderate che il record aggregato abbia prima che l'agente lo inserisca nel flusso Firehose. Predefinito: 0 (nessuna aggregazione) |
dataProcessingOptions |
L'elenco delle opzioni di elaborazione applicate a ciascun record analizzato prima di essere inviato allo stream Firehose. Le opzioni di elaborazione vengono eseguite nell'ordine specificato. Per ulteriori informazioni, consulta Utilizzare l'agente per pre-elaborare i dati. |
deliveryStream |
[Obbligatorio] Il nome dello stream Firehose. |
filePattern |
[Obbligatorio] Un glob per i file che devono essere monitorati dall'agente. Qualsiasi file che corrisponde a questo modello viene acquisito dall'agente automaticamente e monitorato. Per tutti i file corrispondenti a questo modello, concedere l'autorizzazione in lettura a ImportanteL'agente raccoglie qualsiasi file che corrisponde a questo modello. Per assicurarsi che l'agente non raccolga record non previsti, scegliere questo modello con attenzione. |
initialPosition |
La posizione iniziale dalla quale è iniziata l'analisi del file. I valori validi sono Impostazione predefinita: |
maxBufferAgeMillis |
Il tempo massimo, in millisecondi, durante il quale l'agente memorizza i dati nel buffer prima di inviarli al flusso Firehose. Intervallo di valori: da 1.000 a 900.000 (da 1 secondo a 15 minuti) Impostazione predefinita: 60.000 (1 minuto) |
maxBufferSizeBytes |
La dimensione massima, in byte, per la quale l'agente memorizza i dati nel buffer prima di inviarli al flusso Firehose. Intervallo di valori: da 1 a 4.194.304 (4 MB) Impostazione predefinita: 4.194.304 (4 MB) |
maxBufferSizeRecords |
Il numero massimo di record per i quali l'agente memorizza i dati nel buffer prima di inviarli allo stream Firehose. Intervallo di valori: da 1 a 500 Impostazione predefinita: 500 |
minTimeBetweenFilePollsMillis |
L'intervallo di tempo, in millisecondi, in cui l'agente esegue il polling e analizza i dati nuovi nei file monitorati. Intervallo valore: 1 o più Impostazione predefinita: 100 |
multiLineStartPattern |
Il modello per identificare l'inizio di un record. Un record è composto da una riga corrispondente al modello e da tutte le righe successive non corrispondenti al modello. I valori validi sono espressioni regolari. Come impostazione predefinita, ogni nuova riga nei file di log viene analizzata come un record. |
skipHeaderLines |
Il numero di righe necessarie perché l'agente salti l'analisi all'inizio dei file monitorati. Intervallo valore: 0 o più Impostazione predefinita: 0 (zero) |
truncatedRecordTerminator |
La stringa utilizzata dall'agente per troncare un record analizzato quando la dimensione del record supera il limite di dimensione del record di Amazon Data Firehose. (1.000 KB) Impostazione predefinita: |
Monitoraggio di più directory di file e scrittura in flussi multipli
Specificando più impostazioni di configurazione del flusso, puoi configurare l'agente in modo che monitori più directory di file e invii dati a più flussi. Nel seguente esempio di configurazione, l'agente monitora due directory di file e invia i dati rispettivamente a un flusso di dati Kinesis e a un flusso Firehose. Puoi specificare diversi endpoint per Kinesis Data Streams e Amazon Data Firehose in modo che il flusso di dati e il flusso Firehose non debbano necessariamente trovarsi nella stessa regione.
{ "cloudwatch.emitMetrics":
true
, "kinesis.endpoint": "https://your/kinesis/endpoint
", "firehose.endpoint": "https://your/firehose/endpoint
", "flows": [ { "filePattern": "/tmp/app1.log*
", "kinesisStream": "yourkinesisstream
" }, { "filePattern": "/tmp/app2.log*
", "deliveryStream": "yourfirehosedeliverystream
" } ] }
Per informazioni più dettagliate sull'utilizzo dell'agente con flusso di dati Amazon Kinesis, consulta Writing to Amazon Kinesis Data Streams with Kinesis Agent.
Utilizzare l'agente per pre-elaborare i dati
L'agente può preelaborare i record analizzati dai file monitorati prima di inviarli allo stream Firehose. È possibile abilitare questa funzionalità aggiungendo le impostazioni di configurazione dataProcessingOptions
al flusso di file. Si possono aggiungere una o più opzioni di elaborazione, che verranno eseguite nell'ordine specificato.
L'agente supporta le seguenti opzioni di elaborazione. Poiché l'agente è open source, è possibile sviluppare ulteriormente e ampliare le opzioni di elaborazione. Puoi scaricare l'agente da Kinesis Agent
Opzioni di elaborazione
SINGLELINE
-
Converte un record a più righe in un record a riga singola rimuovendo i caratteri di nuova riga, gli spazi iniziali e finali.
{ "optionName": "SINGLELINE" }
CSVTOJSON
-
Converte un record da un formato delimitatore separato a un formato JSON.
{ "optionName": "CSVTOJSON", "customFieldNames": [ "
field1
", "field2
",...
], "delimiter": "yourdelimiter
" }customFieldNames
-
[Obbligatorio] I nomi di campo utilizzati come chiavi in ciascuna coppia chiave-valore JSON. Ad esempio, se specifichi
["f1", "f2"]
, il record "v1, v2" viene convertito in{"f1":"v1","f2":"v2"}
. delimiter
-
La stringa utilizzata come delimitatore nel record. L'impostazione predefinita è una virgola (,).
LOGTOJSON
-
Converte un record da un formato log a un formato JSON. I formati di log supportati sono Apache Common Log, Apache Combined Log, Apache Error Log e RFC3164 Syslog.
{ "optionName": "LOGTOJSON", "logFormat": "
logformat
", "matchPattern": "yourregexpattern
", "customFieldNames": [ "field1
", "field2
",…
] }logFormat
-
[Obbligatorio] Il formato di inserimento dei log. I seguenti sono i valori possibili:
-
COMMONAPACHELOG
- Il formato Apache Common Log. Ogni voce di log ha il seguente modello come impostazione predefinita: "%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes}
". -
COMBINEDAPACHELOG
: il formato Apache Combined Log. Ogni voce di log ha il seguente modello come impostazione predefinita: "%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes} %{referrer} %{agent}
". -
APACHEERRORLOG
: il formato Apache Error Log. Ogni voce di log ha il seguente modello come impostazione predefinita: "[%{timestamp}] [%{module}:%{severity}] [pid %{processid}:tid %{threadid}] [client: %{client}] %{message}
". -
SYSLOG
: il formato RFC3164 Syslog. Ogni voce di log ha il seguente modello come impostazione predefinita: "%{timestamp} %{hostname} %{program}[%{processid}]: %{message}
".
-
matchPattern
-
Ignora il modello predefinito per il formato di log specificato. Utilizza questa impostazione per estrarre valori dalle voci di log se utilizzano un formato personalizzato. Se si specifica
matchPattern
, è necessario specificare anchecustomFieldNames
. customFieldNames
-
I nomi di campo obbligatori utilizzati come chiavi in ciascuna coppia chiave-valore JSON. Puoi utilizzare questa impostazione per definire i nomi dei campi per i valori estratti da
matchPattern
oppure sovrascrivere i nomi dei campi predefiniti dei formati di log predefiniti.
Esempio : configurazione LOGTOJSON
Questo è un esempio di una configurazione LOGTOJSON
per una voce Apache Common Log convertita in formato JSON:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" }
Prima della conversione:
64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291
Dopo la conversione:
{"host":"64.242.88.10","ident":null,"authuser":null,"datetime":"07/Mar/2004:16:10:02 -0800","request":"GET /mailman/listinfo/hsdivision HTTP/1.1","response":"200","bytes":"6291"}
Esempio : configurazione LOGTOJSON con campi personalizzati
Ecco un altro esempio di configurazione LOGTOJSON
:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "customFieldNames": ["f1", "f2", "f3", "f4", "f5", "f6", "f7"] }
Con questa impostazione di configurazione, la stessa voce Apache Common Log dall'esempio precedente viene convertita in formato JSON come segue:
{"f1":"64.242.88.10","f2":null,"f3":null,"f4":"07/Mar/2004:16:10:02 -0800","f5":"GET /mailman/listinfo/hsdivision HTTP/1.1","f6":"200","f7":"6291"}
Esempio : convertire la voce Apache Common Log
La seguente configurazione di flusso converte una voce Apache Common Log in record a riga singola in formato JSON:
{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "my-delivery-stream
", "dataProcessingOptions": [ { "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" } ] } ] }
Esempio : convertire record a più righe
La seguente configurazione del flusso analizza i record a più righe la cui prima riga inizia con "[SEQUENCE=
". Ogni record viene convertito in un record a riga singola. Quindi, i valori vengono estratti dal record in base a un delimitatore di schede. I valori estratti sono mappati in valori customFieldNames
specificati per formare un record a riga singola in formato JSON.
{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "my-delivery-stream
", "multiLineStartPattern": "\\[SEQUENCE=
", "dataProcessingOptions": [ { "optionName": "SINGLELINE" }, { "optionName": "CSVTOJSON", "customFieldNames": [ "field1
", "field2
", "field3
" ], "delimiter": "\\t
" } ] } ] }
Esempio : configurazione LOGTOJSON con modello corrispondente
Questo è un esempio di una configurazione LOGTOJSON
per una voce Apache Common Log convertita in formato JSON, con l'ultimo campo (byte) omesso:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "matchPattern": "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3})", "customFieldNames": ["host", "ident", "authuser", "datetime", "request", "response"] }
Prima della conversione:
123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] "GET /java/javaResources.html HTTP/1.0" 200
Dopo la conversione:
{"host":"123.45.67.89","ident":null,"authuser":null,"datetime":"27/Oct/2000:09:27:09 -0400","request":"GET /java/javaResources.html HTTP/1.0","response":"200"}
Comandi dell'interfaccia a riga di comando dell'agente
Avviare automaticamente l'agente all'avvio del sistema:
sudo chkconfig aws-kinesis-agent on
Controlla lo stato dell'agente:
sudo service aws-kinesis-agent status
Interrompi l'agente:
sudo service aws-kinesis-agent stop
Leggi il file di log dell'agente da questa posizione:
/var/log/aws-kinesis-agent/aws-kinesis-agent.log
Disinstalla l'agente:
sudo yum remove aws-kinesis-agent
Domande frequenti
Esiste un agente Kinesis per Windows?
L'agente Kinesis per Windows è un software diverso dall'agente Kinesis per piattaforme Linux.
Perché l'agente Kinesis rallenta e/o RecordSendErrors
aumenta?
Di solito ciò è dovuto alla limitazione di Kinesis. Controlla la WriteProvisionedThroughputExceeded
metrica per Kinesis Data Streams o la ThrottledRecords
metrica per i flussi Firehose. Qualsiasi aumento rispetto a 0 di questi parametri indica che è necessario aumentare i limiti dei flussi. Per ulteriori informazioni, consulta i limiti di Kinesis Data Stream e i flussi Firehose.
Una volta esclusa la limitazione, verifica se Kinesis Agent è configurato in modo da monitorare grandi quantità di file di piccole dimensioni. Si verifica un ritardo nel momento in cui Kinesis Agent esegue il tail di un nuovo file, quindi Kinesis Agent dovrebbe eseguire la coda su una piccola quantità di file più grandi. Prova a consolidare i tuoi file di log in file più grandi.
Perché ricevo delle java.lang.OutOfMemoryError
eccezioni?
Kinesis Agent non dispone di memoria sufficiente per gestire il carico di lavoro corrente. Prova ad aumentare, JAVA_START_HEAP
inserire /usr/bin/start-aws-kinesis-agent
e JAVA_MAX_HEAP
riavviare l'agente.
Perché IllegalStateException : connection pool shut down
ricevo delle eccezioni?
Kinesis Agent non dispone di connessioni sufficienti per gestire il carico di lavoro corrente. Prova ad aumentare maxConnections
e maxSendingThreads
a inserire le impostazioni generali della configurazione dell'agente su. /etc/aws-kinesis/agent.json
Il valore predefinito per questi campi è 12 volte superiore ai processori di runtime disponibili. Consulta AgentConfiguration.java
Come posso eseguire il debug di un altro problema con Kinesis Agent?
DEBUG
i log di livello possono essere abilitati in. /etc/aws-kinesis/log4j.xml
Come devo configurare Kinesis Agent?
Più piccolo èmaxBufferSizeBytes
, più frequentemente Kinesis Agent invierà i dati. Ciò può essere utile in quanto riduce i tempi di consegna dei record, ma aumenta anche le richieste al secondo a Kinesis.
Perché Kinesis Agent invia record duplicati?
Ciò si verifica a causa di un'errata configurazione nella coda dei file. Assicurati che ognuno corrisponda fileFlow’s filePattern
a un solo file. Ciò può verificarsi anche se la logrotate
modalità utilizzata è copytruncate
attiva. Prova a passare alla modalità predefinita o crea per evitare duplicazioni. Per ulteriori informazioni sulla gestione dei record duplicati, vedere Gestione dei record duplicati.