Condividi tramite


Raccogliere eventi Syslog dal client di macchine virtuali con Monitoraggio di Azure

Syslog è un protocollo di registrazione di eventi comunemente usato in Linux. È possibile usare il daemon Syslog integrato in dispositivi e appliance Linux per raccogliere gli eventi locali dei tipi specificati. Le applicazioni inviano messaggi che possono essere archiviati nel computer locale o recapitati a un agente di raccolta di Syslog. Raccogliere eventi Syslog dalle macchine virtuali usando una regola di raccolta dati (DCR) con un'origine dati Syslog Linux .

Suggerimento

Per raccogliere dati da dispositivi che non consentono l'installazione locale dell'agente di Monitoraggio di Azure, configurare un server d'inoltro dei log basato su Linux dedicato come descritto in Inoltrare i dati syslog a un'area di lavoro Log Analytics con Microsoft Sentinel usando l'agente di Monitoraggio di Azure.

I dettagli sulla creazione di DCR sono disponibili in Raccogliere dati dal client di macchina virtuale con Monitoraggio di Azure. Questo articolo fornisce dettagli aggiuntivi per il tipo di origine dati Syslog Linux.

Annotazioni

Per usare direttamente la definizione DCR o distribuire con altri metodi, ad esempio i modelli ARM, consulta gli esempi di regole di raccolta dati in Monitoraggio di Azure.

Creare il DCR

Crea il DCR usando il processo in Raccogliere dati dal client di macchine virtuali con Azure Monitor.

Configurare l'origine dati Syslog

Nella scheda Collect and deliver (Raccogli e recapita ) di DCR selezionare Linux Syslog nell'elenco a discesa Tipo di origine dati .

Selezionare un livello di log minimo per ogni struttura o NONE per non raccogliere eventi per tale struttura. È possibile configurare più strutture contemporaneamente selezionando la casella di controllo e quindi selezionando un livello di log in Impostare il livello di log minimo per le strutture selezionate.

Screenshot che mostra la pagina per selezionare il tipo di origine dati e il livello di log minimo.

Tutti i log con il livello di gravità selezionato e superiore vengono raccolti nella struttura. I livelli di gravità supportati e la relativa gravità sono i seguenti:

  1. Correzione errori di programma
  2. Informazioni
  3. Notifica
  4. Avvertimento
  5. Errore
  6. Critico
  7. Avviso
  8. Emergenza

Aggiungere destinazioni

I dati Syslog possono essere inviati solo a un'area di lavoro Log Analytics in cui sono archiviati nella tabella Syslog . Aggiungere una destinazione di tipo Log di Monitoraggio di Azure e selezionare un'area di lavoro Log Analytics. Anche se è possibile aggiungere più aree di lavoro, tenere presente che invieranno dati duplicati a ognuno di essi, con un costo aggiuntivo.

Screenshot che mostra la configurazione di una destinazione dei log di Azure Monitor in una regola di raccolta dati.

Verificare la raccolta dati

Per verificare che i dati vengano raccolti, verificare la presenza di record nella tabella Syslog . Dalla macchina virtuale o dall'area di lavoro Log Analytics nel portale di Azure selezionare Log e quindi fare clic sul pulsante Tabelle . Nella categoria Macchine virtuali fare clic su Esegui accanto a Syslog.

Screenshot che mostra i record restituiti dalla tabella Syslog.

Annotazioni

Quando si inseriscono dati syslog usando un server d'inoltro dei log, possono verificarsi incoerenze tra i campi TimeGenerated ed EventTime.

  • TimeGenerated riflette l'ora UTC in cui il messaggio syslog è stato elaborato dal computer che ospita l'agente di inoltro del log o l'agente di raccolta.
  • EventTime viene estratto dall'intestazione syslog, che non include informazioni sul fuso orario e viene convertito in UTC usando l'offset del fuso orario locale del server d'inoltro/agente di raccolta.

Ciò può causare differenze tra i due campi quando il server d'inoltro/agente di raccolta e il dispositivo che genera il log si trovano in fusi orari diversi.

Configurare Syslog nell'agente Linux

Durante l’installazione dell'agente di Monitoraggio di Azure in un computer Linux, viene installato un file di configurazione Syslog predefinito che definisce la funzionalità e la gravità dei messaggi raccolti se Syslog è abilitato in un DCR. Il file di configurazione è diverso a seconda del daemon Syslog installato nel client.

Annotazioni

Le versioni dell’agente Linux di Monitoraggio di Azure 1.15.2 e successive supportano i formati RFC Syslog, tra cui Cisco Meraki, Cisco ASA, Cisco FTD, Sophos XG, Juniper Networks, Corelight Zeek, CipherTrust, NXLog, McAfee e Common Event Format (CEF).

Rsyslog

In molte distribuzioni Linux, il daemon rsyslogd è responsabile dell'utilizzo, dell'archiviazione e del routing dei messaggi di log inviati tramite l'API Syslog Linux. L'agente di Monitoraggio di Azure usa il modulo di output di inoltro TCP (omfwd) in rsyslog per inoltrare i messaggi di log.

L'installazione dell'agente di Monitoraggio di Azure include file di configurazione predefiniti che si trovano in /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/. Quando Syslog viene aggiunto a un DCR, questa configurazione viene installata nella directory di sistema etc/rsyslog.d e rsyslog viene riavviato automaticamente per rendere effettive le modifiche.

Annotazioni

Nei sistemi basati su rsyslog, l'agente Linux di Monitoraggio di Azure aggiunge regole di inoltro al set di regole predefinito definito nella configurazione di rsyslog. Se vengono usati più set di regole, gli input associati a set di regole non predefiniti non vengono inoltrati all'agente di Monitoraggio di Azure. Per altre informazioni su più set di regole in rsyslog, vedere la documentazione ufficiale.

Di seguito è riportata la configurazione predefinita che raccoglie i messaggi Syslog inviati dall'agente locale per tutte le strutture con tutti i livelli di log.

$ cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
# queue.workerThreads sets the maximum worker threads, it will scale back to 0 if there is no activity
# Forwarding all events through TCP port
*.* action(type="omfwd"
template="AMA_RSYSLOG_TraditionalForwardFormat"
queue.type="LinkedList"
queue.filename="omfwd-azuremonitoragent"
queue.maxFileSize="32m"
queue.maxDiskSpace="1g"
action.resumeRetryCount="-1"
action.resumeInterval="5"
action.reportSuspension="on"
action.reportSuspensionContinuation="on"
queue.size="25000"
queue.workerThreads="100"
queue.dequeueBatchSize="2048"
queue.saveonshutdown="on"
target="127.0.0.1" Port="28330" Protocol="tcp")

La configurazione seguente viene utilizzata quando si usa SELinux e si decide di usare socket Unix.

$ cat /etc/rsyslog.d/10-azuremonitoragent.conf
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
$OMUxSockSocket /run/azuremonitoragent/default_syslog.socket
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%") 
$OMUxSockDefaultTemplate AMA_RSYSLOG_TraditionalForwardFormat
# Forwarding all events through Unix Domain Socket
*.* :omuxsock: 
$ cat /etc/rsyslog.d/05-azuremonitoragent-loadomuxsock.conf
# Azure Monitor Agent configuration: load rsyslog forwarding module. 
$ModLoad omuxsock

In alcuni sistemi legacy potrebbero verificarsi problemi di formattazione del log rsyslog quando viene usato un formato di inoltro tradizionale per inviare eventi Syslog all'agente di Monitoraggio di Azure. Per questi sistemi, l'agente di Monitoraggio di Azure inserisce automaticamente un modello di server d'inoltro legacy:

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")

Syslog-ng

L'installazione dell'agente di Monitoraggio di Azure include file di configurazione predefiniti che si trovano in /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. Quando Syslog viene aggiunto a un DCR, questa configurazione viene installata nella directory di sistema /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf e syslog-ng viene riavviato automaticamente per rendere effettive le modifiche.

Il contenuto predefinito è illustrato nell'esempio seguente. Questo esempio raccoglie i messaggi Syslog inviati dall'agente locale per tutte le funzionalità e tutti i livelli di gravità.

$ cat /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf 
# Azure MDSD configuration: syslog forwarding config for mdsd agent
options {};

# during install time, we detect if s_src exist, if it does then we
# replace it by appropriate source name like in redhat 's_sys'
# Forwrding using tcp
destination d_azure_mdsd {
	network("127.0.0.1" 
	port(28330)
	log-fifo-size(25000));			
};

log {
	source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
	destination(d_azure_mdsd);
	flags(flow-control);
};

La configurazione seguente viene utilizzata quando si usa SELinux e si decide di usare socket Unix.

$ cat /etc/syslog-ng/conf.d/azuremonitoragent.conf 
# Azure MDSD configuration: syslog forwarding config for mdsd agent options {}; 
# during install time, we detect if s_src exist, if it does then we 
# replace it by appropriate source name like in redhat 's_sys' 
# Forwrding using unix ___domain socket 
destination d_azure_mdsd { 
	unix-dgram("/run/azuremonitoragent/default_syslog.socket" 
	flags(no_multi_line) ); 
};
 
log {
	source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf 
	destination(d_azure_mdsd);
}; 

Annotazioni

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 e Oracle Linux (sysklog) non è supportato per la raccolta di eventi Syslog. Per raccogliere dati di SysLog da questa versione delle distribuzioni, è necessario installare e configurare il daemon rsyslog in modo da sostituire sysklog.

Se si modifica la configurazione di SysLog, è necessario riavviare il daemon SysLog per rendere effettive le modifiche.

Strutture supportate

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

Indice Pri Pri Name
0 Nessuno
1 Kern
2 utente
3 posta elettronica
4 daemon
4 auth
5 log di sistema
6 lpr
7 notizie
8 uucp
9 FTP
10 ntp
11 revisione contabile
12 avviso
13 contrassegno
14 local0
15 local1
16 local2
17 local3
18 local4
19 local5
20 local6
21 local7

Passaggi successivi