I componenti di NSX-T Data Center scrivono nei file di registro nella directory /var/log. Nelle appliance NSX-T e negli host KVM, i messaggi syslog NSX sono conformi al protocollo RFC 5424. Sugli host ESXi, i messaggi syslog sono conformi al protocollo RFC 3164.

Visualizzazione dei registri

Nelle appliance NSX-T i messaggi syslog si trovano nel percorso /var/log/syslog. Negli host KVM i messaggi syslog si trovano nel percorso /var/log/vmware/nsx-syslog.

Nelle appliance NSX-T è possibile eseguire il seguente comando della CLI di NSX-T per visualizzare i registri:
get log-file <auth.log | controller | controller-error | http.log | kern.log | manager.log | node-mgmt.log | syslog> [follow]
I file di registro sono:
Nome Descrizione
auth.log Registro autorizzazioni
controller Registro controller
controller-error Registro errori del controller
http.log Registro servizi HTTP
kern.log Registro del kernel
manager.log Registro del servizio di gestione
node-mgmt.log Registro di gestione nodi
nsx-audit-write.log Registro di scrittura controllo NSX
nsx-audit.log Registro di controllo NSX
syslog Registro di sistema

Negli hypervisor è possibile utilizzare comandi Linux quali tac, tail, grep e more per visualizzare i registro.

Per identificare l'origine del messaggio, in ogni messaggio syslog sono contenute informazioni relative al componente (comp) e al sottocomponente (subcomp).

NSX-T Data Center produce registri con la funzionalità local6, che ha il valore numerico 22.

Il registro di controllo fa parte di syslog. Un messaggio del registro di controllo può essere identificato dalla stringa audit="true" nel campo structured-data. È possibile configurare un server dei registri esterno per ricevere i messaggi del registro. È anche possibile accedere ai registri di controllo utilizzando l'API /api/v1/administration/audit-logs. Il file nsx-audit.log contiene messaggi syslog con audit="true" nel campo structured-data. Il file nsx-audit-write.log contiene messaggi syslog relativi a audit="true" e update="true" nel campo structured-data.

Ogni messaggio del registro di controllo e syslog contiene una data e un'ora generate da un server NTP, se configurato, o dall'orologio del sistema. Esempio di messaggio del registro di controllo:
<182>1 2020-05-05T00:29:02.900Z nsx-manager1 NSX 14389 - [nsx@6876 audit="true" comp="nsx-manager" level="INFO" reqId="fe75651d-c3e7-4680-8753-9ae9d92d7f0c" subcomp="policy" username="admin"] UserName="admin", ModuleName="AAA", Operation="GetCurrentUserInfo", Operation status="success"
Una chiamata API può provenire da NSX Manager, da un client dell'API dei criteri o da un nodo NSX. Tutte le chiamate API sono soggette ad autenticazione e autorizzazione e genereranno registri di controllo. Questa registrazione è abilitata per impostazione predefinita e non può essere disabilitata. Un registro di controllo associato a una chiamata API contiene le seguenti informazioni:
  • Un parametro dell'ID entità entId per identificare l'oggetto dell'API.
  • Un parametro dell'ID della richiesta req-id per identificare una chiamata API specifica.
  • Un parametro ID della richiesta esterna ereqId se la chiamata API contiene l'intestazione X-NSX-EREQID:<string>.
  • Un parametro dell'utente esterno euser se la chiamata API contiene l'intestazione X-NSX-EUSER:<string>.
Un messaggio del registro di controllo da una chiamata API di gestione o criterio avrà i campi aggiuntivi indicati di seguito. Tenere presente che i registri di audit NAPI (Node API) e CLI non includeranno questi campi.
  • Un flag update che mostra se l'operazione API è un'operazione di lettura (GET) o di scrittura (PUT/POST/DELETE/...).
  • Un campo operation name che mostra il nome dell'operazione API.
  • Un campo operation status che mostra se l'operazione dell'API è riuscita o meno.
  • Un campo new value che mostra tutti i valori dei parametri della richiesta API.

NSX-T non prevede il concetto di modalità privilegiata. Le chiamate API da tutte le origini e gli utenti vengono controllate.

Esempio di messaggi syslog di login e logout che mostrano un login riuscito, un login non riuscito e login da 2 dispositivi diversi (osservare gli indirizzi IP differenti):
2020-07-07T16:33:20.339Z svc.nsxmanager NSX 1513 SYSTEM [nsx@6876 audit="true" comp="nsx-manager" level="INFO" subcomp="http"] UserName="[email protected]", ModuleName="ACCESS_CONTROL", Operation="LOGIN", Operation status="success"

2020-07-07T16:33:58.779Z svc.nsxmanager NSX 1513 SYSTEM [nsx@6876 audit="true" comp="nsx-manager" level="INFO" subcomp="http"] UserName="admin", ModuleName="ACCESS_CONTROL", Operation="LOGOUT", Operation status="success"

2020-07-07T16:50:21.301Z svc.nsxmanager NSX 1513 SYSTEM [nsx@6876 audit="true" comp="nsx-manager" level="INFO" subcomp="http"] UserName="[email protected]", ModuleName="ACCESS_CONTROL", Operation="LOGIN", Operation status="success"

2020-07-07T16:43:20.339Z svc.nsxmanager NSX 1513 SYSTEM [nsx@6876 audit="true" comp="nsx-manager" level="INFO" subcomp="http"] UserName="[email protected]", ModuleName="ACCESS_CONTROL", Operation="LOGIN", Operation status="failure"
Esempio di messaggio syslog di una chiamata API di criterio:
<182>1 2020-07-06T18:09:14.210Z svc.nsxmanager NSX 2326 FABRIC [nsx@6876 audit="true" comp="nsx-manager" entId="68d5a9d0-4691-4c9c-94ed-64fd1c96150f" level="INFO" reqId="4c2335aa-c973-4f74-983f-331a4f7041ca" subcomp="manager" update="true" username="admin"] UserName="admin", ModuleName="TransportZone", Operation="CreateTransportZone", Operation status="success", New value=[{"transport_type":"OVERLAY","host_switch_name":"nsxvswitch","host_switch_mode":"STANDARD","nested_nsx":false,"is_default":false,"display_name":"1-transportzone-1307","_protection":"UNKNOWN"}]
Esempio di messaggi syslog di accesso alla CLI:
2020-07-07T16:36:41.783Z svc.nsxmanager NSX 21018 - [nsx@6876 comp="nsx-manager" subcomp="cli" username="admin" level="INFO"] NSX CLI started (Manager, Policy, Controller) for user: admin
2020-07-07T16:36:53.469Z svc.nsxmanager NSX 21018 - [nsx@6876 comp="nsx-manager" subcomp="cli" username="admin" level="INFO"] NSX CLI stopped for user: admin
Esempio di messaggio syslog generato quando un utente esegue un comando della CLI (in questo esempio, set user admin password-expiration 100):
<182>1 2020-07-22T20:51:49.017Z manager2 NSX 1864 - [nsx@6876 comp="nsx-manager" subcomp="cli" username="admin" level="INFO" audit="true"] CMD: set user admin password-expiration 100 (duration: 2.185s), Operation status: CMD_EXECUTED
Esempio di messaggio syslog di una chiamata NAPI:
<182>1 2020-07-21T21:01:38.803Z manager2 NSX 4690 - [nsx@6876 comp="nsx-manager" subcomp="node-mgmt" username="admin" level="INFO" audit="true"] admin 'GET /api/v1/node/services/syslog/exporters' 200 731 "" "PostmanRuntime/7.26.1" 0.004588
Esempio di messaggio syslog di un comando della CLI:
<182>1 2020-07-21T20:54:40.018Z manager2 NSX 16915 - [nsx@6876 comp="nsx-manager" subcomp="cli" username="admin" level="INFO" audit="true"] CMD: set logging-server 1.1.1.1 proto udp level info (duration: 4.356s), Operation status: CMD_EXECUTED

RFC 5424 e RFC 3164 definiscono i seguenti livelli di gravità:

Livello di gravità Descrizione
0 Emergenza: il sistema non è utilizzabile
1 Avviso: è necessario agire immediatamente
2 Critico: condizioni critiche
3 Errore: condizioni di errore
4 Avvertenza: condizioni di avvertenza
5 Notifica: condizione normale ma significativa
6 Informativo: messaggi informativi
7 Debug: messaggi a livello di debug

Tutti i registri con gravità di tipo emergenza, avviso, critico o errore contengono un codice di errore univoco nella parte di dati strutturata del messaggio del registro. Il codice di errore è costituito da una stringa e da un numero decimale. La stringa rappresenta un modulo specifico.

Accesso a un file di registro o a un server di registro remoto non riuscito

Se NSX-T non riesce ad accedere o a scrivere messaggi in un file di registro, viene generato un allarme. Gli errori possibili sono:

  • File di registro locale mancante.
  • L'impostazione relativa alla proprietà o all'autorizzazione di un file di registro locale impedisce a NSX-T di scrivere nel file.
  • NSX-T non è in grado di inviare messaggi di registro a un server di registrazione remoto di terze parti. Si tenga presente che non verrà generato alcun avviso se NSX-T non riesce a inviare registri all'agente di Log Insight.

L'allarme può essere risolto tramite il framework degli allarmi.

Formati dei messaggi del registro

Per ulteriori informazioni sul protocollo RFC 5424, vedere https://tools.ietf.org/html/rfc5424. Per ulteriori informazioni sul protocollo RFC 3164, vedere https://tools.ietf.org/html/rfc3164.

Il protocollo RFC 5424 definisce il formato seguente per i messaggi del registro:

<facility * 8 + severity> version UTC-TZ hostname APP-NAME procid MSGID [structured-data] msg
Esempio di messaggio del registro:
<187>1 2016-03-15T22:53:00.114Z nsx-manager NSX - SYSTEM [nsx@6876 comp="nsx-manager" errorCode="MP4039" subcomp="manager"] Connection verification failed for broker '10.160.108.196'. Marking broker unhealthy.

Codici di errore

Per un elenco dei codici di errore, vedere l'articolo 71077 della Knowledge Base Codici di errore di NSX-T Data Center 2.x.