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.
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.
- Vyberte Přidat zdroj dat.
- 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.
Přihlaste se k portálu Azure.
Vyhledejte a otevřete Monitor.
V části Nastavení vyberte Pravidla shromažďování dat.
Vyberte Vytvořit.
Přidání prostředků
Vyberte Přidat prostředky.
Pomocí filtrů vyhledejte virtuální počítač, který chcete použít ke shromažďování protokolů.
Vyberte virtuální počítač.
Vyberte Použít.
Vyberte Další: Shromážděte a doručte.
Přidání zdroje dat
Vyberte Přidat zdroj dat.
Jako typ zdroje dat vyberte syslog Linuxu.
Pro minimální úroveň protokolu ponechte výchozí hodnoty LOG_DEBUG.
Vyberte Další: Cíl.
Přidání cíle
Vyberte Přidat cíl.
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. Vyberte Přidat zdroj dat.
Vyberte Další: Zkontrolovat a vytvořit.
Vytvoření pravidla
- Vyberte Vytvořit.
- 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.conf
adrese . 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:
- Pracovní prostor služby Log Analytics, kde máte alespoň práva přispěvatele.
- Koncový bod shromažďování dat.
- Oprávnění k vytváření objektů DCR v pracovním prostoru
- Zprávy Syslog musí dodržovat standardy RFC (RFC5424 nebo RFC3164).
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: