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.

Diagramma che mostra la raccolta dei dati di Syslog.

Con l'agente di raccolta Syslog sono supportate le funzionalità seguenti:

  • kern
  • utente
  • mail
  • 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.

Screenshot che mostra la configurazione di Syslog.

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 voce port 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