Controlla i log di diagnostica a livello di orchestratore per alloydbctl e Ansible per regolare la verbosità per la risoluzione dei problemi o per silenziare l'output per gli script automatici. Questi log sono essenziali per diagnosticare i problemi durante il bootstrap, la gestione o il funzionamento generale del cluster.
Raccogli ed esegui il dump delle informazioni di debug
Puoi raccogliere ed eseguire il dump delle informazioni di debug utilizzando un ruolo Ansible o lo strumento di dump di debug.
Raccogli informazioni di debug utilizzando Ansible
Il ruolo Ansible google.alloydbomni_orchestrator.dump_debug automatizza il processo di raccolta in tutti i nodi AlloyDB Omni definiti nella specifica del deployment. Raccoglie e consolida le seguenti informazioni:
- Stato systemd: stato attuale di tutti i servizi AlloyDB Omni.
- Log di Journal: log di sistema che consentono l'applicazione di filtri basati sul tempo.
Genera il dump delle informazioni di debug
Crea un playbook Ansible (ad esempio
dump_debug.yml) sul nodo di controllo. Aggiungi quanto segue al playbook:- name: Collect AlloyDB Omni Debug Dump hosts: all become: true gather_facts: true vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: PATH_TO_PRIVATE_SSH_KEY # Optional: Customize dump behavior dump_debug_binary_path: "BINARY_PATH" dump_debug_collection_type: "COLLECTION_TYPE" dump_debug_local_dest: ""ANSIBLE_DESTINATION"" dump_debug_tag: ""TAG_NAME"" dump_debug_journal_spec: "JOURNAL_SPEC" roles: - role: google.alloydbomni_orchestrator.dump_debugSostituisci quanto segue:
ANSIBLE_USER: l'utente con cui Ansible esegue l'accesso.PATH_TO_PRIVATE_SSH_KEY: il percorso del file della chiave privata SSH.BINARY_PATH: (Facoltativo) Percorso dei file binari sui nodi remoti. Il valore predefinito è/usr/local/bin.COLLECTION_TYPE: (Facoltativo) Il tipo di raccolta (status,logs,configoall). Il valore predefinito èall.ANSIBLE_DESTINATION: (Facoltativo) Destinazione sul nodo di controllo Ansible. Il valore predefinito è/tmp/debug_dump.TAG_NAME: (Facoltativo) Identificatore personalizzato. Se il tag esiste, vengono aggiunti suffissi (ad esempio_1). Il valore predefinito è il timestamp di sistema.JOURNAL_SPEC: (Facoltativo) Supporta i flagjournalctl(ad esempio"--since '1 hour ago'"). Il valore predefinito è-n 1000.
Esegui il playbook utilizzando il comando
ansible-playbook, specificandodeployment_spec.yamlcome inventario.# standard execution ansible-playbook dump_debug.yml -i PATH_TO_DEPLOYMENT_SPECIn alternativa, esegui il playbook con un tag personalizzato e una specifica del journal di tua scelta.
ansible-playbook dump_debug.yml -i PATH_TO_DEPLOYMENT_SPEC \ -e 'dump_debug_tag=TAG_NAME' \ -e 'dump_debug_journal_spec: "JOURNAL_SPEC"'Sostituisci quanto segue:
PATH_TO_DEPLOYMENT_SPEC: il percorso del file YAML della specifica del deployment.TAG_NAME: (Facoltativo) Identificatore personalizzato. Se il tag esiste, vengono aggiunti suffissi (ad esempio_1). Il valore predefinito è il timestamp di sistema.JOURNAL_SPEC: (Facoltativo) Supporta i flagjournalctl(ad esempio"--since '1 hour ago'"). Il valore predefinito è-n 1000.
Raccogli informazioni di debug utilizzando lo strumento di dump di debug
Puoi utilizzare lo strumento alloydbomni_dump per generare un file di dump. Questo strumento è incluso nel pacchetto dell'orchestratore di AlloyDB Omni.
Genera un file di dump
Esegui lo script seguente sui nodi del cluster AlloyDB Omni di cui vuoi eseguire il debug.
sudo /usr/local/bin/alloydbomni_dump \
-k SSH_KEY \
-u USER \
-d PATH_TO_DEPLOYMENT_SPEC \
-o OUTPUT_DIRECTORY \
[options]Sostituisci quanto segue:
SSH_KEY: il percorso della chiave privata SSH dell'utente.USER: il nome utente per l'accesso SSH ai nodi del cluster.PATH_TO_DEPLOYMENT_SPEC: il percorso del file YAML della specifica del deployment.OUTPUT_DIRECTORY: la directory locale in cui salvare il file di dump generato.
Comandi supportati
-k: percorso obbligatorio della chiave privata SSH.-u: nome utente dell'account di servizio richiesto.-d: percorso obbligatorio del file YAML della specifica del deployment.-o: directory di output obbligatoria per il file tar finale.-t: identificatore facoltativo del tag personalizzato.-c: tipo di raccolta facoltativo (status,logs,config,all).-s: (facoltativo) specifica delle dimensioni e del tempo del journal (ad esempio,-s "--since \"30 minutes ago\"").
Esempio di esecuzione
alloydbomni_dump -k /home/user/ssh-key \
-u sa_12345 -d /tmp/deployment_spec.yaml \
-o /tmp/debug_dump -s "--since \"2 hours ago\""Ottieni i log di diagnostica dell'orchestratore
Puoi ottenere i log di diagnostica generati dagli orchestratori alloydbctl e Ansible. In questo modo puoi aumentare il livello di dettaglio per la risoluzione dei problemi o silenziare l'output per gli script automatici. Il logging è essenziale per diagnosticare i problemi durante il bootstrap, la gestione o il funzionamento generale dei cluster.
Ottieni i log di debug di alloydbctl
Lo strumento alloydbctl supporta gli argomenti della riga di comando per controllare il livello di log e la destinazione dell'output. Il livello di log determina la gravità dei messaggi da registrare, mentre la destinazione del log specifica dove vengono scritti i log.
alloydbctl [command] ... [{-l|--log_level} <LEVEL>] [{-f|--log_file} <FILE>]Livelli di log (-l / --log_level)
Puoi utilizzare i seguenti livelli di log. I livelli di log non fanno distinzione tra maiuscole e minuscole (ad esempio, DEBUG e debug vengono trattati allo stesso modo).
- NOTSET (valore predefinito): nessun logging.
- DEBUG:registra informazioni dettagliate, in genere di interesse solo durante la diagnosi dei problemi. Registra le richieste e le risposte RPC.
- INFO: conferma che tutto funziona come previsto.
- WARNING: indica che si è verificato un evento imprevisto (ad esempio, "spazio su disco insufficiente"), ma il software continua a funzionare.
- ERRORE: a causa di un problema più grave, il software non è in grado di eseguire alcune funzioni.
- CRITICAL: un errore grave, che indica che il programma stesso potrebbe non essere in grado di continuare l'esecuzione.
Destinazione log (-f / --log_file)
Puoi selezionare le seguenti destinazioni dei log:
- Percorso file: se fornito (ad esempio
-f /tmp/alloydbctl.log), i log vengono scritti nel file specificato. - Output standard: se non viene fornito, i log vengono stampati nella console (stdout).
Esempio
L'esempio seguente utilizza alloydbctl per applicare le specifiche di deployment e delle risorse, attivando al contempo il logging a livello di DEBUG. I log, incluse le informazioni dettagliate e le richieste/risposte RPC, vengono scritti nel file /tmp/alloydbctl_debug.log anziché nell'output standard.
alloydbctl apply -d deployment_spec.yaml -r resource_spec.yaml -l DEBUG -f /tmp/alloydbctl_debug.logOttieni i log di debug di Ansible
Ansible Orchestrator genera log dalle attività e dai moduli Ansible.
Puoi passare argomenti della riga di comando Ansible standard per modificare il comportamento di logging sia per le attività che per i moduli. Per informazioni più dettagliate, consulta la documentazione di ansible-playbook.
Livello di log per i moduli Ansible
Per impostazione predefinita, i log vengono inviati alla console in cui è in esecuzione il playbook.
Per impostare l'impostazione di configurazione log_level, esegui questo comando:
ansible-playbook -i inventory.yaml bootstrap.yaml \
-e resource_spec=resource_spec.yaml \
-e log_level=DEBUG
Puoi anche utilizzare i seguenti flag di livello di dettaglio standard di Ansible per controllare il livello di dettaglio dell'output:
-v:livello di dettaglio di base (log di livello INFO).-vvo superiore: Preferenze di lettura aumentate (log di livello DEBUG).
Ad esempio:
ansible-playbook -i inventory.yaml bootstrap.yaml \
-e resource_spec=resource_spec.yaml \
-vv
Percorso di log per i moduli Ansible
Per impostazione predefinita, i log non vengono acquisiti e il livello di log deve essere configurato per acquisire i log nel file di log.
Per salvare l'output di Ansible in un file di log, esegui questo comando per impostare la configurazione di log_path:
ansible-playbook -i inventory.yaml bootstrap.yaml \
-e resource_spec=resource_spec.yaml \
-e log_file=/tmp/ansible-module.log
Reimposta le istanze systemd con errori
Se il dump di debug mostra istanze di servizio obsolete o non riuscite, cancellale eseguendo questo comando sul nodo del cluster interessato:
sudo systemctl reset-failedPer reimpostare un servizio systemd specifico, specifica il nome dell'istanza del servizio:
sudo systemctl reset-failed INSTANCE_NAMESostituisci INSTANCE_NAME con il nome dell'istanza del servizio systemd, ad esempio alloydbomni18@abc.service.