Come posso visualizzare un elenco delle mie istanze Amazon EC2 connesse ad Amazon EFS?

6 minuti di lettura
0

Desidero visualizzare un elenco delle mie istanze Amazon Elastic Compute Cloud (Amazon EC2) in cui è montato Amazon Elastic File System (Amazon EFS). Come posso farlo?

Breve descrizione

I log di flusso VPC vengono utilizzati per monitorare il traffico nell'interfaccia di rete elastica di ciascuna destinazione di montaggio di Amazon EFS. I log di flusso possono essere inviati ai log di Amazon CloudWatch. Se si utilizza Logs Insights di CloudWatch, il flusso di traffico nell'interfaccia di rete elastica della destinazione di montaggio viene filtrato per fornire l'elenco delle istanze Amazon EC2 che hanno montato Amazon EFS in un timestamp specifico.

Risoluzione

Nota: se si verificano errori durante l'esecuzione dei comandi dell’Interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia della linea di comando AWS.

Esegui i seguenti passaggi una volta. Una volta completati questi passaggi, ogni volta che desideri elencare gli indirizzi IP dei client in cui è montato Amazon EFS, esegui una query per creare un elenco corrente.

Creazione di un gruppo di log

  1. Apri la console CloudWatch.
  2. Nel riquadro di navigazione, scegli Log, quindi scegli Gruppi di log.
  3. Scegli Crea gruppo di log.
  4. Inserisci Nome del gruppo di log, Impostazioni di conservazione e, in via opzionale, ARN chiave KMS. Puoi anche aggiungere Tag.
  5. Scegli Crea.

Crea un ruolo Identity and Access Management (IAM) con l'autorizzazione per pubblicare log di flusso in CloudWatch Logs

  1. Apri la console IAM.
  2. Nel riquadro di navigazione, scegli Ruoli in Gestione degli accessi.
  3. Scegli Crea ruolo e Crea un nuovo ruolo IAM.
  4. La policy IAM associata al ruolo IAM deve includere le autorizzazioni per pubblicare log di flusso VPC su CloudWatch. Inoltre, deve avere una relazione di trust che consenta al servizio di log di flusso di assumere il ruolo.

Elenco delle interfacce di rete elastiche utilizzate dalla destinazione di montaggio di Amazon EFS

Nota: Amazon EFS ha una destinazione di montaggio diverso per ciascuna Zona di disponibilità.

  1. Apri la console Amazon EFS.
  2. In File system, scegli l’Amazon EFS specifico, quindi scegli Visualizza i dettagli.
  3. Fai clic su Rete e annota l'ID interfaccia di ogni destinazione di montaggio.

Creazione dei log di flusso

  1. Apri la console Amazon EC2.
  2. Scegli Rete e sicurezza, quindi scegli Interfacce di rete.
  3. Scegli tutte le interfacce di rete elastiche utilizzate dalla destinazione di montaggio.
  4. Nel menu Azioni, scegli Crea log di flusso. Utilizza i seguenti valori per creare il log di flusso:
  • Nome: Facoltativo
  • Filtro: Seleziona Tutto
  • Intervallo di aggregazione massimo: Scegli tra l’impostazione predefinita di 10 minuti o 1 minuto
  • Destinazione: Seleziona Invia a CloudWatch Logs
  • Gruppo di log di destinazione: Scegli il gruppo di log che hai creato
  • **Ruolo IAM:**Scegli il ruolo IAM che hai creato
  • **Formato del record di log:**Scegli tra il **Formato predefinito di AWS ** o il Formato personalizzato.
  • Tag: Facoltativo
  1. Scegli Crea.
  2. Controlla lo stato del log di flusso scegliendo l'interfaccia di rete elastica per la quale hai creato un log di flusso. Nella parte inferiore dello schermo, scegliLog di flusso. Verifica che lo Stato sia Attivo.
  3. I primi log di flusso vengono inviati a CloudWatch Logs dopo circa 10 minuti.

Verifica della presenza dei log di flusso in CloudWatch Logs

  1. Apri la console CloudWatch, quindi scegli Log.
  2. Scegli i gruppi di log creati nel passaggio 1.
  3. Verifica che vengano visualizzati tutti i flussi di log che hai creato. Ogni interfaccia di rete elastica ha un flusso di log diverso.

Esecuzione di una query

Per eseguire una query in Logs Insights di CloudWatch:

  1. Nella console CloudWatch, scegli Log, quindi scegli Logs Insights.
  2. Nel menu a discesa, scegli i gruppi di log che hai creato.
  3. Scegli la durata per la quale desideri esaminare i log di flusso (5 m, 30 m, 1 h, 3 h, 12 o Personalizzato).
  4. Inserisci la query seguente:
fields @timestamp, @message | filter dstPort="2049" | stats count(*) as FlowLogEntries by srcAddr | sort FlowLogEntries desc

Nota: questa query esamina tutti i log di flusso generati per tutte le destinazioni di montaggio. La query filtra i log che hanno una porta di destinazione impostata su Port=2049 (i client Amazon EFS si connettono alle destinazioni di montaggio in NFS porta 2049). Poi recupera tutti gli IP di origine univoci (IP client Amazon EFS) e li ordina in base alle connessioni client più attive. L'attività è determinata dal numero di voci nel log di flusso.

  • Scegli Esegui query. L'output contiene l'elenco degli IP privati di tutte le istanze Amazon EC2 in cui è installato Amazon EFS.

L’esempio seguente mostra l’output della query:

#          srcAddr              FlowLogEntries
1      111.22.33.44                 78
2      111.55.66.77                36
3      111.88.99.000                33

Esecuzione di una query con l'interfaccia della linea di comando AWS<br>

Per eseguire una query dall'interfaccia della linea di comando AWS, segui questi passaggi:

  1. Dopo avere impostato il log di flusso VPC, puoi utilizzare un comando dell'interfaccia della linea di comando AWS per eseguire la query.
  2. Verifica che l'interfaccia della linea di comando AWS sia aggiornata all'ultima versione:
$ pip install --upgrade awscli
  • Verifica che jq sia installato:
yum install -y jq
  • Usa questa query dell'interfaccia della linea di comando AWS con i seguenti parametri:
  • log-group-name: inserisci il nome del gruppo di log che hai creato.
  • start-time / end-time: questi valori sono espressi in tempo Unix/Epoch. Usa il convertitore di epoca per convertire i timestamp leggibili dall'uomo in tempo Unix/Epoch.
  • test.json: è anche possibile modificare il nome del file json ogni volta che si esegue questo comando. La modifica del nome assicura che l'output precedente non venga unito al nuovo output.
  • sleep: questo valore (in secondi) viene utilizzato come ritardo durante l'esecuzione della query di Logs Insights di CloudWatch. Il valore inserito dipende dalla durata della revisione dei log di flusso. Per aumentare il tempo di revisione dei log, ad esempio settimane, devi aumentare il valore di ritardo.
aws logs start-query --log-group-name EFS-ENI-Flowlogs --start-time 1643127618 --end-time 1643128901 --query-string 'filter dstPort="2049" | stats count(*) as FlowLogEntries by srcAddr | sort FlowLogEntries desc' > test.json && sleep 10 && jq .queryId test.json | xargs aws logs get-query-results --query-id

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa