Raccogliere origini dati Syslog con l'agente di Log Analytics
Attenzione
Questo articolo fa riferimento a CentOS, una distribuzione Linux vicina allo stato end of life (EOL). Prendere in considerazione l'uso e la pianificazione di conseguenza. Per altre informazioni, vedere le linee guida per la fine della 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. L'agente invia quindi i messaggi a Monitoraggio di Azure in cui viene creato un record corrispondente.
Importante
L'agentedi Log Analytics legacy sarà deprecato entro agosto 2024. Dopo questa data, Microsoft non fornirà più supporto per l'agente di Log Analytics. Eseguire la migrazione all'agente di Monitoraggio di Azure prima di agosto 2024 per continuare l'inserimento dei dati.
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 Oracle Linux (sysklog) non è supportato per la raccolta di eventi Syslog. Per raccogliere dati Syslog da questa versione di queste distribuzioni, il daemon rsyslog deve essere installato e configurato per sostituire sysklog.
Con l'agente di raccolta Syslog sono supportate le funzionalità seguenti:
- kern
- utente
- daemon
- auth
- syslog
- lpr
- news
- uucp
- cron
- authpriv
- ftp
- local0-local7
Per qualsiasi altra funzionalità, configurare un'origine dati 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 dal menu di configurazione dell'agente per l'area di lavoro Log Analytics. Questa configurazione viene distribuita al file di configurazione su ogni agente Linux.
È possibile aggiungere una nuova funzionalità selezionando Aggiungi funzionalità. Per ogni funzionalità vengono raccolti solo i messaggi con i livelli di gravità selezionati. Selezionare i livelli di gravità per la struttura specifica da raccogliere. Non è possibile fornire altri criteri per filtrare i messaggi.
Per impostazione predefinita, viene eseguito automaticamente il push di tutte le modifiche di configurazione in tutti gli agenti. Se si vuole configurare Syslog manualmente in ogni agente Linux, deselezionare la casella di controllo Applica la configurazione seguente ai computer personali.
Configurare Syslog sull'agente Linux
Quando l'agente di Log Analytics viene installato in un client Linux, installa un file di configurazione Syslog predefinito che definisce la funzionalità e la 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 è illustrato nell'esempio seguente. Questo esempio raccoglie i messaggi Syslog inviati dall'agente locale per tutte le strutture con un livello di 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 utente ai messaggi con gravità di errore o superiore, è necessario modificare tale riga del file di configurazione nell'esempio seguente:
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 è illustrato in questo esempio. Questo esempio raccoglie i messaggi Syslog inviati dall'agente locale per tutte le strutture 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. Ad esempio, per limitare la struttura dell'utente agli avvisi solo i messaggi critici, è necessario modificare tale 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 è installato, viene applicata una configurazione Syslog predefinita e trovata nel percorso seguente:
- 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 di configurazione fluentD deve essere un nuovo file che si trova in
/etc/opt/microsoft/omsagent/conf/omsagent.d
e sostituire il valore nellaport
voce 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, è necessario creare un nuovo file di configurazione che si trova in
/etc/rsyslog.d/
e 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%
La configurazione syslog-ng deve essere modificata copiando la configurazione di esempio illustrata successivamente e aggiungendo le impostazioni personalizzate modificate alla fine del
syslog-ng.conf
file di configurazione che si trova in/etc/syslog-ng/
. Non usare l'etichetta%WORKSPACE_ID%_oms
predefinita o%WORKSPACE_ID_OMS
. Definire un'etichetta personalizzata per distinguere le modifiche.Nota
Se si modificano i valori predefiniti nel file di configurazione, questi verranno sovrascritti quando l'agente applica 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 assicurarsi che le modifiche alla configurazione siano effettive.
Proprietà dei record Syslog
I record Syslog hanno un tipo di Syslog e hanno le proprietà illustrate 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 | dove SeverityLevel == "error" | Tutti i record Syslog con gravità dell'errore |
Syslog | summarize AggregatedValue = count() by Computer | Conteggio dei 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 campi personalizzati per analizzare i dati dai record Syslog in singoli campi.
- Configurare agenti Linux per raccogliere altri tipi di dati.