Avvio rapido: installa l'agente CloudWatch Logs utilizzando AWS OpsWorks and Chef - CloudWatch Registri Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvio rapido: installa l'agente CloudWatch Logs utilizzando AWS OpsWorks and Chef

Puoi installare l'agente CloudWatch Logs e creare flussi di log utilizzando and Chef, uno AWS OpsWorks strumento di automazione dei sistemi e dell'infrastruttura cloud di terze parti. Chef utilizza le "ricette", che puoi scrivere per installare e configurare software sul tuo computer, e i "libri di ricette", che sono raccolte di ricette, per eseguire attività di configurazione e distribuzione delle policy. Per ulteriori informazioni, consulta Chef.

Gli esempi di ricette Chef riportati di seguito mostrano come monitorare un file di registro per ogni EC2 istanza. Le ricette utilizzano il nome dello stack come gruppo di log e il nome host dell'istanza come nome del flusso di log. Per monitorare più file di log, è necessario estendere le ricette per creare più gruppi di log e flussi di log.

Fase 1: creazione di ricette personalizzate

Crea un archivio per archiviare le tue ricette. AWS OpsWorks supporta Git e Subversion oppure puoi archiviare un archivio in Amazon S3. La struttura del repository dei libri di ricette è descritta nella sezione Repository dei libri di ricette nella AWS OpsWorks Guida per l'utente. Gli esempi di seguito presuppongono che il libro di ricette sia denominato logs. La ricetta install.rb installa l'agente Logs. CloudWatch Puoi anche scaricare l'esempio del libro di cucina (-Cookbooks.zip). CloudWatchLogs

Crea un file denominato metadata.rb che contiene il seguente codice:

#metadata.rb name 'logs' version '0.0.1'

Crea il file di configurazione CloudWatch dei registri:

#config.rb template "/tmp/cwlogs.cfg" do cookbook "logs" source "cwlogs.cfg.erb" owner "root" group "root" mode 0644 end

Scarica e installa l'agente CloudWatch Logs:

# install.rb directory "/opt/aws/cloudwatch" do recursive true end remote_file "/opt/aws/cloudwatch/awslogs-agent-setup.py" do source "https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py" mode "0755" end execute "Install CloudWatch Logs agent" do command "/opt/aws/cloudwatch/awslogs-agent-setup.py -n -r region -c /tmp/cwlogs.cfg" not_if { system "pgrep -f aws-logs-agent-setup" } end
Nota

Nell'esempio precedente, sostituiscilo region con uno dei seguenti: us-east-1, us-west-2, ap-south-1, ap-northeast-2, ap-northeast-2, ap-southeast-1, ap-southeast-1, ap-southeast-2 ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1 o sa-east-1.

Se l'installazione dell'agente ha esito negativo, verifica che il pacchetto python-dev sia installato. In caso contrario, utilizza il comando seguente, quindi riprova a eseguire l'installazione dell'agente:

sudo apt-get -y install python-dev

Questa ricetta utilizza un file del modello cwlogs.cfg.erb che puoi modificare per specificare diversi attributi, ad esempio quali file registrare. Per ulteriori informazioni su questi attributi, consulta CloudWatch Registra il riferimento dell'agente.

[general] # Path to the AWSLogs agent's state file. Agent uses this file to maintain # client side state across its executions. state_file = /var/awslogs/state/agent-state ## Each log file is defined in its own section. The section name doesn't ## matter as long as its unique within this file. # #[kern.log] # ## Path of log file for the agent to monitor and upload. # #file = /var/log/kern.log # ## Name of the destination log group. # #log_group_name = kern.log # ## Name of the destination log stream. # #log_stream_name = {instance_id} # ## Format specifier for timestamp parsing. # #datetime_format = %b %d %H:%M:%S # # [<%= node[:opsworks][:stack][:name] %>] datetime_format = [%Y-%m-%d %H:%M:%S] log_group_name = <%= node[:opsworks][:stack][:name].gsub(' ','_') %> file = <%= node[:cwlogs][:logfile] %> log_stream_name = <%= node[:opsworks][:instance][:hostname] %>

Il modello ottiene il nome dello stack e il nome host referenziando gli attributi corrispondenti nella configurazione dello stack e nel JSON di distribuzione. L'attributo che specifica il file da registrare è definito nel file degli attributi default.rb del ricettario cwlogs (logs/attributes/default.rb).

default[:cwlogs][:logfile] = '/var/log/aws/opsworks/opsworks-agent.statistics.log'

AWS OpsWorks Fase 2: Creare una pila

  1. Apri la AWS OpsWorks console all'indirizzo https://console.aws.amazon.com/opsworks/.

  2. Nella OpsWorks Dashboard, scegli Aggiungi stack per creare uno AWS OpsWorks stack.

  3. Nella schermata Add stack (Aggiungi stack), scegli Chef 11 stack (Stack Chef 11).

  4. In Stack name (Nome stack), inserisci un nome.

  5. In Use custom Chef Cookbooks (Utilizza i libri di ricette di Chef personalizzati), scegli Yes (Sì).

  6. In Repository type (Tipo di repository), seleziona il tipo di repository che utilizzerai. Se utilizzi l'esempio sopra riportato, scegli Http Archive (Archivio Http).

  7. In Repository URL (URL del repository), inserisci il repository in cui hai memorizzato il libro di ricette creato nella fase precedente. Se utilizzi l'esempio precedente, immetti https://s3.amazonaws.com/aws-cloudwatch/downloads/CloudWatchLogs-Cookbooks.zip.

  8. Scegli Add Stack (Aggiungi stack) per creare lo stack.

Fase 3: ampliamento del ruolo IAM

Per utilizzare CloudWatch Logs con le tue AWS OpsWorks istanze, devi estendere il ruolo IAM utilizzato dalle tue istanze.

  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione scegli Policies (Policy), quindi Create Policy (Crea policy).

  3. Nella pagina Create Policy (Crea policy), sotto Create Your Own Policy (Crea la tua policy), scegli Select (Seleziona). Per ulteriori informazioni sulla creazione di policy personalizzate, consulta IAM Policies for Amazon EC2 nella Amazon EC2 User Guide.

  4. Nella pagina Review Policy (Rivedi policy), in Policy Name (Nome policy) digita un nome per la policy.

  5. In Policy Document (Documento policy), copia la policy seguente:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  6. Scegliere Create Policy (Crea policy).

  7. Nel riquadro di navigazione, scegli Ruoli, quindi nel riquadro dei contenuti, in Nome ruolo, seleziona il nome del ruolo dell'istanza utilizzato dallo AWS OpsWorks stack. Puoi trovare quello utilizzato dal tuo stack nelle impostazioni dello stack (il valore predefinito è aws-opsworks-ec2-role).

    Nota

    Seleziona il nome del ruolo, non la casella di controllo.

  8. Nella scheda Permissions (Autorizzazioni), in Managed Policies (Policy gestite), seleziona Attach Policy (Collega policy).

  9. Nella pagina Attach Policy (Collega policy), nell'intestazione della tabella (accanto a Filter (Filtro) e Search (Cerca)), scegli Policy Type (Tipo di policy), quindi Customer Managed Policies (Policy gestite dal cliente).

  10. In Customer Managed Policies (Policy gestite dal cliente), seleziona la policy IAM creata in precedenza e scegli Attach Policy (Collega policy).

    Per ulteriori informazioni sugli utenti e sulle policy, consulta Utenti e gruppi IAM e Gestione delle policy IAM nella Guida per l'utente IAM.

Fase 4: aggiungere un livello

  1. Apri la AWS OpsWorks console all'indirizzo https://console.aws.amazon.com/opsworks/.

  2. Nel riquadro di navigazione scegli Layers (Livelli).

  3. Nel riquadro dei contenuti, seleziona un livello e scegli Add layer (Aggiungi livello).

  4. Nella OpsWorksscheda, per Tipo di livello, scegli Personalizzato.

  5. Nei campi Name (Nome) e Short Name (Nome breve), inserisci il nome lungo e il nome breve del livello, quindi scegli Add layer (Aggiungi livello).

  6. Nella scheda Recipes, in Custom Chef Recipes, ci sono diverse rubriche, Setup, Configure, Deploy, Undeploy e Shutdown, che corrispondono agli eventi del ciclo di vita. AWS OpsWorks AWS OpsWorks attiva questi eventi in questi punti chiave del ciclo di vita dell'istanza, che esegue le ricette associate.

    Nota

    Se le intestazioni sopra riportate non risultano visibili, sotto Custom Chef Recipes (Ricette di Chef personalizzate), scegli edit (modifica).

  7. Inserisci logs::config, logs::install accanto a Setup (Installa), scegli + per aggiungerlo all'elenco, quindi scegli Save (Salva).

    AWS OpsWorks esegue questa ricetta su ciascuna delle nuove istanze di questo livello, subito dopo l'avvio dell'istanza.

Fase 5: aggiungere un'istanza

Il livello controlla solo la configurazione delle istanze. Sarà ora necessario aggiungere al livello delle istanze e avviarle.

  1. Apri la AWS OpsWorks console all'indirizzo https://console.aws.amazon.com/opsworks/.

  2. Nel riquadro di navigazione scegli Instances (Istanze), quindi, sotto il livello, scegli + Instance (+ istanza).

  3. Accetta le impostazioni predefinite e scegli Aggiungi istanza per aggiungere l'istanza al livello.

  4. Nella colonna Actions (Operazioni) della riga, fai clic su start (avvia) per avviare l'istanza.

    AWS OpsWorks avvia una nuova EC2 istanza e configura i log. CloudWatch Quando è pronto, lo stato dell'istanza diventa online.

Fase 6: visualizzazione dei log

Dovresti vedere il gruppo di log e il flusso di log appena creati nella CloudWatch console dopo che l'agente è stato in esecuzione per alcuni istanti.

Per ulteriori informazioni, consulta Visualizzazione dati di log inviati ad CloudWatch Logs.