Dichiarazioni dei sink - Amazon Kinesis Agent per Microsoft Windows

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 e xml. 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.

Configurazione sink KinesisStream

LaKinesisStreamIl 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 dallaKinesisStreamtipo 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

LaKinesisFirehoseIl 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 dallaKinesisStreamtipo 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 sutrue, 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

LaCloudWatchIl 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

LaCloudWatchLogsIl 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à diCloudWatchLogstipo 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 dalCloudWatchLogstipo 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.

LocaleFileSystemConfigurazione sink

Il tipo di lavelloFileSystemsalva i record di log ed eventi in un file nel file system locale invece di inviarli in streaming ai servizi AWS.FileSystemsono 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 unFileSystemvengono salvati nel singolo file specificato comeFilePath: . SeFilePathnon viene specificato, i record vengono salvati in un file denominatoSinkId.txtnella%TEMP%, che di solito èC:\Users\UserName\AppData\Local\Temp, doveSinkIdè l'identificatore univoco del sink eUserNameè il nome utente di Windows dell'utente attivo.

Questo tipo di sink supporta gli attributi di decorazione del testo. Per ulteriori informazioni, consulta Configurazione delle decorazioni sink.

Un esempioFileSystemNell'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 usatoTempPath\\SinkId.txt, doveTempPathè la cartella memorizzata nella%TEMP%Variabile eSinkIdè l'identificatore univoco del sink.

Format

Specifica il formato dell'evento dajsonoxml: . 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 cuiFormatè impostato su .json: . Questa coppia chiave-valore è facoltativa.

Utilizzo avanzato: simulazione di limitazione dei record e guasti

FileSystempuò 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 utilizzareFileSystemper simulare ed esaminare il comportamento dei sink AWS quando la rete fallisce.

L'esempio seguente mostra unFileSystemcon 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'opzioneRoleARNCoppia 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:

      1. 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.

      2. 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: .

      3. 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:

      1. 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.

      2. 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: .

      3. 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.

      4. 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.

      5. 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 diProfileRefreshingAWSCredentialProviderPer 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 ilProfileRefreshingAWSCredentialProviderper aggiornare le credenziali.

Puoi utilizzareCredentialRefdi qualsiasi configurazione di sincronizzazione AWS per fare riferimento aCredentialsin cui vieneCredentialTypeL'attributo è impostato suProfileRefreshingAWSCredentialProviderCome 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 utilizzandoCredentialRefper fare riferimento a questa configurazione delle credenziali.

CredentialType

Impostare sulla stringa letteraleProfileRefreshingAWSCredentialProvider: .

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 che TextDecoration 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 testo The system has resumed from sleep. e tale origine è connessa al sink tramite una pipe, allora il testo MyComputer1:::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 una ObjectDecoration di "ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}" venga fornita per un sink che specifica JSON Format. 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 aObjectDecoration: . 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,ObjectDecorationExAttributo

"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 deiObjectDecorationdovrebbe 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 aTextDecorationcome mostrato nell'esempio seguente.

"TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"

Puoi utilizzareTextDecorationExper 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 èNULLe la funzione non è progettata per gestireNULL, unNULLviene 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'autorizzazione ec2: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 di Id 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 e CloudWatchLogs 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, consultaproxySezioneDocumentazione 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 ilRegionVariabile di ambiente per il valore delRegionCoppia 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 ilRoleARNdei sink AWS per assumere un ruolo IAM esterno per l'autenticazione con i servizi AWS di destinazione.

ImpostandoUseSTSRegionalEndpointsDa 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, eKinesisFirehosetipi 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 comandoServiceURLcome mostrato nell'esempio seguente di un'CloudWatchLogsconfigurazione del sink. Impostare il valoreServiceURLal 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 utilizzareProxyHosteProxyPortPer 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" }