Syslog-gebeurtenissen verzamelen met Azure Monitor Agent

Let op

In dit artikel wordt verwezen naar CentOS, een Linux-distributie die de status End Of Life (EOL) nadert. Overweeg uw gebruik en planning dienovereenkomstig. Zie de Richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

Syslog is een protocol voor logboekregistratie van gebeurtenissen dat gebruikelijk is voor Linux. U kunt de Syslog-daemon gebruiken die is ingebouwd in Linux-apparaten en -apparaten om lokale gebeurtenissen te verzamelen van de typen die u opgeeft. Vervolgens kunt u deze gebeurtenissen naar een Log Analytics-werkruimte laten verzenden. Toepassingen verzenden berichten die mogelijk zijn opgeslagen op de lokale computer of worden bezorgd bij een Syslog-collector.

Wanneer de Azure Monitor-agent voor Linux is geïnstalleerd, configureert deze de lokale Syslog-daemon om berichten door te sturen naar de agent wanneer Syslog-verzameling is ingeschakeld in regels voor gegevensverzameling (DCR's). De Azure Monitor-agent verzendt de berichten vervolgens naar een Azure Monitor- of Log Analytics-werkruimte waarin een bijbehorende Syslog-record wordt gemaakt in een Syslog-tabel.

Diagram met syslog-verzameling.

Diagram met de communicatie van Syslog-daemon en Azure Monitor-agent.

De volgende faciliteiten worden ondersteund met de Syslog-collector:

  • Geen
  • Afspatiëring
  • Gebruiker
  • e-mail
  • Daemon
  • verif
  • syslog
  • Lpr
  • Nieuws
  • Uucp
  • ftp
  • Ntp
  • controleren
  • waarschuwing
  • markering
  • local0
  • local1
  • local2
  • local3
  • local4
  • local5
  • local6
  • local7

Voor sommige apparaattypen die geen lokale installatie van Azure Monitor Agent toestaan, kan de agent worden geïnstalleerd op een toegewezen linux-logboekstuurserver. Het oorspronkelijke apparaat moet worden geconfigureerd om Syslog-gebeurtenissen naar de Syslog-daemon op deze doorstuurserver te verzenden in plaats van de lokale daemon. Zie de sentinel-zelfstudie voor meer informatie.

Syslog configureren

De Azure Monitor-agent voor Linux verzamelt alleen gebeurtenissen met de faciliteiten en ernst die zijn opgegeven in de configuratie. U kunt Syslog configureren via Azure Portal of door configuratiebestanden op uw Linux-agents te beheren.

Syslog configureren in Azure Portal

Configureer Syslog in het menu Regels voor gegevensverzameling van Azure Monitor. Deze configuratie wordt geleverd aan het configuratiebestand op elke Linux-agent.

  1. Selecteer Gegevensbron toevoegen.
  2. Voor gegevensbrontype selecteert u Linux syslog.

U kunt Syslog-gebeurtenissen verzamelen met een ander logboekniveau voor elke faciliteit. Standaard worden alle Syslog-faciliteitstypen verzameld. Als u bijvoorbeeld geen gebeurtenissen van auth het type wilt verzamelen, selecteert u NONE in de keuzelijst Minimumlogboekniveau voor auth faciliteit en slaat u de wijzigingen op. Als u het standaardlogboekniveau voor Syslog-gebeurtenissen wilt wijzigen en alleen gebeurtenissen wilt verzamelen met een logboekniveau vanaf NOTICE of een hogere prioriteit, selecteert u LOG_NOTICE in de keuzelijst Minimumlogboekniveau .

Standaard worden alle configuratiewijzigingen automatisch gepusht naar alle agents die zijn geconfigureerd in de DCR.

Een regel voor gegevensverzameling maken

Maak een regel voor gegevensverzameling in dezelfde regio als uw Log Analytics-werkruimte. Een DCR is een Azure-resource waarmee u de manier kunt definiëren waarop gegevens moeten worden verwerkt terwijl deze worden opgenomen in de werkruimte.

  1. Meld u aan bij het Azure-portaal.

  2. Zoek en open Monitor.

  3. Selecteer onder Instellingen regels voor gegevensverzameling.

  4. Selecteer Maken.

    Schermopname van het deelvenster Regels voor gegevensverzameling met de optie Maken geselecteerd.

Resources toevoegen

  1. Selecteer Resources toevoegen.

  2. Gebruik de filters om de virtuele machine te vinden die u wilt gebruiken om logboeken te verzamelen.

    Schermopname van de pagina om het bereik voor de regel voor gegevensverzameling te selecteren.

  3. Selecteer de virtuele machine.

  4. Selecteer Toepassen.

  5. Selecteer Volgende: Verzamelen en leveren.

Een gegevensbron toevoegen

  1. Selecteer Gegevensbron toevoegen.

  2. Voor gegevensbrontype selecteert u Linux syslog.

    Schermopname van de pagina om het gegevensbrontype en het minimale logboekniveau te selecteren.

  3. Laat voor minimumlogboekniveau de standaardwaarden LOG_DEBUG.

  4. Selecteer Volgende: Bestemming.

Een bestemming toevoegen

  1. Selecteer Bestemming toevoegen.

    Schermopname van het tabblad Bestemming met de optie Bestemming toevoegen geselecteerd.

  2. Voer de volgende waarden in:

    Veld Waarde
    Doeltype Azure Monitor-logboeken
    Abonnement Het juiste abonnement selecteren
    Account of naamruimte Selecteer de juiste Log Analytics-werkruimte
  3. Selecteer Gegevensbron toevoegen.

  4. Selecteer Volgende: Beoordelen en maken.

Een regel maken

  1. Selecteer Maken.
  2. Wacht 20 minuten voordat u verdergaat met de volgende sectie.

Als op uw VM geen Azure Monitor-agent is geïnstalleerd, activeert de DCR-implementatie de installatie van de agent op de VIRTUELE machine.

Syslog configureren op de Linux-agent

Wanneer Azure Monitor Agent is geïnstalleerd op een Linux-computer, installeert het een standaard Syslog-configuratiebestand dat de faciliteit en ernst definieert van de berichten die worden verzameld als Syslog is ingeschakeld in een DCR. Het configuratiebestand verschilt, afhankelijk van de Syslog-daemon die de client heeft geïnstalleerd.

Rsyslog

Op veel Linux-distributies is de rsyslogd daemon verantwoordelijk voor het verbruik, opslaan en routeren van logboekberichten die worden verzonden met behulp van de Linux Syslog-API. Azure Monitor Agent maakt gebruik van de TCP-uitvoermodule (omfwd) in rsyslog om logboekberichten door te sturen naar Azure Monitor Agent.

De installatie van de Azure Monitor-agent bevat standaardconfiguratiebestanden die onder de volgende map worden geplaatst: /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/

Wanneer Syslog wordt toegevoegd aan een DCR, worden deze configuratiebestanden geïnstalleerd onder de etc/rsyslog.d systeemmap en wordt rsyslog automatisch opnieuw opgestart voordat de wijzigingen van kracht worden. Deze bestanden worden door rsyslog gebruikt om de uitvoermodule te laden en de gebeurtenissen door te sturen naar de Daemon van de Azure Monitor-agent met behulp van gedefinieerde regels.

De standaardinhoud wordt weergegeven in het volgende voorbeeld. In dit voorbeeld worden Syslog-berichten verzameld die vanuit de lokale agent worden verzonden voor alle faciliteiten met alle logboekniveaus.

$ 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")

Op sommige verouderde systemen, zoals CentOS 7.3, hebben we problemen met het opmaken van rsyslog-logboeken gezien wanneer een traditionele doorstuurindeling wordt gebruikt om Syslog-gebeurtenissen naar azure Monitor Agent te verzenden. Voor deze systemen plaatst Azure Monitor Agent automatisch een verouderde doorstuurserversjabloon:

template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")

Syslog-ng

Het configuratiebestand voor syslog-ng is geïnstalleerd op /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.conf. Wanneer de Syslog-verzameling wordt toegevoegd aan een DCR, wordt dit configuratiebestand onder de /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf systeemmap geplaatst en wordt syslog-ng automatisch opnieuw opgestart voordat de wijzigingen van kracht worden.

De standaardinhoud wordt weergegeven in het volgende voorbeeld. In dit voorbeeld worden Syslog-berichten verzameld die vanuit de lokale agent worden verzonden voor alle faciliteiten en alle ernst.

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

Notitie

Azure Monitor ondersteunt het verzamelen van berichten die worden verzonden door rsyslog of syslog-ng, waarbij rsyslog de standaard daemon is. De standaard Syslog-daemon op versie 5 van Red Hat Enterprise Linux, CentOS en Oracle Linux-versie (sysklog) wordt niet ondersteund voor syslog-gebeurtenisverzameling. Als u Syslog-gegevens van deze versie van deze distributies wilt verzamelen, moet de rsyslog-daemon worden geïnstalleerd en geconfigureerd om sysklog te vervangen.

Als u de Syslog-configuratie bewerkt, moet u de Syslog-daemon opnieuw starten om de wijzigingen van kracht te laten worden.

Vereisten

U hebt het volgende nodig:

Eigenschappen van Syslog-records

Syslog-records hebben een type Syslog en hebben de eigenschappen die worden weergegeven in de volgende tabel.

Eigenschappen Beschrijving
Computer Computer van waaruit de gebeurtenis is verzameld.
Faciliteit Hiermee definieert u het deel van het systeem dat het bericht heeft gegenereerd.
Hostip IP-adres van het systeem dat het bericht verzendt.
HostName Naam van het systeem dat het bericht verzendt.
SeverityLevel Ernstniveau van de gebeurtenis.
SyslogMessage Tekst van het bericht.
ProcessID Id van het proces dat het bericht heeft gegenereerd.
EventTime De datum en tijd waarop de gebeurtenis is gegenereerd.

Logboekquery's met Syslog-records

De volgende tabel bevat verschillende voorbeelden van logboekquery's waarmee Syslog-records worden opgehaald.

Query Beschrijving
Syslog Alle Syslogs
Syslog | where SeverityLevel == "error" Alle Syslog-records met de ernst van de fout
Syslog | where Facility == "auth" Alle Syslog-records met het type verificatiefaciliteit
Syslog | summarize AggregatedValue = count() by Facility Aantal Syslog-records per faciliteit

Volgende stappen

Meer informatie over: