Come posso inviare i log di flusso VPC su Splunk utilizzando Amazon Kinesis Firehose?

6 minuti di lettura
0

Desidero migliorare l'integrazione dei dati AWS con Splunk quando invio i dati da un'origine AWS a un cluster Splunk.

Risoluzione

Nota: Kinesis Data Firehose non supporta Application Load Balancer o Network Load Balancer. In alternativa, utilizza un Classic Load Balancer. Assicurati di consentire sessioni permanenti basate sulla durata, disattivando la scadenza dei cookie. Per ulteriori informazioni sulla risoluzione dei problemi relativi al flusso di consegna con gli endpoint Splunk, consulta la sezione Dati non distribuiti su Splunk.

Prerequisiti

Creazione di un flusso di consegna Kinesis Data Firehose

1.    Crea il tuo flusso di consegna. In Origine, scegli PUT diretto.

2.    In Destinazione, scegli Splunk.

3.    Inserisci il nome del flusso di consegna.

Configurazione della trasformazione dei record con AWS Lambda

1.    Configura la trasformazione dei record.Nota: in Trasforma i record di origine con AWS Lambda, scegli Abilitata per Trasformazione dei record. CloudWatch invia i log come file .gzip compressi e Amazon Kinesis deve estrarre questi file prima di poterli utilizzare.

2.    In Funzione Lambda, scegli Crea nuova.

3.    Nella finestra Scegli schema Lambda, per Schema Lambda seleziona Kinesis Firehose CloudWatch Logs Processor.

4.    Scegli la nuova scheda aperta nel browser per creare la nuova funzione Lambda:
In Nome, inserisci un nome per la funzione Lambda.
In Ruolo, scegli Crea un ruolo personalizzato.

5.     Scegli la nuova scheda aperta nel browser per creare un nuovo ruolo AWS Identity and Access Management (IAM). In Nome del ruolo, assicurati che il nome sia lambda_basic_execution.

6.    Scegli Consenti per creare il ruolo, quindi torna alla pagina di configurazione della funzione Lambda.

7.    Scegli Crea funzione.

8.    Per evitare che la funzione scada, aumenta il valore di Timeout dai 3 secondi predefiniti a 1 minuto.

9.    Scegli Salva.

Finalizza il flusso di consegna Kinesis Data Firehose

1.    Apri la console Amazon Kinesis.

2.    Nel pannello di navigazione, scegli Data Firehose.

3.    Per il flusso di consegna, scegli Funzione Lambda e, nel menu a discesa, seleziona il nome della nuova funzione AWS Lambda.

4.    In Impostazioni di destinazione, inserisci i dettagli dell'HEC Splunk, incluso l'endpoint HEC Splunk creato.
Nota: è necessario terminare l'endpoint HEC Splunk con un certificato SSL valido. Utilizza il nome host DNS corrispondente per collegarti all'endpoint HEC. Il formato per l'endpoint del cluster è https://YOUR-ENDPOINT.splunk.com:8088.

5.    In Tipo di endpoint Splunk, scegli Endpoint grezzo e inserisci il token di autenticazione.

6.    Scegli Avanti.

7.    (Facoltativo) Scegli un bucket Amazon Simple Storage Service (Amazon S3) esistente o creane uno nuovo per eseguire il backup degli eventi non riusciti o di tutti gli eventi. Assicurati di configurare le impostazioni Amazon S3 correlate, come le condizioni di buffer, le impostazioni di compressione e crittografia e le opzioni di registrazione degli errori nella procedura guidata per il flusso di consegna.

8.    In Ruolo IAM, scegli Crea nuovo.

9.    Nella scheda che si apre, inserisci il Nome del ruolo e scegli Consenti.

10.    Scegli Avanti.

11.    Scegli Crea flusso di consegna.

Configurazione dei log di flusso Amazon VPC

Nota: se disponi di un log di flusso Amazon VPC, passa alla sezione successiva, Creazione di una sottoscrizione ad Amazon CloudWatch Logs. Se non disponi di un log di flusso VPC, completa i passaggi seguenti:

1.    Apri la console CloudWatch.

2.    Nel pannello di navigazione, scegli Log.

3.    In Azioni, scegli Crea gruppo di log.

4.    Inserisci il Nome del gruppo di log.

5.    Scegli Crea gruppo di log.

6.    Apri la console Amazon VPC.

7.    Nel pannello di navigazione, in Cloud privato virtuale, scegli I tuoi VPC.

8.    Nel riquadro dei contenuti, seleziona il tuo VPC.

9.    Scegli la vista Log di flusso.

10.    Scegli Crea log di flusso:

  • In Filtro, scegli Tutto.
  • In Gruppo di log di destinazione, scegli il gruppo di log appena creato.
  • In Ruolo IAM, scegli un ruolo IAM che consenta ad Amazon VPC di pubblicare log su CloudWatch. Se non disponi di un ruolo IAM adeguato, in Ruolo IAM scegli Imposta autorizzazioni e quindi Crea un nuovo ruolo IAM. Mantieni le impostazioni predefinite.
  • Scegli Consenti per creare e associare il ruolo VPCFlowLogs al gruppo di log di destinazione.

11.    Scegli Crea.

12.    Crea un feed in tempo reale dal gruppo di log al flusso di consegna:

Nota: in caso di errori durante l'esecuzione dei comandi dell'interfacciai AWS CLI, conferma di utilizzare una versione recente di AWS CLI.

Creazione di una sottoscrizione ad Amazon CloudWatch Logs

1.    Concedi l'accesso a CloudWatch per pubblicare il flusso Kinesis Data Firehose con le autorizzazioni corrette del ruolo.

2.    Apri AWS CLI.

3.    Utilizza il seguente file JSON per creare una policy di attendibilità (come, ad esempio, TrustPolicyforCWLToFireHose.json). Sostituisci YOUR-RESOURCE-REGION con la Regione AWS della risorsa.

{
  "Statement": {
    "Effect": "Allow",
    "Principal": { "Service": "logs.YOUR-RESOURCE-REGION.amazonaws.com" },
    "Action": "sts:AssumeRole"
  }
}

4.    Esegui il comando seguente per creare il ruolo con le autorizzazioni della policy di attendibilità:

$ aws iam create-role --role-name CWLtoKinesisFirehoseRole --assume-role-policy-document file://TrustPolicyForCWLToFireHose.json

5.    Utilizza il seguente file JSON per creare la tua policy IAM (come, ad esempio, PermissionPolicyForCWLToFireHose.json). Sostituisci YOUR-AWS-ACCT-NUM con il numero dell'account AWS, YOUR-RESOURCE-REGION con la regione della risorsa e FirehoseSplunkDeliveryStream con il nome del flusso.

{
    "Statement":[
      {
        "Effect":"Allow",
        "Action":["firehose:PutRecord"],
        "Resource":["arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"]
      },
      {
        "Effect":"Allow",
        "Action":["iam:PassRole"],
        "Resource":["arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"]
      }
    ]
}

6.    Esegui il comando seguente per associare la policy IAM al ruolo:

$ aws iam put-role-policy
    --role-name CWLtoKinesisFirehoseRole
    --policy-name Permissions-Policy-For-CWL
    --policy-document file://PermissionPolicyForCWLToFireHose.json

7.    Esegui il comando seguente per creare un filtro di sottoscrizione. Sostituisci YOUR-AWS-ACCT-NUM con il numero dell'account AWS, YOUR-RESOURCE-REGION con la regione della risorsa e FirehoseSplunkDeliveryStream con il nome del flusso.

$ aws logs put-subscription-filter
   --log-group-name " /vpc/flowlog/FirehoseSplunk"
   --filter-name "Destination"
   --filter-pattern ""
   --destination-arn "arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"
   --role-arn "arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"

Per ulteriori informazioni sui filtri di sottoscrizione, consulta la sezione Esempio 3: filtri di sottoscrizione con Amazon Kinesis Data Firehose.

Informazioni correlate

Power data ingestion into Splunk using Amazon Kinesis Data Firehose

Impostazioni di destinazione

Controllo degli accessi con Amazon Kinesis Data Firehose

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa