Come posso risolvere gli errori di timeout del worker del documento dell'Agente SSM?
Desidero risolvere gli errori "document process failed unexpectedly: document worker timed out" di AWS Systems Manager.
Breve descrizione
I comandi di Systems Manager nelle istanze Amazon Elastic Compute Cloud (Amazon EC2) di destinazione potrebbero non riuscire quando utilizzi le seguenti funzionalità di AWS Systems Manager:
- Esegui comando
- Associazione
- Automazione
- Gestione sessione
Messaggi di errore simili al seguente esempio indicano che un comando di Systems Manager non è riuscito:
"document process failed unexpectedly: document worker timed out; check 12345678-abcd-1234-efgh-123456789012 log for crash reason."
Nota: nel messaggio di errore di esempio precedente, il valore segnaposto 12345678-abcd-1234-efgh-123456789012 rappresenta l'ID effettivo di ssm-document-worker or ssm-session-worker.
Per ovviare all'errore, risolvi i seguenti problemi:
- Risorse insufficienti
- Memoria insufficiente
- Spazio su disco insufficiente nelle istanze
- Troppi file aperti
Risoluzione
Prerequisito: aggiorna l'Agente SSM alla versione più recente.
Nota: Puoi sottoscrivere amazon-ssm-agent/RELEASE NOTES sul sito web GitHub per ricevere notifiche sugli aggiornamenti dell'Agente SSM.
Per identificare il problema che ha causato l'errore, visualizza i log dell'Agente SSM. Quindi completa i passaggi di risoluzione seguendo le sezioni corrispondenti al problema identificato.
Risolvi i problemi causati da risorse insufficienti
Una sessione con un'istanza di destinazione potrebbe bloccarsi quando la sessione presenta limitazioni delle risorse, ad esempio quando l'istanza supera la memoria o lo spazio su disco disponibile. Le limitazioni delle risorse impediscono all'Agente SSM di funzionare correttamente. Per risolvere il problema, verifica che le istanze dispongano di memoria e spazio su disco sufficienti per gestire il carico di lavoro in esecuzione nelle istanze di destinazione.
Risolvi i problemi causati da memoria insufficiente
Se i processi dell'istanza utilizzano tutta la memoria disponibile e un programma o un sistema operativo non è in grado di allocare spazio, l'istanza non può caricare altri programmi. Quindi i processi smettono di rispondere e il sistema operativo termina i processi a bassa priorità.
Per risolvere il problema, consulta Risoluzione di problemi relativi a un'istanza Amazon EC2 irraggiungibile. Per gli errori dovuti a memoria insufficiente in Linux, consulta Out of memory: kill process.
Risolvi i problemi causati da spazio su disco insufficiente nell'istanza
Nelle istanze Linux si verificano errori causati da spazio su disco insufficiente quando tenti di scrivere dati o salvare file ma l'istanza non dispone di spazio di archiviazione disponibile. Per risolvere il problema, intraprendi le seguenti azioni:
- Identifica i file che utilizzano uno spazio su disco significativo nella partizione.
- Elimina i file non necessari o sposta i dati per liberare spazio nella partizione.
- Verifica che le directory di lavoro abbiano spazio sufficiente, comprese le cartelle di orchestrazione di Systems Manager in /var/lib/amazon/ssm.
- Aumenta le dimensioni del volume. Per istruzioni, consulta Come posso aumentare le dimensioni del volume EBS se ricevo un errore che indica che lo spazio nel file system è esaurito?
Risolvi i problemi causati da troppi file aperti
Quando le istanze Linux arrestano l'elaborazione di Esegui comando in Systems Manager perché i processi del worker dell'Agente SSM hanno esito negativo, ricevi un errore "too many open files". Quando l'istanza apre troppi file, l'Agente SSM non può avviare i processori dei comandi e segnala questo errore nei suoi log. L'errore si verifica nelle seguenti situazioni:
- Il processo dell'Agente SSM ha raggiunto il numero massimo di file aperti consentito per l'account utente del sistema operativo.
- Il numero totale di file aperti nel sistema ha raggiunto il limite massimo di file aperti a livello di sistema.
- Il sistema ha raggiunto il limite di controllo inotify del kernel, che monitora le modifiche al file system.
Per risolvere il problema, completa i seguenti passaggi:
-
Identifica il PID del processo dell'Agente SSM:
sudo ps -C amazon-ssm-agent -o pid=Nota: per i comandi nei passaggi seguenti, sostituisci PID con l'ID del processo restituito dal comando.
-
Controlla i limiti dei descrittori di file per il processo dell'Agente SSM. Il primo numero rappresenta il limite flessibile (il limite applicato attualmente), mentre il secondo rappresenta il limite fisso (il valore massimo che il limite flessibile può raggiungere):
sudo cat /proc/PID/limits |grep "Max open files" -
Controlla il numero totale di file aperti per il processo dell'Agente SSM:
sudo lsof -p PID |wc -l -
Confronta il numero totale di file aperti (ottenuto nel passaggio 3) con il limite fisso (ottenuto nel passaggio 2). Se il numero totale di file aperti è prossimo al limite fisso, il sistema non può aprire nuovi file.
Per risolvere il problema, aumenta il valore del limite fisso nel file di configurazione del servizio Agente SSM, quindi riavvia l'Agente SSM.
Quando aumenti il limite fisso, considera i requisiti del carico di lavoro dell'istanza, tra cui il numero di utenti concorrenti, le connessioni di rete e le operazioni sui file. Le distribuzioni di Linux stabiliscono limiti fissi predefiniti per prevenire l'esaurimento accidentale delle risorse.
Per aggiornare il limite fisso, completa le seguenti azioni in base al sistema operativo:
Per Amazon Linux 1, Ubuntu 14.04 e Ubuntu 16.04 con pacchetto .deb, esegui questo comando:
echo "limit nofile example-hard-limit" >> /etc/init/amazon-ssm-agent.override
Per Amazon Linux 2, RHEL 7.x e RHEL 8.x/, esegui questo comando:
sudo systemctl edit amazon-ssm-agent
Quindi, quando l'editor si apre, aggiungi questo codice al file:
[Service] LimitNOFILE=example-hard-limit
Per Ubuntu 22.04 LTS, 20.10 STR & 20.04 e 18.04, esegui questo comando:
sudo systemctl edit snap.amazon-ssm-agent.amazon-ssm-agent
Quindi, quando l'editor si apre, aggiungi questo codice al file:
[Service] LimitNOFILE=example-hard-limit
Nota: nei comandi precedenti, sostituisci example-hard-limit con il tuo valore aggiornato.
Assicurati di sottoporre a stress test il nuovo limite fisso. Monitora il nuovo limite fisso e modificalo se causa altri problemi.
Controlla i log del worker
Per identificare la causa principale degli errori di timeout del worker del documento, esamina i log dell'Agente SSM e i log a livello di sistema operativo dell'istanza.
Controlla nei log a livello di sistema operativo se sono presenti messaggi di errore, segnalazioni di crash o problemi del kernel relativi all'Agente SSM nelle seguenti posizioni in base al sistema operativo:
- Per Windows:
C:\Windows\System32\winevt\Logs - Per Ubuntu e Debian:
/var/log/syslog - Per Amazon Linux, CentOS e RHEL:
/var/log/messages - Per Suse:
/var/log/messages
Se hai necessità di abilitare la registrazione di debug per una risoluzione più dettagliata di un problema, consulta Consentire la registrazione di debug dell'Agente SSM.
Nota: la registrazione di debug dell'Agente SSM genera grandi quantità di dati di log che potrebbero influire sullo spazio di archiviazione del sistema. Una volta completata la risoluzione del problema, è consigliabile disattivare la registrazione di debug.
Informazioni correlate
- Argomenti
- Management & Governance
- Lingua
- Italiano
