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.

Diagram som visar Syslog-samlingen.

Diagram som visar Syslog-daemon och Azure Monitor Agent-kommunikation.

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.

  1. Välj Lägg till datakälla.
  2. 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.

  1. Logga in på Azure-portalen.

  2. Sök efter och öppna Övervaka.

  3. Under Inställningar väljer du Regler för datainsamling.

  4. Välj Skapa.

    Skärmbild som visar fönstret Regler för datainsamling med alternativet Skapa valt.

Lägg till resurser

  1. Välj Lägg till resurser.

  2. Använd filtren för att hitta den virtuella dator som du vill använda för att samla in loggar.

    Skärmbild som visar sidan för att välja omfånget för datainsamlingsregeln.

  3. Välj den virtuella datorn.

  4. Välj Använd.

  5. Välj Nästa: Samla in och leverera.

Lägga till en datakälla

  1. Välj Lägg till datakälla.

  2. För Typ av datakälla väljer du Linux-syslog.

    Skärmbild som visar sidan för att välja datakällans typ och lägsta loggnivå.

  3. För Lägsta loggnivå lämnar du standardvärdena LOG_DEBUG.

  4. Välj Nästa: Mål.

Lägga till ett mål

  1. Välj Lägg till destination.

    Skärmbild som visar fliken Mål med alternativet Lägg till mål valt.

  2. 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
  3. Välj Lägg till datakälla.

  4. Välj Nästa: Granska + skapa.

Skapa en regel

  1. Välj Skapa.
  2. 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:

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: