Raccogliere le origini dati Syslog con l'agente di Log Analytics
Attenzione
Questo articolo fa riferimento a CentOS, una distribuzione di Linux che ha raggiunto lo stato di fine del servizio (EOL). Valutare le proprie esigenze e pianificare di conseguenza. Per ulteriori informazioni, consultare la Guida alla fine del ciclo di vita di CentOS.
Syslog è un protocollo di registrazione di eventi comunemente usato in Linux. Le applicazioni inviano messaggi che possono essere archiviati nel computer locale o recapitati a un agente di raccolta di Syslog. Quando è installato, l'agente di Log Analytics per Linux configura il daemon Syslog locale per inoltrare i messaggi all'agente. Quest'ultimo invia quindi i messaggi a Monitoraggio di Azure, dove viene creato un record corrispondente.
Importante
L'agente di Log Analytics legacy è stato deprecato il 31 agosto 2024. Microsoft non fornirà più alcun supporto per l'agente di Log Analytics. Se si usa l'agente di Log Analytics per inserire dati in Monitoraggio di Azure, eseguire la migrazione adesso al nuovo agente di Monitoraggio di Azure.
Nota
Monitoraggio di Azure supporta la raccolta di messaggi inviati da rsyslog o syslog-ng, dove rsyslog rappresenta il daemon predefinito. Il daemon SysLog predefinito nella versione 5 di Red Hat Enterprise Linux, CentOS, e nella versione Oracle Linux (sysklog) non è supportato per la raccolta degli eventi SysLog. Per raccogliere i dati di SysLog da questa versione delle distribuzioni è necessario installare e configurare il daemon rsyslog in modo da sostituire sysklog.
Con l'agente di raccolta Syslog sono supportate le funzionalità seguenti:
- kern
- utente
- daemon
- aut
- syslog
- lpr
- news
- uucp
- cron
- authpriv
- ftp
- local0-local7
Per qualsiasi altra struttura, configurare un'origine dati di log personalizzati in Monitoraggio di Azure.
Configurare Syslog
L'agente di Log Analytics per Linux raccoglie solo gli eventi con le funzionalità e i livelli di gravità specificati nella configurazione. È possibile configurare Syslog tramite il portale di Azure o mediante la gestione dei file di configurazione negli agenti Linux.
Configurare Syslog nel portale di Azure
Configurare Syslog nel menu Configurazione agente per l'area di lavoro Log Analytics. Questa configurazione viene distribuita al file di configurazione su ogni agente Linux.
È possibile aggiungere una nuova struttura selezionando Aggiungi struttura. Per ogni funzionalità vengono raccolti solo i messaggi con i livelli di gravità selezionati. Selezionare i livelli di gravità relativi alla struttura per la quale raccogliere i dati. Non è possibile inserire altri criteri per filtrare i messaggi.
Per impostazione predefinita, viene eseguito automaticamente il push di tutte le modifiche di configurazione in tutti gli agenti. Per configurare Syslog manualmente in ogni agente di Linux, deselezionare la casella di controllo Applica la configurazione seguente alle macchine virtuali.
Configurare Syslog sull'agente Linux
Durante l'installazione dell'agente di Log Analytics in un client Linux viene installato un file di configurazione di Syslog predefinito che definisce la struttura e il livello di gravità dei messaggi raccolti. È possibile modificare questo file per cambiare la configurazione. Il file di configurazione è diverso a seconda del daemon Syslog installato nel client.
Nota
Se si modifica la configurazione di SysLog, è necessario riavviare il daemon SysLog per rendere effettive le modifiche.
rsyslog
Il file di configurazione per rsyslog si trova in /etc/rsyslog.d/95-omsagent.conf
. Il contenuto predefinito è mostrato nell'esempio seguente. In questo esempio si raccolgono i messaggi di Syslog inviati dall'agente locale per tutte le funzionalità con livello di gravità avviso o superiore.
kern.warning @127.0.0.1:25224
user.warning @127.0.0.1:25224
daemon.warning @127.0.0.1:25224
auth.warning @127.0.0.1:25224
syslog.warning @127.0.0.1:25224
uucp.warning @127.0.0.1:25224
authpriv.warning @127.0.0.1:25224
ftp.warning @127.0.0.1:25224
cron.warning @127.0.0.1:25224
local0.warning @127.0.0.1:25224
local1.warning @127.0.0.1:25224
local2.warning @127.0.0.1:25224
local3.warning @127.0.0.1:25224
local4.warning @127.0.0.1:25224
local5.warning @127.0.0.1:25224
local6.warning @127.0.0.1:25224
local7.warning @127.0.0.1:25224
È possibile rimuovere una funzionalità eliminando la sezione corrispondente del file di configurazione. È possibile limitare i livelli di gravità che vengono raccolti per una particolare funzionalità modificando la voce relativa a tale funzionalità. Ad esempio, per limitare la struttura dell'utente ai messaggi con livello di gravità errore o superiore, modificare la riga del file di configurazione come nel seguente esempio:
user.error @127.0.0.1:25224
syslog-ng
Il file di configurazione per syslog-ng si trova in /etc/syslog-ng/syslog-ng.conf
. Il contenuto predefinito è mostrato in questo esempio. Questo esempio raccoglie i messaggi Syslog inviati dall'agente locale per tutte le funzionalità e tutti i livelli di gravità.
#
# Warnings (except iptables) in one file:
#
destination warn { file("/var/log/warn" fsync(yes)); };
log { source(src); filter(f_warn); destination(warn); };
#OMS_Destination
destination d_oms { udp("127.0.0.1" port(25224)); };
#OMS_facility = auth
filter f_auth_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(auth); };
log { source(src); filter(f_auth_oms); destination(d_oms); };
#OMS_facility = authpriv
filter f_authpriv_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(authpriv); };
log { source(src); filter(f_authpriv_oms); destination(d_oms); };
#OMS_facility = cron
filter f_cron_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(cron); };
log { source(src); filter(f_cron_oms); destination(d_oms); };
#OMS_facility = daemon
filter f_daemon_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(daemon); };
log { source(src); filter(f_daemon_oms); destination(d_oms); };
#OMS_facility = kern
filter f_kern_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(kern); };
log { source(src); filter(f_kern_oms); destination(d_oms); };
#OMS_facility = local0
filter f_local0_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local0); };
log { source(src); filter(f_local0_oms); destination(d_oms); };
#OMS_facility = local1
filter f_local1_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(local1); };
log { source(src); filter(f_local1_oms); destination(d_oms); };
#OMS_facility = mail
filter f_mail_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(mail); };
log { source(src); filter(f_mail_oms); destination(d_oms); };
#OMS_facility = syslog
filter f_syslog_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(syslog); };
log { source(src); filter(f_syslog_oms); destination(d_oms); };
#OMS_facility = user
filter f_user_oms { level(alert,crit,debug,emerg,err,info,notice,warning) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
È possibile rimuovere una funzionalità eliminando la sezione corrispondente del file di configurazione. È possibile limitare i livelli di gravità che vengono raccolti per una particolare funzionalità rimuovendoli dall'elenco. Per limitare la struttura dell'utente solo agli avvisi per i messaggi critici, modificare quella sezione del file di configurazione come illustrato nell'esempio seguente:
#OMS_facility = user
filter f_user_oms { level(alert,crit) and facility(user); };
log { source(src); filter(f_user_oms); destination(d_oms); };
Raccogliere dati da altre porte Syslog
L'agente di Log Analytics rimane in ascolto dei messaggi Syslog nel client locale sulla porta 25224. Quando l'agente viene installato, viene applicata una configurazione di Syslog predefinita, disponibile al seguente percorso:
- Rsyslog:
/etc/rsyslog.d/95-omsagent.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
È possibile modificare il numero di porta creando due file di configurazione: un file config FluentD e un file rsyslog-or-syslog-ng a seconda del daemon Syslog che è stato installato.
Il file config FluentD deve essere un nuovo file in
/etc/opt/microsoft/omsagent/conf/omsagent.d
. Sostituire il valore della voceport
con il numero di porta personalizzato.<source> type syslog port %SYSLOG_PORT% bind 127.0.0.1 protocol_type udp tag oms.syslog </source> <filter oms.syslog.**> type filter_syslog
Per rsyslog, creare un nuovo file di configurazione in:
/etc/rsyslog.d/
. Sostituire il valore%SYSLOG_PORT%
con il numero di porta personalizzato.Nota
Se questo valore viene modificato nel file di configurazione
95-omsagent.conf
, verrà sovrascritto quando l'agente applicherà una configurazione predefinita.# OMS Syslog collection for workspace %WORKSPACE_ID% kern.warning @127.0.0.1:%SYSLOG_PORT% user.warning @127.0.0.1:%SYSLOG_PORT% daemon.warning @127.0.0.1:%SYSLOG_PORT% auth.warning @127.0.0.1:%SYSLOG_PORT%
Modificare la configurazione syslog-ng copiando la configurazione di esempio illustrata più avanti e aggiungendo le impostazioni modificate personalizzate alla fine del file di configurazione
syslog-ng.conf
situato in/etc/syslog-ng/
. Non usare l'etichetta predefinita%WORKSPACE_ID%_oms
o%WORKSPACE_ID_OMS
. Definire un'etichetta personalizzata, per distinguere le modifiche.Nota
Se questi valori vengono modificati nel file di configurazione, saranno sovrascritti quando l'agente applicherà una configurazione predefinita.
filter f_custom_filter { level(warning) and facility(auth; }; destination d_custom_dest { udp("127.0.0.1" port(%SYSLOG_PORT%)); }; log { source(s_src); filter(f_custom_filter); destination(d_custom_dest); };
Dopo aver completato le modifiche riavviare Syslog e il servizio agente di Log Analytics per verificare che le modifiche alla configurazione abbiano effetto.
Proprietà dei record Syslog
I record Syslog sono di tipo Syslog e hanno le proprietà mostrate nella tabella seguente.
Proprietà | Descrizione |
---|---|
Computer | Computer da cui è stato raccolto l'evento. |
Struttura | Parte del sistema che ha generato il messaggio. |
HostIP | Indirizzo IP del sistema che ha inviato il messaggio. |
HostName | Nome del sistema che ha inviato il messaggio. |
SeverityLevel | Livello di sicurezza dell'evento. |
SyslogMessage | Testo del messaggio. |
ProcessID | ID del processo che ha generato il messaggio. |
EventTime | Data e ora in cui è stato generato l'evento. |
Query di log con record Syslog
La tabella seguente mostra alcuni esempi di query di log che recuperano i record Syslog.
Query | Descrizione |
---|---|
Syslog | Tutti i SysLog |
Syslog | where SeverityLevel == "error" | Tutti i record Syslog con livello di gravità errore |
Syslog | summarize AggregatedValue = count() by Computer | Numero di record Syslog per computer |
Syslog | summarize AggregatedValue = count() by Facility | Numero di record Syslog per struttura |
Passaggi successivi
- Altre informazioni sulle query di log per analizzare i dati raccolti dalle origini dati e dalle soluzioni.
- Usare i campi personalizzati per analizzare i dati dei record Syslog nei singoli campi.
- Configurare agenti Linux per raccogliere altri tipi di dati.