Samla in Syslog-händelser med Azure Monitor Agent
Varning
Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.
Syslog är ett protokoll för händelseloggning som är gemensamt för Linux. Du kan använda Syslog-daemonen som är inbyggd i Linux-enheter och -enheter för att samla in lokala händelser av de typer som du anger. Sedan kan du låta den skicka dessa händelser till en Log Analytics-arbetsyta. Program skickar meddelanden som kan lagras på den lokala datorn eller levereras till en Syslog-insamlare.
När Azure Monitor-agenten för Linux har installerats konfigureras den lokala Syslog-daemonen för att vidarebefordra meddelanden till agenten när Syslog-samlingen är aktiverad i datainsamlingsregler (DCR). Azure Monitor-agenten skickar sedan meddelandena till en Azure Monitor- eller Log Analytics-arbetsyta där en motsvarande Syslog-post skapas i en Syslog-tabell.
Följande funktioner stöds med Syslog-insamlaren:
- Ingen
- Kern
- användare
- e-post
- Daemon
- författare
- syslog
- Lpr
- Nyheter
- Uucp
- ftp
- Ntp
- granska
- alert
- mark
- local0
- local1
- local2
- local3
- local4
- local5
- local6
- local7
För vissa enhetstyper som inte tillåter lokal installation av Azure Monitor Agent kan agenten installeras i stället på en dedikerad Linux-baserad loggvidare. Den ursprungliga enheten måste konfigureras för att skicka Syslog-händelser till Syslog-daemonen på den här vidarebefordraren i stället för den lokala daemonen. Mer information finns i Sentinel-självstudien.
Konfigurera Syslog
Azure Monitor-agenten för Linux samlar bara in händelser med de resurser och allvarlighetsgrad som anges i konfigurationen. Du kan konfigurera Syslog via Azure-portalen eller genom att hantera konfigurationsfiler på dina Linux-agenter.
Konfigurera Syslog i Azure-portalen
Konfigurera Syslog från menyn Datainsamlingsregler i Azure Monitor. Den här konfigurationen levereras till konfigurationsfilen på varje Linux-agent.
- Välj Lägg till datakälla.
- För Typ av datakälla väljer du Linux-syslog.
Du kan samla in Syslog-händelser med olika loggnivå för varje anläggning. Som standard samlas alla Syslog-anläggningstyper in. Om du inte vill samla in till exempel händelser av auth
typen väljer du NONE i listrutan Minsta loggnivå för auth
anläggning och sparar ändringarna. Om du behöver ändra standardloggnivån för Syslog-händelser och endast samla in händelser med en loggnivå som börjar på NOTICE eller en högre prioritet väljer du LOG_NOTICE i listrutan Lägsta loggnivå .
Som standard skickas alla konfigurationsändringar automatiskt till alla agenter som har konfigurerats i DCR.
Skapa en datainsamlingsregel
Skapa en datainsamlingsregel i samma region som din Log Analytics-arbetsyta. En DCR är en Azure-resurs som gör att du kan definiera hur data ska hanteras när de matas in på arbetsytan.
Logga in på Azure-portalen.
Sök efter och öppna Övervaka.
Under Inställningar väljer du Regler för datainsamling.
Välj Skapa.
Lägg till resurser
Välj Lägg till resurser.
Använd filtren för att hitta den virtuella dator som du vill använda för att samla in loggar.
Välj den virtuella datorn.
Välj Använd.
Välj Nästa: Samla in och leverera.
Lägga till en datakälla
Välj Lägg till datakälla.
För Typ av datakälla väljer du Linux-syslog.
För Lägsta loggnivå lämnar du standardvärdena LOG_DEBUG.
Välj Nästa: Mål.
Lägga till ett mål
Välj Lägg till destination.
Ange följande värden:
Fält Värde Måltyp Azure Monitor-loggar Prenumeration Välj lämplig prenumeration Konto eller namnområde Välj lämplig Log Analytics-arbetsyta Välj Lägg till datakälla.
Välj Nästa: Granska + skapa.
Skapa en regel
- Välj Skapa.
- Vänta 20 minuter innan du går vidare till nästa avsnitt.
Om den virtuella datorn inte har Azure Monitor Agent installerad utlöser DCR-distributionen installationen av agenten på den virtuella datorn.
Konfigurera Syslog på Linux-agenten
När Azure Monitor Agent installeras på en Linux-dator installeras en standardkonfigurationsfil för Syslog som definierar funktionen och allvarlighetsgraden för de meddelanden som samlas in om Syslog är aktiverat i en DCR. Konfigurationsfilen skiljer sig beroende på den Syslog-daemon som klienten har installerat.
Rsyslog
På många Linux-distributioner ansvarar daemonen rsyslogd för att använda, lagra och dirigera loggmeddelanden som skickas med hjälp av Linux Syslog-API:et. Azure Monitor Agent använder TCP forward output module (omfwd
) i rsyslog för att vidarebefordra loggmeddelanden till Azure Monitor Agent.
Installationen av Azure Monitor Agent innehåller standardkonfigurationsfiler som placeras under följande katalog: /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/
När Syslog läggs till i en DCR installeras dessa konfigurationsfiler under systemkatalogen etc/rsyslog.d
och rsyslog startas automatiskt om för att ändringarna ska börja gälla. Dessa filer används av rsyslog för att läsa in utdatamodulen och vidarebefordra händelserna till Azure Monitor Agent-daemonen med hjälp av definierade regler.
Dess standardinnehåll visas i följande exempel. Det här exemplet samlar in Syslog-meddelanden som skickas från den lokala agenten för alla anläggningar med alla loggnivåer.
$ 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")
I vissa äldre system, till exempel CentOS 7.3, har vi sett problem med rsyslog-loggformatering när ett traditionellt vidarebefordranformat används för att skicka Syslog-händelser till Azure Monitor Agent. För dessa system placerar Azure Monitor Agent automatiskt en äldre vidarebefordrarmall i stället:
template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")
Syslog-ng
Konfigurationsfilen för syslog-ng är installerad på /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf
. När Syslog-samlingen läggs till i en DCR placeras den här konfigurationsfilen under systemkatalogen /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf
och syslog-ng startas automatiskt om för att ändringarna ska börja gälla.
Standardinnehållet visas i följande exempel. Det här exemplet samlar in Syslog-meddelanden som skickas från den lokala agenten för alla anläggningar och alla allvarlighetsgrad.
$ 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);
};
Kommentar
Azure Monitor stöder insamling av meddelanden som skickas av rsyslog eller syslog-ng, där rsyslog är standard daemon. Syslog-standard daemon i version 5 av Red Hat Enterprise Linux, CentOS och Oracle Linux-versionen (sysklog) stöds inte för Syslog-händelseinsamling. Om du vill samla in Syslog-data från den här versionen av dessa distributioner bör daemonen rsyslog installeras och konfigureras för att ersätta sysklog.
Om du redigerar Syslog-konfigurationen måste du starta om Syslog-daemon för att ändringarna ska börja gälla.
Förutsättningar
Du måste:
- En Log Analytics-arbetsyta där du har minst deltagarbehörighet.
- En slutpunkt för datainsamling.
- Behörigheter för att skapa DCR-objekt på arbetsytan.
- Syslog-meddelanden måste följa RFC-standarder (RFC5424 eller RFC3164)
Syslog-postegenskaper
Syslog-poster har en typ av Syslog och har egenskaperna som visas i följande tabell.
Property | beskrivning |
---|---|
Dator | Dator som händelsen samlades in från. |
Tillgång | Definierar den del av systemet som genererade meddelandet. |
Hostip | IP-adressen för systemet som skickar meddelandet. |
HostName | Namnet på systemet som skickar meddelandet. |
AllvarlighetsgradNivå | Händelsens allvarlighetsgrad. |
SyslogMessage | Text i meddelandet. |
ProcessID | ID för den process som genererade meddelandet. |
EventTime | Datum och tid då händelsen genererades. |
Logga frågor med Syslog-poster
Följande tabell innehåller olika exempel på loggfrågor som hämtar Syslog-poster.
Fråga | beskrivning |
---|---|
Syslog | Alla Syslogs |
Syslog | where SeverityLevel == "error" | Alla Syslog-poster med allvarlighetsgrad för fel |
Syslog | where Facility == "auth" | Alla Syslog-poster med autentiseringsfunktionstyp |
Syslog | summarize AggregatedValue = count() by Facility | Antal Syslog-poster per anläggning |
Nästa steg
Läs mer om: