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à.
Dichiarazioni dei sink
Le Dichiarazioni dei sink specificano dove e in quale forma log, eventi e parametri devono essere inviati ai diversi servizi AWS. Le seguenti sezioni descrivono le configurazioni per i tipi di sink integrati disponibili in Amazon Kinesis Agent per Microsoft Windows. Poiché Kinesis Agent per Windows è ampliabile, è possibile aggiungere tipi di sink personalizzati. Ogni tipo di sink richiede in genere coppie chiave-valore univoche nella dichiarazioni di configurazione pertinenti per quel tipo di sink.
Tutte le dichiarazioni di sink possono offrire le seguenti coppie chiave-valore:
Id
-
Una stringa univoca che identifica un determinato sink all'interno del file di configurazione (obbligatorio).
SinkType
-
Il nome del tipo di sink per questo sink (obbligatorio). Il tipo di sink specifica la destinazione dei dati di log, degli eventi o dei parametri inviati in streaming da questo sink.
AccessKey
-
Specifica la chiave di accesso AWS da utilizzare per autorizzare l'accesso al servizio AWS associato al tipo di sink. Questa coppia chiave-valore è facoltativa. Per ulteriori informazioni, consulta Configurazione di sicurezza del sink.
SecretKey
-
Specifica la chiave segreta AWS da utilizzare per autorizzare l'accesso al servizio AWS associato al tipo di sink. Questa coppia chiave-valore è facoltativa. Per ulteriori informazioni, consulta Configurazione di sicurezza del sink.
Region
-
Specifica la regione AWS che contiene le risorse di destinazione per lo streaming. Questa coppia chiave-valore è facoltativa.
ProfileName
-
Specifica il profilo AWS da utilizzare per l'autenticazione. Questa coppia chiave-valore è facoltativa, ma se specificata, sostituisce qualsiasi chiave di accesso e chiave segreta specificata. Per ulteriori informazioni, consulta Configurazione di sicurezza del sink.
RoleARN
-
Specifica il ruolo IAM da utilizzare per accedere al servizio AWS associato al tipo di sink. Questa opzione è utile quando Kinesis Agent per Windows è in esecuzione su un'istanza di EC2, ma un altro ruolo sarà più appropriato rispetto al ruolo referenziato dal profilo dell'istanza. Ad esempio, il ruolo su più account può essere utilizzato per risorse di destinazione che non sono nello stesso account AWS come l'istanza EC2. Questa coppia chiave-valore è facoltativa.
Format
-
Specifica il tipo di serializzazione applicato ai dati di eventi e di log prima dello streaming. I valori validi sono
json
exml
. Questa opzione è utile quando i dati di analisi downstream nella pipeline dei dati richiedono o preferiscono i dati in una determinata forma. Questa coppia chiave-valore è facoltativa e, se non è specificato, il testo normale dall'origine viene inviato in streaming dal sink al servizio AWS associato al tipo di sink. TextDecoration
-
Quando non viene specificato un
Format
,TextDecoration
specifica quale testo aggiuntivo includere durante lo streaming di record di eventi o di log. Per ulteriori informazioni, consulta Configurazione delle decorazioni sink. Questa coppia chiave-valore è facoltativa. ObjectDecoration
-
Quando viene specificato
Format
,ObjectDecoration
specifica i dati aggiuntivi inclusi nei record di eventi o di log prima della serializzazione e dello streaming. Per ulteriori informazioni, consulta Configurazione delle decorazioni sink. Questa coppia chiave-valore è facoltativa. BufferInterval
-
Per ridurre al minimo le chiamate API al servizio AWS associato al tipo di sink Kinesis il buffering di più record di log, eventi o parametri prima dello streaming. In questo modo è possibile risparmiare denaro per servizi che comportano un addebito per chiamata API.
BufferInterval
specifica il tempo massimo (in secondi) in cui deve essere eseguito il buffering dei record prima dello streaming al servizio AWS. Questa coppia chiave-valore è facoltativa e, se specificata, utilizza una stringa per rappresentare il valore. BufferSize
-
Per ridurre al minimo le chiamate API al servizio AWS associato al tipo di sink Kinesis il buffering di più record di log, eventi o parametri prima dello streaming. In questo modo è possibile risparmiare denaro per servizi che comportano un addebito per chiamata API.
BufferSize
specifica il numero massimo di record per cui deve essere eseguito il buffering prima dello streaming al servizio AWS. Questa coppia chiave-valore è facoltativa e, se specificata, utilizza una stringa per rappresentare il valore. MaxAttempts
-
Specifica il numero massimo di volte in cui Kinesis Agent per Windows tenta di trasmettere un set di record di log, eventi e parametri a un servizio AWS se lo streaming in maniera regolare ha esito negativo. Questa coppia chiave-valore è facoltativa. Se è specificato, utilizza una stringa per rappresentare il valore. Il valore predefinito è "
3
".
Per esempi di file di configurazione completi che utilizzano vari tipi di sink, consulta Streaming da log di eventi di applicazioni Windows ai sink.
Argomenti
- Configurazione sink KinesisStream
- Configurazione sink KinesisFirehose
- Configurazione sink CloudWatch
- Configurazione sink CloudWatchLogs
- LocaleFileSystemConfigurazione sink
- Configurazione di sicurezza del sink
- Configurazione diProfileRefreshingAWSCredentialProviderPer aggiornare le credenziali AWS
- Configurazione delle decorazioni sink
- Configurazione di sostituzione di variabili sink
- Configurazione dell'accodamento dei sink
- Configurazione di un Proxy per i sink
- Configurazione delle variabili di risoluzione in più attributi sink
- Configurazione degli endpoint regionali di AWS STS quando si utilizza la proprietà RoleARN nei sink AWS
- Configurazione di VPC Endpoint per i sink AWS
- Configurazione di un mezzo alternativo di proxy
Configurazione sink KinesisStream
LaKinesisStream
Il tipo di sink invia in streaming record di log e di eventi al servizio di Kinesis Data Streams. Di solito, i dati inviati in streaming a Kinesis Data Streams vengono elaborati da una o più applicazioni personalizzate eseguite utilizzando diversi servizi AWS. I dati vengono inviati in streaming a un flusso denominato configurato utilizzando Kinesis Data Streams. Per ulteriori informazioni, consulta la .Guida per gli sviluppatori di Amazon Kinesis Data Streams: .
Di seguito è riportato un esempio Kinesis Data Streams di:
{ "Id": "TestKinesisStreamSink", "SinkType": "KinesisStream", "StreamName": "MyTestStream", "Region": "us-west-2" }
Tutte le dichiarazioni sink KinesisStream
possono offrire le seguenti coppie chiave-valore aggiuntive:
SinkType
-
Deve essere specificato e il valore deve essere la stringa letterale
KinesisStream
. StreamName
-
Specifica il nome del flusso di dati Kinesis che riceve i dati provenienti dalla
KinesisStream
tipo di sink (obbligatorio). Prima di inviare i dati in streaming, configurare il flusso nella console di gestione AWS, nell'interfaccia della riga di comando AWS o tramite un'applicazione utilizzando l'API Kinesis Data Streams. RecordsPerSecond
-
Specifica il numero massimo di record in Kinesis Data Streams a al secondo. Questa coppia chiave-valore è facoltativa. Se è specificato, utilizza un numero intero per rappresentare il valore. Il valore predefinito è 1000 record.
BytesPerSecond
-
Specifica il numero massimo di byte in Kinesis Data Streams a al secondo. Questa coppia chiave-valore è facoltativa. Se è specificato, utilizza un numero intero per rappresentare il valore. Il valore predefinito è 1 MB.
L'impostazione predefinita di BufferInterval
per questo tipo di sink è di 1 secondo, e l'impostazione predefinita di BufferSize
è di 500 record.
Configurazione sink KinesisFirehose
LaKinesisFirehose
Il tipo di sink invia in streaming record di log e di eventi al servizio Kinesis Data Firehose. Kinesis Data Firehose fornisce i dati provenienti da altri servizi per lo storage. In genere i dati archiviati vengono poi analizzati in fasi successive della pipeline di dati. I dati vengono inviati in streaming a un flusso di distribuzione denominato configurato utilizzando Kinesis Data Firehose. Per ulteriori informazioni, consulta la .Guida per sviluppatori di Amazon Kinesis Data Firehose: .
Di seguito è riportato un esempio della dichiarazione Kinesis Data Firehose:
{ "Id": "TestKinesisFirehoseSink", "SinkType": "KinesisFirehose", "StreamName": "MyTestFirehoseDeliveryStream", "Region": "
us-east-1
", "CombineRecords": "true" }
Tutte le dichiarazioni sink KinesisFirehose
possono offrire le seguenti coppie chiave-valore aggiuntive:
SinkType
-
Deve essere specificato e il valore deve essere la stringa letterale
KinesisFirehose
. StreamName
-
Specifica il nome del flusso di distribuzione Kinesis Data Firehose che riceve i dati provenienti dalla
KinesisStream
tipo di sink (obbligatorio). Prima di inviare i dati in streaming, configurare il flusso di distribuzione utilizzando la console di gestione AWS, l'interfaccia della riga di comando AWS o tramite un'applicazione utilizzando l'API Kinesis Data Firehose. CombineRecords
Se impostato su
true
, specifica di combinare più record di piccole dimensioni in un record di grandi dimensioni con una dimensione massima di 5 KB. Questa coppia chiave-valore è facoltativa. I record combinati utilizzando questa funzione sono separati da\n
: . Se si utilizza AWS Lambda per trasformare un record Kinesis Data Firehose, la funzione Lambda deve tenere conto del carattere separatore.RecordsPerSecond
-
Specifica il numero massimo di record in Kinesis Data Streams a al secondo. Questa coppia chiave-valore è facoltativa. Se è specificato, utilizza un numero intero per rappresentare il valore. Il valore predefinito è 5000 record.
BytesPerSecond
-
Specifica il numero massimo di byte in Kinesis Data Streams a al secondo. Questa coppia chiave-valore è facoltativa. Se è specificato, utilizza un numero intero per rappresentare il valore. Il valore predefinito è 5 MB.
L'impostazione predefinita di BufferInterval
per questo tipo di sink è di 1 secondo, e l'impostazione predefinita di BufferSize
è di 500 record.
Configurazione sink CloudWatch
LaCloudWatch
Il tipo di sink effettua lo streaming dei parametri al servizio CloudWatch. Puoi visualizzare i parametri nella console di gestione AWS. Per ulteriori informazioni, consulta la Guida per l'utente di Amazon CloudWatch.
Di seguito è riportato un esempio della dichiarazione sink CloudWatch
:
{ "Id": "CloudWatchSink", "SinkType": "CloudWatch" }
Tutte le dichiarazioni sink CloudWatch
possono offrire le seguenti coppie chiave-valore aggiuntive:
SinkType
-
Deve essere specificato e il valore deve essere la stringa letterale
CloudWatch
. Interval
-
Specifica la frequenza (in secondi) con cui Kinesis Agent per Windows comunica i parametri al servizio CloudWatch. Questa coppia chiave-valore è facoltativa. Se è specificato, utilizza un numero intero per rappresentare il valore. Il valore predefinito è 60 secondi. Specificare 1 secondo se si desiderano parametri CloudWatch ad alta risoluzione.
Namespace
-
Specifica lo spazio dei nomi CloudWatch in cui vengono riportati i dati dei parametri. Gli spazi dei nomi CloudWatch raggruppano un set di parametri. Questa coppia chiave-valore è facoltativa. Il valore predefinito è
KinesisTap
. Dimensions
-
Specifica le dimensioni CloudWatch utilizzate per isolare i set di parametri all'interno di uno spazio dei nomi. Questo può essere utile per fornire set separati di dati di parametri per ogni desktop o server, ad esempio. Questa coppia chiave-valore è facoltativa e, se specificata, il valore deve rispettare il seguente formato:
"
chiave1=
valore1;chiave2=
valore2..."
. Il valore predefinito è"ComputerName={computername};InstanceId={instance_id}"
. Questo valore supporta la sostituzione delle variabili sink. Per ulteriori informazioni, consulta Configurazione di sostituzione di variabili sink. MetricsFilter
-
Specifica quali parametri vengono trasmessi in streaming a CloudWatch dall'origine integrata di Kinesis Agent per Windows. Per ulteriori informazioni sull'origine di parametri integrata di Kinesis Agent per Windows, inclusi i dettagli della sintassi del valore di questa coppia chiave-valore, vedereOrigine dei parametri integrati di Kinesis Agent per Windows: .
Configurazione sink CloudWatchLogs
LaCloudWatchLogs
Il tipo di sink invia in streaming record di log e di eventi a Amazon CloudWatch Logs. Puoi visualizzare i log nella console di gestione AWS o elaborarli tramite altre fasi di una pipeline di dati. I dati vengono inviati in streaming a un flusso di log denominato configurato nei CloudWatch Logs. I flussi di log sono organizzati in gruppi di log denominati. Per ulteriori informazioni, consulta la .Amazon CloudWatch Logs: .
Di seguito è riportato un esempio della dichiarazione sink CloudWatch Logs:
{ "Id": "MyCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "BufferInterval": "60", "BufferSize": "100", "Region": "us-west-2", "LogGroup": "MyTestLogGroup", "LogStream": "MyTestStream" }
Tutte le dichiarazioni sink CloudWatchLogs
devono offrire le seguenti coppie chiave-valore aggiuntive:
SinkType
-
Deve essere la stringa letterale
CloudWatchLogs
. LogGroup
-
Specifica il nome del gruppo di log di CloudWatch Logs contenente il flusso di log che riceve i record di eventi e di log in streaming dalla proprietà di
CloudWatchLogs
tipo di lavello. Se il gruppo di log specificato non esiste, Kinesis Agent per Windows tenta di crearlo. LogStream
-
Specifica il nome del flusso di log CloudWatch Logs che riceve il flusso di record di eventi e di log dal
CloudWatchLogs
tipo di lavello. Questo valore supporta la sostituzione delle variabili sink. Per ulteriori informazioni, consulta Configurazione di sostituzione di variabili sink. Se il flusso di log specificato non esiste, Kinesis Agent per Windows tenta di crearlo.
L'impostazione predefinita di BufferInterval
per questo tipo di sink è di 1 secondo, e l'impostazione predefinita di BufferSize
è di 500 record. La dimensione massima del buffer è di 10.000 record.
LocaleFileSystem
Configurazione sink
Il tipo di lavelloFileSystem
salva i record di log ed eventi in un file nel file system locale invece di inviarli in streaming ai servizi AWS.FileSystem
sono utili per test e diagnostica. Ad esempio, è possibile utilizzare questo tipo di sink per esaminare i record prima di inviarli a AWS.
conFileSystem
, è anche possibile utilizzare i parametri di configurazione per simulare batch, limitazione e retry-on-error per simulare il comportamento dei sink AWS effettivi.
Tutti i record di tutte le origini connesse a unFileSystem
vengono salvati nel singolo file specificato comeFilePath
: . SeFilePath
non viene specificato, i record vengono salvati in un file denominato
nellaSinkId
.txt%TEMP%
, che di solito èC:\Users\
, doveUserName
\AppData\Local\Temp
è l'identificatore univoco del sink eSinkId
è il nome utente di Windows dell'utente attivo.UserName
Questo tipo di sink supporta gli attributi di decorazione del testo. Per ulteriori informazioni, consulta Configurazione delle decorazioni sink.
Un esempioFileSystem
Nell'esempio seguente viene visualizzata la seguente configurazione.
{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "Format": "json", "TextDecoration": "", "ObjectDecoration": "" }
LaFileSystem
è costituito dalle seguenti coppie chiave-valore.
SinkType
Deve essere la stringa letterale
FileSystem
.FilePath
Specifica il percorso e il file in cui vengono salvati i record. Questa coppia chiave-valore è facoltativa. Se il valore non viene specificato, viene usato
, doveTempPath
\\SinkId
.txt
è la cartella memorizzata nellaTempPath
%TEMP%
Variabile e
è l'identificatore univoco del sink.SinkId
Format
Specifica il formato dell'evento da
json
oxml
: . Questa coppia di valori è facoltativa e senza distinzione tra maiuscole e minuscole Se omesso, gli eventi vengono scritti nel file in testo normale.TextDecoration
Si applica solo agli eventi scritti in testo normale. Questa coppia chiave-valore è facoltativa.
ObjectDecoration
Si applica solo agli eventi in cui
Format
è impostato su .json
: . Questa coppia chiave-valore è facoltativa.
Utilizzo avanzato: simulazione di limitazione dei record e guasti
FileSystem
può imitare il comportamento dei sink AWS simulando la limitazione dei record. È possibile utilizzare le seguenti coppie chiave-valore per specificare gli attributi di limitazione dei record e di simulazione di errori.
Acquisendo un blocco sul file di destinazione e impedendo le scritture su di esso, è possibile utilizzareFileSystem
per simulare ed esaminare il comportamento dei sink AWS quando la rete fallisce.
L'esempio seguente mostra unFileSystem
con attributi di simulazione.
{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "TextDecoration": "", "RequestsPerSecond": "100", "BufferSize": "10", "MaxBatchSize": "1024" }
RequestsPerSecond
Facoltativo e specificato come tipo di stringa. Se omesso, viene usato il valore predefinito
"5"
: . Controlla la frequenza delle richieste che il sink elabora, ovvero scrive sul file, non il numero di record. Kinesis Agent per Windows effettua richieste batch agli endpoint AWS, pertanto una richiesta può contenere più record.BufferSize
Facoltativo e specificato come tipo di stringa. Specifica il numero massimo di record di eventi che il sink batch prima di salvare nel file.
MaxBatchSize
Facoltativo e specificato come tipo di stringa. Specifica la quantità massima di dati del record di eventi in byte che il sink batch prima di salvare nel file.
Il limite massimo di velocità di registrazione è una funzione diBufferSize
, che determina il numero massimo di record per richiesta eRequestsPerSecond
: . È possibile calcolare il limite di velocità record al secondo utilizzando la formula seguente.
RecordRate=BufferSize
*RequestsPerSecond
Dati i valori di configurazione nell'esempio precedente, esiste una velocità massima di record di 1000 record al secondo.
Configurazione di sicurezza del sink
Configurazione dell'autenticazione
Per consentire a Kinesis Agent per Windows di trasmettere in streaming log, eventi e parametri ai servizi AWS, l'accesso deve essere autenticato. Vi sono diversi modi per fornire l'autenticazione per Kinesis Agent per Windows. Il metodo scelto dipende dalla situazione in cui è in esecuzione Kinesis Agent per Windows e i requisiti di sicurezza specifici di una determinata organizzazione.
-
Se Kinesis Agent per Windows è in esecuzione su un host Amazon EC2, il modo più semplice e sicuro per fornire l'autenticazione è creare un ruolo IAM con accesso sufficiente alle operazioni richieste per i servizi AWS necessari e un profilo dell'istanza EC2 che fa riferimento a tale ruolo. Per ulteriori informazioni su come creare i profili dell'istanza, consulta Uso dei profili dell'istanza. Per ulteriori informazioni sulle policy da collegare al ruolo IAM, consultaConfigurazione dell'autorizzazione: .
Dopo aver creato il profilo dell'istanza, è possibile associarlo a qualsiasi istanza EC2 che utilizza Kinesis Agent per Windows. Se le istanze hanno già un profilo di istanza associato, è possibile allegare policy appropriate al ruolo associato a quel profilo dell'istanza.
-
Se Kinesis Agent per Windows viene eseguito su un host EC2 in un account, ma le risorse che sono la destinazione del sink risiedono in un altro account, è possibile creare un ruolo IAM per l'accesso a più account. Per ulteriori informazioni, consultaTutorial: Delegare l'accesso agli account AWS tramite ruoli IAM: . Dopo aver creato il ruolo tra più account, specificare l'ARN (Amazon Resource Name) per il ruolo tra più account come valore dell'opzione
RoleARN
Coppia chiave-valore nella dichiarazione sink. Kinesis Agent per Windows tenta quindi di assumersi il ruolo specificato tra più account per l'accesso alle risorse AWS associate al tipo di sink per quel sink. -
Se Kinesis Agent per Windows è in esecuzione al di fuori di Amazon EC2 (ad esempio, in locale), esistono diverse opzioni:
-
Se è accettabile registrare il server locale o il computer desktop come istanza gestita da Amazon EC2 Systems Manager, utilizzare la seguente procedura per configurare l'autenticazione:
-
Utilizzare il processo descritto in Impostazione di AWS Systems Manager in ambienti ibridi per creare un ruolo di servizio, creare un'attivazione per un'istanza gestita e installare l'agente SSM.
-
Collegare le policy appropriate per il ruolo del servizio per consentire a Kinesis Agent per Windows di accedere alle risorse necessarie per lo streaming dei dati dai sink configurati. Per ulteriori informazioni sulle policy da collegare al ruolo IAM, consultaConfigurazione dell'autorizzazione: .
Utilizzare il processo descritto inConfigurazione diProfileRefreshingAWSCredentialProviderPer aggiornare le credenziali AWSPer aggiornare le credenziali AWS.
Questo è l'approccio consigliato per le istanze non EC2, perché le credenziali sono gestite in modo sicuro da SSM e AWS.
-
-
Se è accettabile eseguire il servizio AWSKinesisTap per Kinesis Agent per Windows con un determinato utente anziché con l'account di sistema predefinito, utilizzare la seguente procedura:
-
Creare un utente IAM nell'account AWS in cui i servizi AWS saranno utilizzati. Acquisire la chiave di accesso e la chiave segreta di questo utente durante il processo di creazione. Queste informazioni saranno necessarie più avanti in questa procedura.
-
Collegare i criteri all'utente IAM che autorizza l'accesso alle operazioni necessarie per i servizi richiesti. Per ulteriori informazioni sulle policy da collegare all'utente IAM, consultaConfigurazione dell'autorizzazione: .
-
Cambiare il servizio AWSKinesisTap su ogni desktop o server in modo che venga eseguito con un determinato utente piuttosto che con l'account predefinito del sistema.
-
Creare un profilo nell'archivio SDK utilizzando la chiave di accesso e la chiave segreta registrate in precedenza. Per ulteriori informazioni, vedi Configurazione delle credenziali AWS.
-
Aggiornare il file
AWSKinesisTap.exe.config
nella directory%PROGRAMFILES%\Amazon\AWSKinesisTap
per specificare il nome del profilo creato nel passo precedente. Per ulteriori informazioni, vedi Configurazione delle credenziali AWS.
Questo approccio è consigliato per host non EC2 che non possono essere istanze gestite poiché le credenziali sono crittografate per l'host specifico e l'utente specifico.
-
-
Se è necessario eseguire il servizio AWSKinesisTap per Kinesis Agent per Windows con l'account di sistema predefinito, è necessario utilizzare un file di credenziali condiviso. Questo perché l'account di sistema non ha un profilo utente Windows per l'abilitazione dell'archivio SDK. I file di credenziali condivise non sono crittografati, perciò non consigliamo di adottare questo approccio. Per informazioni su come utilizzare i file di configurazione condivisi, consultaConfigurazione delle credenziali AWSnellaSDK AWS per .NET: . Se si utilizza questo approccio, è consigliabile utilizzare la crittografia NTFS e l'accesso ai file limitato per il file di configurazione condiviso. Le chiavi devono essere ruotate da una piattaforma di gestione e il file di configurazione condiviso deve essere aggiornato quando si verifica la rotazione della chiave.
-
Anche se è possibile fornire direttamente le chiavi di accesso e le chiavi segrete nelle dichiarazioni dei sink, questo approccio è sconsigliato perché le dichiarazioni non sono crittografate.
Configurazione dell'autorizzazione
Collegare le policy appropriate per l'utente o il ruolo IAM che verrà utilizzato da Kinesis Agent per Windows per trasmettere i dati ai servizi AWS:
Kinesis Data Streams
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:*:*:stream/*" } ] }
Per limitare l'autorizzazione a una regione, un account o un nome di flusso specifici, sostituire gli asterischi appropriati nell'ARN con valori specifici. Per ulteriori informazioni, vedere "Amazon Resource Name (ARN) per flussi di dati di Kinesis" in Controllo degli accessi alle risorse dei flussi di dati di Amazon Kinesis tramite IAM.
Kinesis Data Firehose
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:*:*:deliverystream/*" } ] }
Per limitare l'autorizzazione a una regione, un account o un flusso di distribuzione specifici, sostituire gli asterischi appropriati nell'ARN con valori specifici. Per ulteriori informazioni, consultaControllare gli accessi con Amazon Kinesis Data FirehosenellaGuida per sviluppatori di Amazon Kinesis Data Firehose: .
CloudWatch
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*" } ] }
Per ulteriori informazioni, consultaPanoramica sulla gestione delle autorizzazioni di accesso alle risorse CloudWatchnellaAmazon CloudWatch Logs: .
CloudWatch Logs con un gruppo di log e di flussi di log
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor3", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor4", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" } ] }
Per limitare l'accesso a una regione, un account, un gruppo o un flusso di log specifico, sostituire gli asterischi opportuni negli ARN con i valori appropriati. Per ulteriori informazioni, consultaPanoramica sulla gestione delle autorizzazioni di accesso alle risorse CloudWatch LogsnellaAmazon CloudWatch Logs: .
CloudWatch Logs con autorizzazioni aggiuntive per Kinesis Agent per Windows per creare gruppi di log e flussi di log
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor5", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor6", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" }, { "Sid": "VisualEditor7", "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "*" } ] }
Per limitare l'accesso a una regione, un account, un gruppo o un flusso di log specifico, sostituire gli asterischi opportuni negli ARN con i valori appropriati. Per ulteriori informazioni, consultaPanoramica sulla gestione delle autorizzazioni di accesso alle risorse CloudWatch LogsnellaAmazon CloudWatch Logs: .
Le autorizzazioni necessarie per l'espansione delle variabili dei tag EC2
L'utilizzo dell'espansione delle variabili con il prefisso della variabile ec2tag
richiede l'autorizzazione ec2:Describe*
.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "VisualEditor8", "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" } ] }
Nota
È possibile abbinare più dichiarazioni in una singola policy finché il Sid
per ogni istruzione è univoco all'interno di tale policy. Per informazioni sulla creazione di policy, consultaCreazione di policy IAMnellaGuida per l'utente di IAM: .
Configurazione diProfileRefreshingAWSCredentialProvider
Per aggiornare le credenziali AWS
Se si utilizza AWS Systems Manager per ambienti ibridi per gestire le credenziali AWS, Systems Manager ruota le credenziali di sessione inc:\Windows\System32\config\systemprofile\.aws\credentials
: . Per ulteriori informazioni su Systems Manager per gli ambienti ibridi, consultaConfigurazione di AWS Systems Manager per ambienti ibridinellaAWS Systems Manager: .
Poiché AWS .net SDK non rileva automaticamente nuove credenziali, forniamo ilProfileRefreshingAWSCredentialProvider
per aggiornare le credenziali.
Puoi utilizzareCredentialRef
di qualsiasi configurazione di sincronizzazione AWS per fare riferimento aCredentials
in cui vieneCredentialType
L'attributo è impostato suProfileRefreshingAWSCredentialProvider
Come mostrato nell'esempio seguente.
{ "Sinks": [{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "CredentialRef": "ssmcred", "Region": "
us-west-2
", "LogGroup": "myLogGroup", "LogStream": "myLogStream" }], "Credentials": [{ "Id": "ssmcred", "CredentialType": "ProfileRefreshingAWSCredentialProvider", "Profile": "default", "FilePath": "%USERPROFILE%//.aws//credentials
", "RefreshingInterval":300
}] }
Una definizione di credenziali è costituita dai seguenti attributi come coppie chiave-valore.
Id
Definisce la stringa che le definizioni di sink possono specificare utilizzando
CredentialRef
per fare riferimento a questa configurazione delle credenziali.CredentialType
Impostare sulla stringa letterale
ProfileRefreshingAWSCredentialProvider
: .Profile
Facoltativo. Il valore di default è
default
.FilePath
Facoltativo. Specifica il percorso per il file delle credenziali AWS. Se omesso, il valore predefinito è
%USERPROFILE%/.aws/credentials
.RefreshingInterval
Facoltativo. Frequenza con cui le credenziali vengono aggiornate, in secondi. Se omesso, il valore predefinito è
300
.
Configurazione delle decorazioni sink
Le dichiarazioni sink possono facoltativamente includere coppie chiave-valore che specificano dati aggiuntivi per lo streaming ai vari servizi AWS per aumentare i record raccolti dall'origine.
TextDecoration
-
Utilizzare questa coppia chiave-valore quando nessun
Format
viene specificato nella dichiarazione sink. Il valore è una stringa con formato speciale in cui si verifica la sostituzione delle variabili. Ad esempio, supponiamo cheTextDecoration
di"{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}"
venga fornito per un sink. Quando un'origine emette un record di log che contiene il testoThe system has resumed from sleep.
e tale origine è connessa al sink tramite una pipe, allora il testoMyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep.
viene inviato in streaming al servizio AWS associato al tipo di sink. La variabile{_record}
si riferisce al record del testo originale distribuito dall'origine. ObjectDecoration
-
Utilizzare questa coppia chiave-valore quando
Format
viene specificato nella dichiarazione del sink per aggiungere ulteriori dati prima della serializzazione dei record. Ad esempio, supponiamo che unaObjectDecoration
di"ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}"
venga fornita per un sink che specifica JSONFormat
. Il risultante JSON in streaming al servizio AWS associato al tipo di sink include le seguenti coppie chiave-valore in aggiunta ai dati originali dell'origine:{ ComputerName: "MyComputer2", DT: "2017-10-17 21:09:04" }
Per un esempio di utilizzo di
ObjectDecoration
, vedi Tutorial: Trasmetti file di registro JSON ad Amazon S3 utilizzando Kinesis Agent per Windows. ObjectDecorationEx
Specifica un'espressione, che consente l'estrazione e la formattazione dei dati più flessibili rispetto a
ObjectDecoration
: . Questo campo può essere utilizzato quando il formato del sink èjson
: . La sintassi dell'espressione è illustrata di seguito."ObjectDecorationEx": "
attribute1
={expression1
};attribute2
={expression2
};attribute3
={expression3
}(;...)"Ad esempio,
ObjectDecorationEx
Attributo"ObjectDecorationEx": "host={env:ComputerName};message={upper(_record)};time={format(_timestamp, 'yyyyMMdd')}"
Trasforma il record letterale:
System log message
In un oggetto JSON come segue, con i valori restituiti dalle espressioni:
{ "host": "
EC2AMAZ-1234
", "message": "SYSTEM LOG MESSAGE", "time": "20210201
" }Per ulteriori informazioni sulla formulazione di espressioni, consultaSuggerimenti per scrivere espressioni: . La maggior parte dei
ObjectDecoration
dovrebbe funzionare usando la nuova sintassi con l'eccezione delle variabili timestamp. A{timestamp:yyyyMMdd}
Campo inObjectDecoration
è espresso come{format(_timestamp,'yyyyMMdd')}
inObjectDecorationEx
: .TextDecorationEx
Specifica un'espressione, che consente l'estrazione e la formattazione dei dati più flessibili rispetto a
TextDecoration
come mostrato nell'esempio seguente."TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"
Puoi utilizzare
TextDecorationEx
per comporre oggetti JSON. Utilizzare '@ {'per sfuggire alla parentesi graffa aperta, come mostrato nell'esempio seguente."TextDecorationEx": "@{ \"var\": \"{upper($myvar1)}\" }"
Se il tipo di origine dell'origine connessa al sink è DirectorySource
, allora il sink può utilizzare tre variabili aggiuntive:
_FilePath
-
Il percorso completo al file di log.
_FileName
-
Il nome file e l'estensione del nome file del file.
_Position
-
Un numero intero che rappresenta dove si trova il record nel file di log.
Queste variabili sono utili quando si utilizza un'origine che raccoglie record di log da più file connessi a un sink che invia tutti i record a un solo flusso. Inserire i valori di queste variabili nel record di streaming consente di effettuare analisi downstream nella pipeline di dati per ordinare i record per file e per ubicazione all'interno di ciascun file.
Suggerimenti per scrivere espressioni
Un'espressione può essere qualsiasi tra i seguenti:
Espressione variabile.
Un'espressione costante, ad esempio
'hello'
,1
,1.21
,null
,true
,false
: .Espressione di chiamata che chiama una funzione, come mostrato nell'esempio seguente.
regexp_extract('Info: MID 118667291 ICID 197973259 RID 0 To: <jd@acme.com>', 'To: (\\\\S+)', 1)
Caratteri speciali
Per sfuggire a caratteri speciali sono necessari due barre rovesciate.
Nesting
Le chiamate di funzione possono essere nidificate, come mostrato nell'esempio seguente.
format(date(2018, 11, 28), 'MMddyyyy')
Variables
Ci sono tre tipi di variabili: locale, meta e globale.
Variabili localiInizia con un'
$
come$message
: . Vengono utilizzati per risolvere la proprietà dell'oggetto evento, una voce se l'evento è un dizionario o un attributo se l'evento è un oggetto JSON. Se la variabile locale contiene spazio o caratteri speciali, utilizzare una variabile locale tra virgolette, ad esempio$'date created'
: .Variabili di metaInizia con un trattino basso (
_
) e vengono utilizzati per risolvere i metadati dell'evento. Tutti i tipi di eventi supportano le seguenti meta-variabili._timestamp
Il timestamp dell'evento.
_record
La rappresentazione in formato non elaborato dell'evento.
Gli eventi di registro supportano le seguenti meta-variabili aggiuntive.
_filepath
_filename
_position
_linenumber
Variabili globalirisolvere le variabili di ambiente, i metadati dell'istanza EC2 o EC2tag. Per prestazioni migliori, ti consigliamo di utilizzare il prefisso per limitare l'ambito di ricerca, ad esempio
{env:ComputerName}
,{ec2:InstanceId}
, e{ec2tag:Name}
: .
Funzioni integrate
Kinesis Agent per Windows supporta le seguenti funzioni integrate. Se uno qualsiasi degli argomenti èNULL
e la funzione non è progettata per gestireNULL
, unNULL
viene restituito.
//string functions int length(string input) string lower(string input) string lpad(string input, int size, string padstring) string ltrim(string input) string rpad(string input, int size, string padstring) string rtrim(string input) string substr(string input, int start) string substr(string input, int start, int length) string trim(string input) string upper(string str) //regular expression functions string regexp_extract(string input, string pattern) string regexp_extract(string input, string pattern, int group) //date functions DateTime date(int year, int month, int day) DateTime date(int year, int month, int day, int hour, int minute, int second) DateTime date(int year, int month, int day, int hour, int minute, int second, int millisecond) //conversion functions int? parse_int(string input) decimal? parse_decimal(string input) DateTime? parse_date(string input, string format) string format(object o, string format) //coalesce functions object coalesce(object obj1, object obj2) object coalesce(object obj1, object obj2, object obj3) object coalesce(object obj1, object obj2, object obj3, object obj4) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5, object obj6)
Configurazione di sostituzione di variabili sink
Le dichiarazioni sink KinesisStream
, KinesisFirehose
e CloudWatchLogs
richiedono una coppia chiave-valore LogStream
o StreamName
. Il valore di queste coppie chiave-valore può contenere riferimenti a variabili che vengono automaticamente risolti da Kinesis Agent per Windows. PerCloudWatchLogs
, ilLogGroup
È richiesta anche una coppia chiave-valore e può contenere riferimenti a variabili automaticamente risolti da Kinesis Agent per Windows. Le variabili sono specificate utilizzando il modello {
prefix
:
variablename
}
in cui prefix
:
è facoltativo. I prefissi supportati sono i seguenti:
-
env
— Il riferimento alla variabile viene risolto dal valore della variabile di ambiente con lo stesso nome. -
ec2
— Il riferimento alla variabile viene risolto dai metadati dell'istanza EC2 con lo stesso nome. -
ec2tag
— Il riferimento alla variabile viene risolto dal valore del tag dell'istanza EC2 con lo stesso nome. L'autorizzazioneec2:Describe*
è obbligatoria per accedere ai tag di istanza. Per ulteriori informazioni, consulta Le autorizzazioni necessarie per l'espansione delle variabili dei tag EC2.
Se il prefisso non è specificato, se c'è una variabile di ambiente con lo stesso nome di variablename
, il riferimento alla variabile viene risolto dal valore della variabile di ambiente. Altrimenti, se variablename
è instance_id
o hostname
, il riferimento alla variabile viene risolto dal valore dei metadati EC2 con lo stesso nome. In caso contrario, il riferimento alla variabile non viene risolto.
Di seguito sono elencati alcuni esempi di coppie chiave-valore valide che utilizzano i riferimenti alle variabili:
"LogStream": "LogStream_{instance_id}" "LogStream": "LogStream_{hostname}" "LogStream": "LogStream_{ec2:local-hostname}" "LogStream": "LogStream_{computername}" "LogStream": "LogStream_{env:computername}"
Le dichiarazioni sink CloudWatchLogs
supportano una variabile timestamp con un formato speciale che consente al timestamp del record dell'evento o del log originale dell'origine di modificare il nome del flusso di log. Il formato è {timestamp:
timeformat
}
. Fai riferimento al file di esempio seguente:
"LogStream": "LogStream_{timestamp:yyyyMMdd}"
Se il record di eventi o di log è stato generato il 5 giugno 2017, il valore della coppia chiave-valore LogStream
dell'esempio precedente si risolverebbe in "LogStream_20170605"
.
Se autorizzato, il tipo di sink CloudWatchLogs
è in grado di creare automaticamente nuovi flussi di log generati quando richiesto in base ai nomi. Non è possibile eseguire questa operazione per altri tipi di sink perché richiedono un'ulteriore configurazione oltre il nome del flusso.
Non ci sono sostituzioni specifiche di variabili che si verificano nel testo e nella decorazione dell'oggetto. Per ulteriori informazioni, consulta Configurazione delle decorazioni sink.
Configurazione dell'accodamento dei sink
Le dichiarazioni dei sink KinesisStream
, KinesisFirehose
e CloudWatchLogs
possono facoltativamente abilitare l'accodamento di record che non hanno lo streaming per il servizio AWS associato a questi tipi di sink a causa di problemi di connessione transitori. Per abilitare nuovi tentativi di streaming automatico e di accodamento quando la connettività viene ripristinata, utilizzare le seguenti coppie chiave-valore nelle dichiarazioni sink:
QueueType
-
Specifica il tipo di meccanismo di accodamento da utilizzare. L'unico valore supportato è
file
, che indica che i record devono essere messi in coda in un file. Questa coppia chiave-valore è necessaria per abilitare la funzione di accodamento di Kinesis Agent per Windows. Se non è specificato, il comportamento predefinito consiste nell'accodare solo in memoria e lo streaming dà esito negativo quando vengono raggiunti i limiti di accodamento in memoria. QueuePath
-
Specificare il percorso alla cartella che contiene i file di record in coda. Questa coppia chiave-valore è facoltativa. Il valore predefinito è
%PROGRAMDATA%\KinesisTap\Queue\
SinkId dove SinkId è l'identificatore assegnato come valore diId
per la dichiarazione del sink. QueueMaxBatches
-
Limita la quantità totale di spazio che Kinesis Agent per Windows può consumare quando si verifica l'accodamento dei record per lo streaming. La quantità di spazio è limitato al valore di questa coppia chiave-valore moltiplicato per il numero massimo di byte per batch. Il numero massimo di byte per batch per i tipi di sink
KinesisStream
,KinesisFirehose
eCloudWatchLogs
sono, rispettivamente, 5 MB, 4 MB e 1 MB. Quando viene raggiunto il limite, qualsiasi tentativo non riuscito di streaming non viene messo in coda e viene segnalato come tentativo non recuperabile. Questa coppia chiave-valore è facoltativa. Il valore predefinito è 10.000 batch.
Configurazione di un Proxy per i sink
Per configurare un proxy per tutti i tipi di sink di Kinesis Agent per Windows che accedono ai servizi AWS, modificare il file di configurazione dell'Agente Kinesis per Windows che si trova in%Program
Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config
: . Per istruzioni, consultaproxy
SezioneDocumentazione di riferimento per AWS SDK for .NETnellaGuida per gli sviluppatori dell'SDK AWS per .NET: .
Configurazione delle variabili di risoluzione in più attributi sink
L'esempio seguente mostra una configurazione sink che utilizza ilRegion
Variabile di ambiente per il valore delRegion
Coppia chiave-valore dell'attributo. PerRoleARN
, specifica la chiave del tag EC2MyRoleARN
, che restituisce il valore associato a quella chiave.
"Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}" "Region": "{env:Region}" "RoleARN": "{ec2tag:MyRoleARN}"
Configurazione degli endpoint regionali di AWS STS quando si utilizza la proprietà RoleARN nei sink AWS
Questa funzione si applica solo se utilizzi KinesiStap su Amazon EC2 e utilizzi ilRoleARN
dei sink AWS per assumere un ruolo IAM esterno per l'autenticazione con i servizi AWS di destinazione.
ImpostandoUseSTSRegionalEndpoints
Da atrue
, è possibile specificare che un agente utilizzi l'endpoint regionale (ad esempiohttps://sts.us-east-1.amazonaws.com
) invece dell'endpoint globale (ad esempio,https://sts.amazonaws.com
). L'utilizzo di un endpoint STS regionale riduce la latenza di andata e ritorno per l'operazione e limita l'impatto degli errori nel servizio endpoint globale.
Configurazione di VPC Endpoint per i sink AWS
È possibile specificare un endpoint VPC nella configurazione sink perCloudWatchLogs
,CloudWatch
,KinesisStreams
, eKinesisFirehose
tipi di lavello. Un endpoint VPC consente di connettere privatamente il VPC a servizi AWS supportati e servizi endpoint VPC powered by AWS PrivateLink senza richiedere un Internet gateway, un dispositivo NAT, una connessione VPN o una connessione AWS Direct Connect. Le istanze nel VPC non richiedono indirizzi IP pubblici per comunicare con risorse nel servizio. Il traffico tra il VPC e gli altri servizi non lascia la rete Amazon. Per ulteriori informazioni, consultaEndpoint VPCnellaGuida per l'utente di Amazon VPC: .
È possibile specificare l'endpoint VPC utilizzando il comandoServiceURL
come mostrato nell'esempio seguente di un'CloudWatchLogs
configurazione del sink. Impostare il valoreServiceURL
al valore mostrato nella schedaDettagli dell'endpoint VPCcon la console Amazon VPC.
{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "ServiceURL":"
https://vpce-ab1c234de56-ab7cdefg.logs.us-east-1.vpce.amazonaws.com
" }
Configurazione di un mezzo alternativo di proxy
Questa funzionalità consente di configurare un server proxy in una configurazione sink utilizzando il supporto proxy incorporato in AWS SDK anziché .NET. In precedenza, l'unico modo per configurare l'agente per utilizzare un proxy era utilizzare una funzionalità nativa di .NET, che instradava automaticamente tutte le richieste HTTP/S tramite il proxy definito nel file proxy.
Se si sta attualmente utilizzando l'agente con un server proxy, non è necessario modificare per utilizzare questo metodo.
Puoi utilizzareProxyHost
eProxyPort
Per configurare un proxy alternativo, come mostrato nell'esempio seguente.
{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "Region": "
us-west-2
", "ProxyHost": "myproxy.mydnsdomain.com
", "ProxyPort": "8080
" }