Shromažďování událostí Syslogu pomocí agenta služby Azure Monitor

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která se blíží stavu Konec životnosti (EOL). Zvažte své použití a plánování odpovídajícím způsobem. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Syslog je protokol protokolování událostí, který je běžný pro Linux. K shromažďování místních událostí zadaných typů můžete použít démon Syslog, který je integrovaný v zařízeních a zařízeních s Linuxem. Tyto události pak můžete odeslat do pracovního prostoru služby Log Analytics. Aplikace odesílají zprávy, které mohou být uloženy na místním počítači nebo doručovány do kolektoru Syslog.

Když je agent Služby Azure Monitor pro Linux nainstalovaný, nakonfiguruje místní démon Syslog tak, aby předával zprávy agentu, když je povolená kolekce Syslog v pravidlech shromažďování dat (DCR). Agent Služby Azure Monitor pak odešle zprávy do pracovního prostoru Služby Azure Monitor nebo Log Analytics, kde se vytvoří odpovídající záznam Syslog v tabulce Syslog.

Diagram znázorňující kolekci Syslog

Diagram znázorňující komunikaci démona Syslogu a agenta služby Azure Monitor

Poznámka:

Agent Služby Azure Monitor používá port TCP k příjmu zpráv odesílaných rsyslogem nebo syslog-ng, ale v případě, že je povolená služba SELinux a k přidání pravidel pro port TCP nemůžeme použít sémanage, použijeme sokety Unix.

Kolektor Syslog podporuje následující zařízení:

  • Nic
  • Kern
  • user
  • pošta
  • Daemon
  • auth
  • syslog
  • Lpr
  • Novinky
  • Uucp
  • FTP
  • Ntp
  • audit
  • upozornění
  • mark
  • local0
  • local1
  • local2
  • local3
  • local4
  • local5
  • local6
  • local7

U některých typů zařízení, které nepovolují místní instalaci agenta Služby Azure Monitor, je možné agenta nainstalovat místo toho do vyhrazeného nástroje pro předávání protokolů založeného na Linuxu. Původní zařízení musí být nakonfigurované tak, aby místo místního démona odesílaly události Syslogu démonu syslogu. Další informace najdete v kurzu služby Sentinel.

Konfigurace syslogu

Agent Služby Azure Monitor pro Linux shromažďuje události pouze se zařízeními a závažnostmi zadanými v konfiguraci. Syslog můžete nakonfigurovat prostřednictvím webu Azure Portal nebo správou konfiguračních souborů na agentech Linuxu.

Konfigurace Syslogu na webu Azure Portal

Nakonfigurujte Syslog z nabídky Pravidla shromažďování dat služby Azure Monitor. Tato konfigurace se doručí do konfiguračního souboru v každém agentu Linuxu.

  1. Vyberte Přidat zdroj dat.
  2. Jako typ zdroje dat vyberte syslog Linuxu.

Pro každé zařízení můžete shromažďovat události Syslogu s jinou úrovní protokolu. Ve výchozím nastavení se shromažďují všechny typy zařízení Syslog. Pokud například nechcete shromažďovat události typuauth, v seznamu Minimální auth úroveň protokolu vyberte možnost NONE a uložte změny. Pokud potřebujete změnit výchozí úroveň protokolu pro události Syslog a shromažďovat pouze události s úrovní protokolu začínající na OZNÁMENÍ nebo vyšší prioritou, vyberte LOG_NOTICE v seznamu Minimální úroveň protokolu.

Ve výchozím nastavení se všechny změny konfigurace automaticky nasdílí do všech agentů nakonfigurovaných v DCR.

Vytvoření pravidla shromažďování dat

Vytvořte pravidlo shromažďování dat ve stejné oblasti jako pracovní prostor služby Log Analytics. DCR je prostředek Azure, který umožňuje definovat způsob zpracování dat při ingestování do pracovního prostoru.

  1. Přihlaste se k portálu Azure.

  2. Vyhledejte a otevřete Monitor.

  3. V části Nastavení vyberte Pravidla shromažďování dat.

  4. Vyberte Vytvořit.

    Snímek obrazovky znázorňující podokno Pravidla shromažďování dat s vybranou možností Vytvořit

Přidání prostředků

  1. Vyberte Přidat prostředky.

  2. Pomocí filtrů vyhledejte virtuální počítač, který chcete použít ke shromažďování protokolů.

    Snímek obrazovky znázorňující stránku, na které se má vybrat obor pravidla shromažďování dat

  3. Vyberte virtuální počítač.

  4. Vyberte Použít.

  5. Vyberte Další: Shromážděte a doručte.

Přidání zdroje dat

  1. Vyberte Přidat zdroj dat.

  2. Jako typ zdroje dat vyberte syslog Linuxu.

    Snímek obrazovky znázorňující stránku pro výběr typu zdroje dat a minimální úrovně protokolu

  3. Pro minimální úroveň protokolu ponechte výchozí hodnoty LOG_DEBUG.

  4. Vyberte Další: Cíl.

Přidání cíle

  1. Vyberte Přidat cíl.

    Snímek obrazovky znázorňující kartu Cíl s vybranou možností Přidat cíl

  2. Zadejte následující hodnoty:

    Pole Hodnota
    Typ cíle Azure Monitor Logs
    Předplatné Vyberte příslušné předplatné.
    Účet nebo obor názvů Vyberte příslušný pracovní prostor služby Log Analytics.
  3. Vyberte Přidat zdroj dat.

  4. Vyberte Další: Zkontrolovat a vytvořit.

Vytvoření pravidla

  1. Vyberte Vytvořit.
  2. Než přejdete k další části, počkejte 20 minut.

Pokud váš virtuální počítač nemá nainstalovaného agenta Azure Monitoru, nasazení DCR aktivuje instalaci agenta na virtuálním počítači.

Konfigurace Syslogu v agentu Linuxu

Když je agent Azure Monitor nainstalovaný na počítači s Linuxem, nainstaluje výchozí konfigurační soubor Syslog, který definuje zařízení a závažnost shromážděných zpráv, pokud je v DCR povolený Syslog. Konfigurační soubor se liší v závislosti na procesu démona Syslogu, který klient nainstaloval.

Rsyslog

V mnoha linuxových distribucích zodpovídá démon rsyslogd za využívání, ukládání a směrování zpráv protokolu odesílaných pomocí rozhraní Syslog API linuxu. Agent Azure Monitoru používá k předávání zpráv protokolu do agenta služby Azure Monitor výstupní modul tcp (omfwd) v rsyslogu.

Instalace agenta služby Azure Monitor obsahuje výchozí konfigurační soubory, které se umístí do následujícího adresáře: /etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/

Při přidání Syslogu do dcR se tyto konfigurační soubory nainstalují do systémového etc/rsyslog.d adresáře a rsyslog se automaticky restartuje, aby se změny projevily. Tyto soubory používají rsyslog k načtení výstupního modulu a předávání událostí démonu agenta služby Azure Monitor pomocí definovaných pravidel.

Výchozí obsah je zobrazený v následujícím příkladu. Tento příklad shromažďuje zprávy Syslog odeslané z místního agenta pro všechna zařízení se všemi úrovněmi protokolu.

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

Následující konfigurace se používá při použití SELinux a rozhodneme se používat unixové sokety.

$ 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

V některých starších systémech, jako je CentOS 7.3, jsme viděli problémy s formátováním protokolu rsyslog, když se k odesílání událostí Syslogu do agenta Azure Monitoru používá tradiční formát předávání. V těchto systémech agent Azure Monitor místo toho automaticky umístí starší šablonu služby předávání:

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

Syslog-ng

Konfigurační soubor pro syslog-ng je nainstalován na /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent-tcp.confadrese . Při přidání kolekce Syslog do DCR se tento konfigurační soubor umístí do systémového /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf adresáře a syslog-ng se automaticky restartuje, aby se změny projevily.

Výchozí obsah je zobrazený v následujícím příkladu. Tento příklad shromažďuje zprávy Syslog odeslané z místního agenta pro všechna zařízení a všechny závažnosti.

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

Následující konfigurace se používá při použití SELinux a rozhodneme se používat unixové sokety.

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

Poznámka:

Azure Monitor podporuje shromažďování zpráv odesílaných rsyslogem nebo syslog-ng, kde rsyslog je výchozí démon. Pro shromažďování událostí Syslog se nepodporuje výchozí démon Syslog ve verzi 5 Red Hat Enterprise Linux, CentOS a Oracle Linux (sysklog). Pokud chcete shromažďovat data Syslogu z této verze těchto distribucí, měl by být nainstalován a nakonfigurován démon rsyslog pro nahrazení sysklogu.

Pokud upravíte konfiguraci syslogu, musíte restartovat proces démon Syslog, aby se změny projevily.

Požadavky

Potřebujete:

Vlastnosti záznamu Syslog

Záznamy Syslog mají typ Syslogu a mají vlastnosti uvedené v následující tabulce.

Vlastnost Popis
Počítač Počítač, ze kterého byla událost shromážděna.
Zařízení Definuje část systému, která zprávu vygenerovala.
HostIP IP adresa systému, který zprávu odesílá.
Název hostitele Název systému odesílajícího zprávu
SeverityLevel Úroveň závažnosti události.
SyslogMessage Text zprávy
ProcessID ID procesu, který zprávu vygeneroval.
EventTime Datum a čas vygenerování události

Dotazy protokolu se záznamy Syslogu

Následující tabulka obsahuje různé příklady dotazů protokolu, které načítají záznamy Syslog.

Dotaz Popis
Syslog Všechny syslogy
Syslog | where SeverityLevel == "error" Všechny záznamy Syslog se závažností chyby
Syslog | where Facility == "auth" Všechny záznamy Syslogu s typem ověřovacího zařízení
Syslog | summarize AggregatedValue = count() by Facility Počet záznamů Syslog podle zařízení

Další kroky

Přečtěte si další informace: