AWS CloudWatch · 5 min read · Dec 02, 2025

Come inviare i log delle applicazioni Linux a AWS CloudWatch

AWS CloudWatch è un servizio di monitoraggio fornito dal cloud AWS. AWS fornisce monitoraggio predefinito per parametri del server come Utilizzo CPU, Rete In, Rete Out, ecc. AWS CloudWatch può essere utilizzato per monitoraggio personalizzato come utilizzo del disco e utilizzo della memoria (RAM). Per il monitoraggio personalizzato, dobbiamo seguire alcuni passaggi per farlo monitorare.

Allo stesso modo, AWS CloudWatch può essere utilizzato per monitorare i log del server o delle applicazioni. Poiché questa non è una funzionalità predefinita di AWS per ovvi motivi, possiamo configurarlo secondo le nostre esigenze. Dipenderà dall’utente quali log dobbiamo inviare a AWS CloudWatch per il monitoraggio.

Non limitato alle risorse AWS

Anche se AWS CloudWatch è un servizio AWS, non significa che possa essere utilizzato solo per le istanze EC2, può anche essere configurato per inviare log delle applicazioni o del server dalle VM di altri fornitori di cloud e anche dalle VM su disco fisico.

Come inviare log delle applicazioni o del server a AWS CloudWatch

Per inviare i log delle applicazioni o del server a AWS CloudWatch, dobbiamo installare l’agente CloudWatch sul rispettivo server. Utilizzeremo l’istanza AWS EC2 per raggiungere il nostro obiettivo in questo blog.

Passaggi

  1. Ruolo appropriato da allegare all’istanza per comunicare con AWS CloudWatch
  2. Installazione dell’agente AWS CloudWatch
  3. Configurazione dell’agente AWS CloudWatch
  4. Testare i log nel portale AWS CloudWatch

Ruolo IAM

Per inviare i log delle applicazioni o del server a AWS CloudWatch, dobbiamo allegare un ruolo all’istanza EC2 con le autorizzazioni appropriate. Il ruolo consentirà di apportare modifiche in AWS CloudWatch.

Dovrebbe contenere le seguenti politiche.

  • CreateLogStream
  • DescribeLogStream
  • CreateLogGroup
  • PutLogEvents

Creiamo un ruolo in AWS IAM.

Vai alla sezione IAM dall’elenco dei Servizi nella console AWS. Se non hai ancora un account AWS, creane uno da qui.

Seleziona IAM dall'elenco dei Servizi

Nella dashboard IAM, vai su Politica e poi Crea Politica.

Nella pagina “Crea Politica”, seleziona “JSON” dalla scheda e incolla la seguente politica JSON rimuovendo quella predefinita.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ]
    }
  ]
}

La tua politica dovrebbe apparire come sotto. Una volta completato, fai clic sul pulsante “Rivedi Politica” in fondo alla pagina.

Nella pagina successiva, devi fornire un nome alla politica.

Una volta fatto, fai clic sul pulsante “Crea Politica” in fondo alla pagina.

Una volta creata una politica, verrai reindirizzato alla pagina del ruolo IAM. Poiché abbiamo già creato la politica richiesta, creeremo un ruolo che sarà allegato all’istanza.

Nella pagina “Crea Ruolo”, seleziona “EC2”. Poiché stiamo per allegare il ruolo all’istanza EC2.

Fai clic sul pulsante “Avanti: Autorizzazione” in basso a sinistra della pagina.

Nella pagina successiva, ti verrà chiesto di allegare una politica al ruolo. Cerca il nome della politica che hai fornito nel passaggio precedente. Una volta trovata, seleziona la politica dall’elenco.

Una volta fatto, fai clic sul pulsante “Avanti: Tag” in fondo alla pagina.

Nella pagina successiva, ti verrà chiesto di dare alcuni tag al ruolo. Poiché questo è un passaggio facoltativo, non do alcun tag al ruolo e salto il passaggio.

Una volta che fai clic su avanti, ti verrà chiesto di dare un nome al ruolo.

Il tuo ruolo verrà creato in pochi secondi.

Ora che abbiamo completato la configurazione necessaria dal lato infrastrutturale, configuriamo l’agente AWS CloudWatch sull’istanza EC2.

Per questo passaggio, hai bisogno di un’istanza EC2 in stato di esecuzione. Connettiti all’istanza nel modo che preferisci. Ci sono più modi per connettersi all’istanza. Puoi controllarli qui.

Se hai un’istanza Amazon Linux, segui i passaggi sotto indicati.

Se sei loggato nell’istanza per la prima volta, assicurati di eseguire il comando di aggiornamento sottostante.

Passaggi seguenti, puoi seguire per le macchine Amazon Linux.

sudo yum update -y

Una volta completato l’aggiornamento, esegui il comando sottostante per installare il pacchetto awslogs.

sudo yum install -y awslogs

Una volta installato il pacchetto, puoi cambiare la regione nel file /etc/awslogs/awscli.conf.

Ora, per configurare i log che desideri inviare su AWS CloudWatch, apri il file /etc/awslogs/awslogs.conf e controlla le seguenti righe.

[/var/log/messages]  
datetime_format = %b %d %H:%M:%S  
file = /var/log/messages  
buffer_duration = 5000  
log_stream_name = {instance_id}  
initial_position = start_of_file  
log_group_name = Amazon-Linux-2

La configurazione sopra indica che il percorso del file di log dal tuo sistema /var/log/messages verrà caricato su AWS CloudWatch. La configurazione sopra creerà un gruppo di log in AWS CloudWatch con il nome menzionato nel parametro log_group_name. Inoltre, avrà la gerarchia menzionata nel log_stream_name. Per il tempo di buffer, possiamo cambiare il valore di buffer_duration. Il valore predefinito di buffer_duration è 5000 ms.

Una volta apportate le modifiche, riavvia l’applicazione eseguendo il comando sottostante. Riavvierà l’applicazione awslog e l’agente inizierà a caricare i log su AWS CloudWatch.

$ sudo service awslogsd start

Per installare e configurare l’agente AWS CloudWatch su RHEL o CentOS, puoi seguire i passaggi sottostanti.

Esegui il comando sottostante per scaricare il pacchetto.

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

Troverai un file con il nome awslogs-agent-setup.py nella posizione attuale. Poiché il file scaricato è uno script python, devi avere python installato sulla tua macchina per il passaggio successivo. Assicurati di avere un pacchetto python installato e poi esegui il comando sottostante. Devi specificare la regione nel comando sottostante. Puoi anche cambiarla nella configurazione in seguito se lo desideri.

python ./awslogs-agent-setup.py --region ap-south-1

Una volta eseguito il comando sopra, ti verrà chiesto di fornire alcuni input. Indica gli stessi secondo le esigenze.

Lo script sopra genererà il file di configurazione /var/awslogs/etc/awslogs.conf . I dettagli che hai fornito nello script verranno salvati nel file di configurazione.

Puoi comunque modificare il file di configurazione secondo le tue esigenze.

Una volta completate tutte le modifiche, riavvia l’agente eseguendo il comando sottostante.

# systemctl start awslogs

Verifica la configurazione impostata

  1. Accedi nuovamente al tuo account AWS.

  2. Cerca CloudWatch nell’elenco dei Servizi.

  3. Scegli l’opzione Gruppo di Log dai menu a sinistra.

  4. Cerca il valore che hai fornito nel parametro log_stram_name nella configurazione.

  5. Vedrai che i log vengono inviati dal server a AWS CloudWatch.

Conclusione

Puoi configurare qualsiasi file di log dal tuo server per essere inviato a AWS CloudWatch. Questo può essere configurato per i server che non sono nel cloud AWS. Significa che puoi inviare i log da uno qualsiasi dei tuoi server ospitati su Azure, GCP o qualsiasi altro fornitore di cloud o anche un server on-premise.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.