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.

Diagramma che mostra la raccolta Syslog.

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

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

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. 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 nella port 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.