Come posso creare, configurare e risolvere i problemi di un filtro di sottoscrizione per Kinesis utilizzando la console di CloudWatch?

Ultimo aggiornamento: 12/04/2022

Voglio creare un filtro di sottoscrizione per lo streaming di Amazon CloudWatch Logs su Amazon Kinesis utilizzando la console CloudWatch. In che modo posso farlo?

Breve descrizione

I registri di CloudWatch possono essere inviati quasi in tempo reale allo stesso account o a destinazioni Kinesis o Amazon Kinesis Data Firehose su più account. Puoi farlo utilizzando un filtro di sottoscrizione. La console di CloudWatch Logs supporta la configurazione di destinazione e impostazione.

Per informazioni su come configurare un filtro di sottoscrizione utilizzando la sintassi dei modelli di filtro, consulta Sintassi dei filtri e dei modelli.

Risoluzione

Configurazione della sottoscrizione per un flusso di dati Kinesis nello stesso account o in quello corrente

Nota: la Regione del gruppo di registri di CloudWatch e la Regione di destinazione Kinesis devono essere uguali.

Prima di avviare la sottoscrizione, procedi come segue:

Per creare un ruolo e una policy di ruolo IAM personalizzati, procedi come segue:

1.    Apri la console IAM con l'utente che dispone delle autorizzazioni di amministratore.

2.    Nel riquadro di navigazione, seleziona Policies (Policy).

3.    Nel pannello dei contenuti, scegli Crea policy.

4.    Copia e incolla il seguente documento di policy JSON nella scheda JSON.

Autorizzazione ruolo

{
  "Statement": [{
    "Effect": "Allow",
    "Action": "kinesis:PutRecord",
    "Resource": "arn:aws:kinesis:<REGION>:<ACCOUNT_ID>:stream/<STREAM_NAME>"
  }]
}

5.    Apri la console IAM.

6.    Nel pannello di navigazione della console, scegli Ruoli, quindi scegli Crea ruolo.

7.    Scegli il tipo di ruolo della policy di attendibilità personalizzato.

8.    Nella sezione Policy di attendibilità personalizzata, inserisci o incolla la policy di attendibilità personalizzata per il ruolo. Per ulteriori informazioni, consulta Creazione di policy IAM.

9.    Scegliere Next (Avanti).

10.    Seleziona la policy IAM personalizzata creata nel passaggio precedente.

11.    Scegli Avanti, Crea un ruolo

Policy di attendibilità

{
  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "Service": "logs.region.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringLike": {
        "aws:SourceArn": "arn:aws:logs:<REGION>:<ACCOUNT_ID>:*"
      }
    }
  }
}

Dopo aver creato un flusso Kinesis e un ruolo IAM, puoi creare un filtro di sottoscrizione:

1.    Apri la console CloudWatch.

2.    Seleziona Gruppo di registri.

3.    Seleziona su Operazione, Filtri di iscrizione.

4.    Per configurare la destinazione, scegli Crea filtro di sottoscrizione Kinesis.

5.    Seleziona Account attuale.

6.    Seleziona il tuo flusso di dati Kinesis dall'elenco a discesa.

7.    Seleziona il ruolo IAM creato in precedenza.

8.    Esamina il Metodo di distribuzione:

Per flusso di registri: verifica che i consumatori a valle possano aggregare i registri evento in base al flusso di registro, ma potrebbe essere meno efficiente. Questo metodo potrebbe anche comportare costi di streaming più elevati perché richiede più partizioni.

Casuale: distribuisce il carico tra le partizioni del flusso Kinesis, ma i consumatori a valle non possono aggregare i registri evento per flusso di registro.

9.    Configura il formato e i filtri del registro:

Seleziona il formato del registro. Il formato può essere Amazon VPC Flow Logs, AWS CloudTrail o AWS Lambda per i registri pubblicati da Amazon VPC, CloudTrail o Lambda. In alternativa, puoi scegliere JSON, Spazio delimitato o Altro, a seconda dei registri evento in arrivo.

Definisci il modello di filtro nella sezione Modello di filtro di sottoscrizione.

Inserisci un nome per il tuo filtro di iscrizione.

10.    Verifica il tuo modello con i dati dei registri evento esistenti

11.    Dopo la verifica, seleziona Avvia streaming.

12.    (Facoltativo) Verifica che il flusso di dati funzioni convalidando il flusso del registro evento.

Configurazione di una destinazione del flusso di dati Kinesis su più account

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi AWS Command Line Interface (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

Puoi distribuire eventi CloudWatch Logs ai flussi di dati Kinesis in diversi account e Regioni AWS. A tale scopo, imposta la condivisione dei dati dei registri su più account con le sottoscrizioni specificando la Regione AWS, come mostrato nell'esempio seguente.

Nota: in questo esempio, i registri di CloudWatch nella Regione us-east-1 vengono inviati al flusso di dati Kinesis di un altro utente AWS in us-west-2. L'ID account AWS del destinatario dei dati di registri è 222222222222 e l'ID account AWS del mittente dei dati dei registri è 111111111111.

Crea un flusso di dati di destinazione nell'account del destinatario 222222222222

1.    Crea un flusso di dati di destinazione in Kinesis nell'account del destinatario dei dati con un ruolo IAM e una policy di attendibilità.

2.    Usa il comando create-stream per creare il flusso di dati. Assicurati di specificare —region. Ad esempio, questo comando crea il flusso di dati YourStreamName in us-west-2:

aws kinesis create-stream --stream-name "YourStreamName" --shard-count 1 --region us-west-2

3.    Usa il comando describe-stream per controllare la proprietà StreamDescription.StreamStatus. Assicurati di specificare —region. Ad esempio, questo comando controlla il flusso YourStreamName in us-west-2:

aws kinesis describe-stream --stream-name "YourStreamName" --region us-west-2

4.    Usa il comando put-destination per creare la destinazione CloudWatch Logs. Imposta —region per —role-arn sulla stessa Regione dei registri di CloudWatch di origine. Ad esempio, il comando seguente deve essere eseguito nell'account del destinatario/di destinazione 222222222222 che crea la destinazione del registro nell'account del destinatario 222222222222 in us-east-1:

aws logs put-destination \
  --destination-name "testDestination" \
  --target-arn "arn:aws:kinesis:us-west-2:222222222222:stream/YourStreamName" \
  --role-arn "arn:aws:iam::222222222222:role/YourIAMRoleName" --region us-east-1

Creare un filtro di sottoscrizione nell'account di origine 111111111111

Per creare il filtro di sottoscrizione, procedi come segue:

1.    Seleziona il gruppo di registri.

2.    Seleziona Operazione, Filtri di iscrizione.

3.    Per selezionare la destinazione, scegli tra le seguenti opzioni:

Crea filtro di sottoscrizione Kinesis: Crea un filtro di sottoscrizione per una destinazione del flusso di dati Kinesis

4.    Seleziona un altro account, perché la destinazione è su più account.

5.    Per una destinazione Kinesis o Kinesis Firehose su più account, fornisci l'ARN di destinazione.

6.    Seleziona il Metodo di distribuzione:

Per flusso di registri: verifica che i consumatori a valle possano aggregare i registri evento in base al flusso di registro, ma potrebbe essere meno efficiente. Questo metodo potrebbe anche comportare costi di streaming più elevati perché richiede più partizioni.

Casuale: distribuisce il carico tra le partizioni del flusso Kinesis, ma i consumatori a valle non possono aggregare i registri evento per flusso di registro.

7.    Configura il formato e i filtri del registro:

Seleziona il formato del registro. Il formato può essere Amazon VPC Flow Logs, CloudTrail o AWS Lambda per i registri pubblicati da Amazon VPC, CloudTrail o Lambda. In alternativa, puoi scegliere JSON, Spazio delimitato o Altro, a seconda dei registri evento in arrivo.

Definisci il modello di filtro nella sezione Modello di filtro di sottoscrizione.

Inserisci un nome per il tuo filtro di iscrizione.

8.    Verifica il tuo modello con i dati dei registri evento esistenti

9.    Dopo la verifica, seleziona Avvia streaming.

10.    (Facoltativo) Verifica che il flusso di dati funzioni convalidando il flusso del registro evento.

Risoluzione dei problemi

  • Assicurati che il flusso Kinesis sia nello stato Attivo e che sia possibile visualizzarlo sulla console Kinesis. In alternativa, puoi utilizzare la chiamata API DescribeStream.
  • Verifica che il gruppo di registri di CloudWatch e la Regione del flusso di dati Kinesis corrispondano.
  • Assicurati che esista un ruolo IAM che disponga delle autorizzazioni di attendibilità per logs.yourregion.amazonaws.com e consenta l'autorizzazione kinesis:putrecords.
  • Verifica che le Regioni e le risorse nella policy IAM siano corrette.
  • Assicurati di non aver selezionato Kinesis Firehose durante la configurazione di un filtro di sottoscrizione per il flusso di dati Kinesis.
  • Dopo aver avviato lo streaming, verificare che i parametri per il filtro di sottoscrizione confermino che il modello di filtro sia valido e corrisponda ai registri evento in arrivo. A tale scopo, esamina i seguenti parametri: ForwardedBytes: il volume dei registri evento in byte compressi inoltrati alla destinazione della sottoscrizione. ForwardedLogEvents: il numero di registri evento inoltrati alla destinazione della sottoscrizione.
  • Per verificare che non vi siano errori durante lo streaming di registri evento verso la destinazione, verifica i seguenti parametri: DeliveryErrors: il numero di registri evento per i quali CloudWatch Logs ha ricevuto un errore durante l'inoltro dei dati alla destinazione della sottoscrizione. DeliveryThrottling: il numero di registri evento che indicano che CloudWatch Logs è stato limitato durante l'inoltro dei dati alla destinazione della sottoscrizione.
  • Se disponi di un flusso Kinesis dedicato, controlla i parametri del flusso per confermare la funzionalità.
  • Per risolvere i problemi di registrazione su più account, consulta Risoluzione dei problemi relativi alla configurazione su più account di CloudWatch.

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?