GNU/Linux >> Linux Esercitazione >  >> Linux

Come inviare i log delle applicazioni Linux ad AWS CloudWatch

AWS CloudWatch è un servizio di monitoraggio fornito dal cloud AWS. AWS fornisce il monitoraggio predefinito per parametri del server come Utilizzo CPU, Ingresso rete, Uscita rete e così via. AWS CloudWatch può essere utilizzato per il monitoraggio personalizzato come l'utilizzo del disco e l'utilizzo della memoria (RAM). Per il monitoraggio personalizzato, è necessario seguire alcuni passaggi per monitorarlo.

Allo stesso modo, AWS CloudWatch può essere utilizzato per monitorare i log del server o dell'applicazione. Poiché questa non è una funzionalità predefinita di AWS per ovvi motivi, possiamo configurarla secondo i nostri requisiti. Dipenderà dall'utente quali log dobbiamo inviare ad 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, ma può anche essere configurato per inviare log di applicazioni o server dalle VM da altri provider cloud e anche dalle VM sull'unità fisica .

Come inviare i log dell'applicazione o del server ad AWS CloudWatch

Per inviare i log dell'applicazione o del server ad AWS CloudWatch, è necessario 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 collegare all'istanza per comunicare con AWS CloudWatch
  2. Installazione dell'agente AWS CloudWatch
  3. Configurazione dell'agente AWS CloudWatch
  4. Test dei log nel portale AWS CloudWatch

Ruolo IAM

Per inviare i log dell'applicazione o del server ad AWS CloudWatch, è necessario collegare un ruolo all'istanza EC2 con le autorizzazioni appropriate. Il ruolo consentirà di apportare modifiche in AWS CloudWatch.

Dovrebbe contenere le seguenti politiche.

  • CreateLogStream
  • DescriviLogStream
  • CreaGruppoLog
  • PutLogEvents

Creiamo un ruolo in AWS IAM.

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

Nella dashboard IAM, vai a Politica e poi Crea norma.

Nella pagina "Crea criterio", seleziona "JSON" dalla scheda e incolla il criterio JSON sottostante rimuovendo quello predefinito.

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

La tua polizza dovrebbe apparire come di seguito. Una volta terminato, fare clic sul pulsante "Revisione politica" in fondo alla pagina.

Nella pagina successiva, è necessario fornire il nome alla politica.

Al termine, fai clic sul pulsante "Crea politica" in fondo alla pagina.

Dopo aver creato una policy, verrai reindirizzato alla pagina del ruolo IAM. Poiché abbiamo già creato la policy richiesta, creeremo un ruolo che sarà allegato all'istanza.

Nella pagina "Crea ruolo", seleziona "EC2". Poiché collegheremo il ruolo all'istanza EC2.

Fare clic sul pulsante "Avanti:Autorizzazione" nella parte inferiore sinistra della pagina.

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

Una volta terminato, fai clic sul pulsante "Avanti:Tag" nella parte inferiore della pagina.

Nella pagina successiva, ti verrà chiesto di assegnare alcuni tag al ruolo. Poiché si tratta di un passaggio facoltativo, non sto assegnando alcun tag al ruolo e ho saltato il passaggio.

Dopo aver fatto 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 richiesta dal lato infrastruttura, configuriamo l'agente AWS CloudWatch sull'istanza EC2.

Per questo passaggio, è necessaria un'istanza EC2 in esecuzione. Collegati all'istanza nel modo desiderato. Esistono diversi modi per connettersi all'istanza. Puoi verificarli qui.

Se disponi di un'istanza Amazon Linux, segui i passaggi indicati di seguito.

Se esegui l'accesso all'istanza per la prima volta, assicurati di eseguire il comando di aggiornamento seguente.

Di seguito, puoi seguire i passaggi per Amazon Linux macchine.

sudo yum update -y

Una volta completato l'aggiornamento, esegui il comando seguente per installare gli awslogs pacchetto.

sudo yum install -y awslogs

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

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 registro dal tuo sistema /var/log/messages  verrà caricato su AWS CloudWatch. La configurazione precedente creerà un gruppo di log in AWS CloudWatch con il nome menzionato in log_group_name parametro. Inoltre, avrà la gerarchia menzionata in log_stream_name. Per il tempo del buffer, possiamo modificare il valore di buffer_duration. Il valore predefinito di buffer_duration è 5000 ms.

Una volta apportate le modifiche, riavvia l'applicazione eseguendo il comando seguente. 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 seguenti.

Eseguire il comando seguente 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 quindi esegui il comando seguente. È necessario specificare la regione nel comando seguente. Puoi anche modificare lo stesso nella configurazione in un secondo momento, se lo desideri.

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

Una volta eseguito il comando precedente, ti verranno richiesti alcuni input. Menzionare lo stesso come per i requisiti.

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 terminate tutte le modifiche, riavvia l'agente eseguendo il comando seguente.

# systemctl start awslogs

Verifica la configurazione configurata

1. Accedi nuovamente al tuo account AWS.

2. Cerca CloudWatch nell'elenco Servizi.

3. Scegli il Gruppo di log opzione dai menu a sinistra.

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

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

Conclusione

Puoi configurare qualsiasi file di log dal tuo server per il push in AWS CloudWatch. Questo può essere configurato per i server che non si trovano nel cloud AWS. Ciò significa che puoi eseguire il push dei log da qualsiasi server ospitato su Azure, GCP o qualsiasi altro provider cloud o persino un server locale.


Linux
  1. Come migliorare il tempo di avvio dell'applicazione in Linux

  2. Come installare l'applicazione Spotify su Linux

  3. Come trovare l'applicazione per un tipo Mime su Linux?

  4. Come utilizzare SSMTP per inviare un'e-mail dal terminale Linux

  5. Come firmare un'applicazione Mac OS X in Linux?

Come creare un Application Load Balancer su AWS

Come creare un evento in AWS Cloudwatch per attivare una funzione Lambda

Come inviare e-mail crittografate in Linux

Come abilitare l'opzione "Modifica" nell'applicazione Shutter in Linux

Come installare il software Windows su Linux con Bottles

Come inviare processi in background su Linux