Dela via


Samla in Syslog-händelser med Azure Monitor Agent

Syslog-händelser är en av de datakällor som används i en datainsamlingsregel (DCR). Information om hur du skapar DCR finns i Samla in data med Azure Monitor Agent. Den här artikeln innehåller ytterligare information om datakällan Syslog-händelser.

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. Program skickar meddelanden som antingen lagras på den lokala datorn eller levereras till en Syslog-insamlare.

Dricks

Om du vill samla in data från enheter som inte tillåter lokal installation av Azure Monitor Agent konfigurerar du en dedikerad Linux-baserad loggvidare.

Förutsättningar

Konfigurera insamling av Syslog-data

I steget Samla in och leverera i DCR väljer du Linux Syslog i listrutan Datakällatyp .

Följande funktioner stöds med Syslog-insamlaren:

Prioritetsindexnummer Prioritetsnamn
{none} Ingen Pri
0 Kerna
1 användare
2 e-post
3 demon
4 författare
5 syslog
6 Lpr
7 nyheter
8 Uucp
9 cron
10 authpriv
11 ftp
12 Ntp
13 granska
14 varning
15 klocka
16 local0
17 local1
18 local2
19 local3
20 local4
21 local5
22 local6
23 local7

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

Som standard samlar agenten in alla händelser som skickas av Syslog-konfigurationen. Ändra lägsta loggnivå för varje anläggning för att begränsa datainsamlingen. Välj NONE för att samla in inga händelser för en viss anläggning.

Destinationer

Syslog-data kan skickas till följande platser.

Mål Tabell/namnområde
Log Analytics-arbetsyta Syslog

Kommentar

Azure Monitor Linux Agent version 1.15.2 och senare stöder syslog RFC-format, inklusive Cisco Meraki, Cisco ASA, Cisco FTD, Sophos XG, Juniper Networks, Corelight Zeek, CipherTrust, NXLog, McAfee och Common Event Format (CEF).

Skärmbild som visar konfigurationen av ett Azure Monitor-loggmål i en datainsamlingsregel.

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-utdatamodulen (omfwd) i rsyslog för att vidarebefordra loggmeddelanden.

Installationen av Azure Monitor Agent innehåller standardkonfigurationsfiler i /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/. När Syslog läggs till i en DCR installeras den här konfigurationen under systemkatalogen etc/rsyslog.d och rsyslog startas om automatiskt för att ändringarna ska börja gälla.

Kommentar

I rsyslog-baserade system lägger Azure Monitor Linux Agent till vidarebefordransregler till standardregeluppsättningen som definieras i rsyslog-konfigurationen. Om flera regeluppsättningar används vidarebefordras inte indata som är bundna till regeluppsättningar som inte är standard till Azure Monitor Agent. Mer information om flera regeluppsättningar i rsyslog finns i den officiella dokumentationen.

Följande är standardkonfigurationen som 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")

Följande konfiguration används när du använder SELinux och bestämmer dig för att använda Unix-socketar.

$ 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

I vissa äldre system kan det uppstå problem med rsyslogloggformatering 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

Installationen av Azure Monitor Agent innehåller standardkonfigurationsfiler i /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. När Syslog läggs till i en DCR installeras den här konfigurationen 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);
};

Följande konfiguration används när du använder SELinux och bestämmer dig för att använda Unix-socketar.

$ 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);
}; 

Kommentar

Azure Monitor stöder insamling av meddelanden som skickas av rsyslog eller syslog-ng, där rsyslog är standard daemon. Syslog-standard daemon på version 5 av Red Hat Enterprise Linux och Oracle Linux-versionen (sysklog) stöds inte för Syslog-händelsesamling. 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.

Faciliteter som stöds

Följande funktioner stöds med Syslog-insamlaren:

Pri-index Pri-namn
0 Ingen
1 Kerna
2 användare
3 e-post
4 demon
4 författare
5 syslog
6 Lpr
7 nyheter
8 Uucp
9 ftp
10 Ntp
11 granska
12 varning
13 mark
14 local0
15 local1
16 local2
17 local3
18 local4
19 local5
20 local6
21 local7

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.

Exempel på Syslog-loggfrågor

Följande tabell innehåller olika exempel på loggfrågor som hämtar Syslog-poster.

  • Alla Syslogs

      Syslog
    
  • Alla Syslog-poster med allvarlighetsgrad för fel

      Syslog
      | where SeverityLevel == "error"
    
  • Alla Syslog-poster med autentiseringsfunktionstyp

      Syslog
      | where facility == "auth"
    
  • Antal Syslog-poster per anläggning

      Syslog
      | summarize AggregatedValue = count() by facility
    

Felsökning

Gå igenom följande steg om du inte samlar in data från JSON-loggen som du förväntar dig.

  • Kontrollera att data skrivs till Syslog.
  • Se Kontrollera åtgärden för att kontrollera om agenten är i drift och att data tas emot.

Nästa steg

Läs mer om: