Raccogliere eventi Syslog con l'agente di Monitoraggio di Azure
Attenzione
Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). 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. È possibile usare il daemon Syslog integrato in dispositivi e appliance Linux per raccogliere gli eventi locali dei tipi specificati. È quindi possibile inviarli a un'area di lavoro Log Analytics. Le applicazioni inviano messaggi che possono essere archiviati nel computer locale o recapitati a un agente di raccolta di Syslog.
Quando l'agente di Monitoraggio di Azure per Linux è installato, configura il daemon Syslog locale per inoltrare i messaggi all'agente quando la raccolta Syslog è abilitata nelle regole di raccolta dati (DCR). L'agente di Monitoraggio di Azure invia quindi i messaggi a un'area di lavoro Monitoraggio di Azure o Log Analytics in cui viene creato un record Syslog corrispondente in una tabella Syslog.
Nota
L'agente di Monitoraggio di Azure usa una porta TCP per ricevere messaggi inviati da rsyslog o syslog-ng, tuttavia, nel caso in cui SELinux sia abilitato e non è possibile usare semanage per aggiungere regole per la porta TCP, verranno usati socket Unix.
Con l'agente di raccolta Syslog sono supportate le funzionalità seguenti:
- None
- Kern
- utente
- daemon
- auth
- syslog
- lpr
- news
- uucp
- ftp
- ntp
- controllo
- avviso
- mark
- local0
- local1
- local2
- local3
- local4
- local5
- local6
- local7
Di seguito sono riportati i livelli di gravità degli eventi:
- info
- avviso
- Errore
- warning
- critical
Per alcuni tipi di dispositivo che non consentono l'installazione locale dell'agente di Monitoraggio di Azure, l'agente può essere installato invece in un server d'inoltro dei log basato su Linux dedicato. Il dispositivo di origine deve essere configurato per inviare eventi Syslog al daemon Syslog in questo server d'inoltro anziché al daemon locale. Per altre informazioni, vedere l'esercitazione su Sentinel.
Configurare Syslog
L'agente di Monitoraggio di Azure 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 Regole di raccolta dati di Monitoraggio di Azure. Questa configurazione viene distribuita al file di configurazione su ogni agente Linux.
- Seleziona Aggiungi origine dati.
- Per Tipo di origine dati selezionare Syslog Linux.
È possibile raccogliere eventi Syslog con un livello di log diverso per ogni funzionalità. Per impostazione predefinita, vengono raccolti tutti i tipi di funzionalità Syslog. Se non si desidera raccogliere, ad esempio eventi di auth
tipo , selezionare NONE nella casella di riepilogo Livello di log minimo per auth
la funzionalità e salvare le modifiche. Se è necessario modificare il livello di log predefinito per gli eventi Syslog e raccogliere solo gli eventi con un livello di log a partire da NOTICE o una priorità superiore, selezionare LOG_NOTICE nella casella di riepilogo Livello di log minimo.
Per impostazione predefinita, tutte le modifiche di configurazione vengono automaticamente inoltrate a tutti gli agenti configurati nel Registro Azure Container.
Creare una regola di raccolta dati
Creare una regola di raccolta dati nella stessa area dell'area di lavoro Log Analytics. Un registro di dominio è una risorsa di Azure che consente di definire il modo in cui i dati devono essere gestiti durante l'inserimento nell'area di lavoro.
Accedere al portale di Azure.
Cercare e aprire Monitoraggio.
In Impostazioni selezionare Regole di raccolta dati.
Seleziona Crea.
Aggiungere le risorse
Selezionare Aggiungi risorse.
Usare i filtri per trovare la macchina virtuale da usare per raccogliere i log.
Selezionare la macchina virtuale.
Selezionare Applica.
Selezionare Avanti: Raccogliere e recapitare.
Aggiungere un'origine dati
Seleziona Aggiungi origine dati.
Per Tipo di origine dati selezionare Syslog Linux.
Per Livello di log minimo lasciare i valori predefiniti LOG_DEBUG.
Selezionare Avanti: Destinazione.
Aggiungere una destinazione
Seleziona Aggiungi destinazione.
Immettere i valori seguenti:
Campo valore Tipo destinazione Log di Monitoraggio di Azure Subscription Selezionare la sottoscrizione appropriata Account o spazio dei nomi Selezionare l'area di lavoro Log Analytics appropriata Seleziona Aggiungi origine dati.
Selezionare Avanti: Rivedi e crea.
Crea una regola
- Seleziona Crea.
- Attendere 20 minuti prima di passare alla sezione successiva.
Se la macchina virtuale non ha installato l'agente di Monitoraggio di Azure, la distribuzione del Registro Azure Container attiva l'installazione dell'agente nella macchina virtuale.
Configurare Syslog nell'agente Linux
Quando l'agente di Monitoraggio di Azure viene installato in un computer Linux, installa un file di configurazione Syslog predefinito che definisce la funzionalità e la gravità dei messaggi raccolti se Syslog è abilitato in un registro di dominio. 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 all'agente di Monitoraggio di Azure.
L'installazione dell'agente di Monitoraggio di Azure include i file di configurazione predefiniti che vengono inseriti nella directory seguente: /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/
Quando Syslog viene aggiunto a un DCR, questi file di configurazione vengono installati nella directory di etc/rsyslog.d
sistema e rsyslog viene riavviato automaticamente per rendere effettive le modifiche. Questi file vengono usati da rsyslog per caricare il modulo di output e inoltrare gli eventi al daemon dell'agente di Monitoraggio di Azure usando le regole definite.
Il contenuto predefinito è illustrato nell'esempio seguente. Questo esempio 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"
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 usata 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, ad esempio CentOS 7.3, sono stati riscontrati problemi di formattazione dei 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
Il file di configurazione per syslog-ng viene installato in /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf
. Quando la raccolta Syslog viene aggiunta a un registro di dominio, questo file di configurazione viene inserito nella directory di /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf
sistema 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 strutture 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 usata 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, 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.
Se si modifica la configurazione di Syslog, è necessario riavviare il daemon Syslog per rendere effettive le modifiche.
Prerequisiti
È necessario:
- Un'area di lavoro Log Analytics in cui si dispone almeno dei diritti di collaboratore.
- Endpoint di raccolta dati.
- Autorizzazioni per creare oggetti regola di raccolta dati nell'area di lavoro.
- I messaggi Syslog devono rispettare gli standard RFC (RFC5424 o RFC3164)
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 | where Facility == "auth" | Tutti i record Syslog con tipo di funzionalità di autenticazione |
Syslog | summarize AggregatedValue = count() by Facility | Numero di record Syslog per struttura |
Passaggi successivi
Altre informazioni su:
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per