Raccogliere eventi Syslog con l'agente di Monitoraggio di Azure
Eventi Syslog è una delle origini dati usate in una regola di raccolta dati (DCR). Ulteriori dettagli sulla creazione di DCR sono disponibili in Raccogliere dati con l'agente di Monitoraggio di Azure. Questo articolo fornisce dettagli aggiuntivi per il tipo di origine dati eventi Syslog.
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.
Suggerimento
Per raccogliere dati di dispositivi che non consentono l'installazione locale dell'agente di Monitoraggio di Azure, configurare un apposito server d'inoltro dei log basato su Linux.
Prerequisiti
- Un'area di lavoro Log Analytics in cui si dispone almeno dei diritti di collaboratore. Gli eventi Syslog vengono inviati alla tabella Syslog.
- Un DCR nuovo o esistente descritto in Raccogliere dati con l'agente di Monitoraggio di Azure.
Configurare la raccolta di dati Syslog
Nel passaggio Raccogli e recapita del DCR, selezionare Syslog Linux dall'elenco a discesa Tipo di origine dati.
Con l'agente di raccolta Syslog sono supportate le funzionalità seguenti:
Numero di indice prioritario | Nome priorità |
---|---|
{none} | No Pri |
0 | Kern |
1 | utente |
2 | |
3 | daemon |
4 | aut |
5 | syslog |
6 | lpr |
7 | news |
8 | uucp |
9 | cron |
10 | authpriv |
11 | ftp |
12 | ntp |
13 | controllo |
14 | avviso |
15 | clock |
16 | local0 |
17 | local1 |
18 | local2 |
19 | local3 |
20 | local4 |
21 | local5 |
22 | local6 |
23 | local7 |
Per impostazione predefinita, l'agente raccoglierà tutti gli eventi inviati dalla configurazione Syslog. Modificare il livello di log minimo per ogni funzionalità per limitare la raccolta di dati. Selezionare NONE per non raccogliere eventi per una particolare struttura.
Destinazioni
I dati Syslog possono essere inviati alle posizioni seguenti.
Destinazione | Tabella / Spazio dei nomi |
---|---|
area di lavoro Log Analytics | Syslog |
Nota
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).
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.
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.
Nota
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 i 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);
};
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 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:
Pri index | Pri Name |
---|---|
0 | None |
1 | Kern |
2 | utente |
3 | |
4 | daemon |
4 | aut |
5 | syslog |
6 | lpr |
7 | news |
8 | uucp |
9 | ftp |
10 | ntp |
11 | controllo |
12 | avviso |
13 | mark |
14 | local0 |
15 | local1 |
16 | local2 |
17 | local3 |
18 | local4 |
19 | local5 |
20 | local6 |
21 | local7 |
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 syslog campione
La tabella seguente mostra alcuni esempi di query di log che recuperano i record Syslog.
Tutti i SysLog
Syslog
Tutti i record Syslog con livello di gravità errore
Syslog | where SeverityLevel == "error"
Tutti i record Syslog con tipo di funzionalità di autenticazione
Syslog | where facility == "auth"
Numero di record Syslog per struttura.
Syslog | summarize AggregatedValue = count() by facility
Risoluzione dei problemi
Seguire questa procedura se non si stanno raccogliendo dati dal log JSON previsto.
- Verificare che i dati vengano scritti in Syslog.
- Vedere Verifica operazione per verificare se l'agente sia operativo e i dati vengano ricevuti.
Passaggi successivi
Altre informazioni su: