protokoly operačního systému poskytují spoustu diagnostických informací o vašem počítači a Linux není výjimkou. Vše od událostí jádra až po uživatelské akce jsou zaznamenány Linuxem, což vám umožní vidět téměř jakoukoli akci provedenou na vašich serverech. V této části vysvětlíme, jaké jsou protokoly Linuxu, kde je najdete a jak je interpretovat.
protokoly systému Linux
Linux má speciální adresář pro ukládání protokolů s názvem /var/log
., Tento adresář obsahuje protokoly ze samotného operačního systému, služeb a různých aplikací běžících v systému. Takto vypadá tento adresář na typickém systému Ubuntu.
Některé z nejdůležitějších systému Linux protokoly patří:
-
/var/log/syslog
/var/log/messages
uložit všechny globální systém, údaje o činnosti, včetně spuštění zprávy. Systémy založené na debianu, jako je Ubuntu, ukládat tyto v/var/log/syslog
, zatímco Red Hat-based systémy jako RHEL nebo CentOS používání/var/log/messages
., -
/var/log/auth.log
/var/log/secure
uložit všechny události související se zabezpečením, jako je například přihlášení, uživatel root akcí, a výstup z pluggable authentication modules (PAM). Ubuntu a Debian používají/var/log/auth.log
, zatímco Red Hat a CentOS používají/var/log/secure
. -
/var/log/kern.log
ukládá události, chyby a protokoly varování jádra,které jsou zvláště užitečné při odstraňování vlastních jader. -
/var/log/cron
ukládá informace o naplánovaných úkolech (cron jobs)., Pomocí těchto dat ověřte, zda vaše úlohy cron úspěšně fungují.
některé aplikace také zapisují soubory protokolu do tohoto adresáře. Například webový server Apache zapisuje protokoly do adresáře/var/log/apache2
(v Debianu), zatímco MySQL zapisuje protokoly do adresáře/var/log/mysql
. Některé aplikace se také přihlašují přes syslog, což vysvětlíme v další části.
syslog
co je Syslog?
Syslog je standard pro vytváření a přenos protokolů. Slovo „syslog“ může odkazovat na některý z následujících.,
- služba syslog, která přijímá a zpracovává zprávy syslog. Poslouchá události vytvořením soketu umístěného na
/dev/log
, do kterého mohou aplikace zapisovat. Může psát zprávy do místního souboru nebo předávat zprávy na vzdálený server. Existují různé implementace syslog včetně rsyslogd a syslog-ng. - protokol syslog (RFC 5424), což je dopravní protokol, který určuje, jak přenášet protokoly přes síť. Je to také Formát dat definující strukturu zpráv., Ve výchozím nastavení používá port 514 pro zprávy v prostém textu a port 6514 pro šifrované zprávy.
- zpráva syslog, což je jakýkoli protokol formátovaný ve formátu zprávy syslog. Zpráva syslog se skládá ze standardizované záhlaví a zprávy obsahující obsah protokolu.
vzhledem k tomu, že syslog může přeposílat zprávy na vzdálené servery, často se používá k předávání systémových protokolů řešením pro správu protokolů, jako jsou SolarWinds® Loggly® a SolarWinds Papertrail™.
Formát syslogu a pole
zprávy syslogu obsahují standardizovanou záhlaví s několika poli., Patří mezi ně časové razítko, název aplikace, která generovala událost, umístění v systému, kde zpráva vznikla, a její priorita. Tento formát můžete změnit v konfiguračním souboru implementace syslogu, ale pomocí standardního formátu usnadňuje analýzu, analýzu a trasu událostí syslog.
zde je příklad zprávy protokolu pomocí výchozího formátu. Je to od démona sshd, který ovládá vzdálené přihlášení do systému., Tato zpráva popisuje neúspěšný pokus o přihlášení:
Jun 4 22:14:15 server1 sshd : Failed password for root from 10.0.2.2 port 22 ssh2
<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% %msg%n
To generuje následující log:
Níže najdete popisy některých z nejčastěji používaných syslog pole při hledání a řešení problémů.
časové razítko
pole časové razítko označuje čas a datum, kdy byla zpráva vygenerována v systému, který zprávu odesílá. Příklad časové razítko se porouchá takto:
- „2019-06-05“ je Rok, Měsíc a den.
- “ T “ je požadovaný prvek pole časového razítka, oddělující datum a čas.,
- „22:14:15.003“ je 24hodinový formát času, včetně počtu milisekund (003).
- „Z“ označuje čas UTC. Namísto z By příklad mohl zahrnovat posun, například -08: 00, což znamená, že čas je kompenzován z UTC o osm hodin.
název hostitele
pole Název hostitele („server1“ ve výše uvedeném příkladu) označuje název hostitele nebo systému, který zprávu Původně odeslal.
App-Name
pole app-name („sshd:auth“ v příkladu) označuje název aplikace, která zprávu odeslala.,
Priorita
prioritní oblasti nebo pri, pro krátké („<34>“ v příkladu výše), vám řekne, jak naléhavé a závažné události. Je to kombinace dvou číselných polí: zařízení a závažnosti. Zařízení určuje typ procesu, který událost vytvořil, od 0 pro zprávy jádra po 23 pro místní aplikace. Závažnost se pohybuje v rozmezí 0-7, přičemž 0 indikuje nouzovou situaci a 7 indikuje ladicí událost.
Pri může být výstup dvěma způsoby., První je jako jediné číslo, prival, které se vypočítá jako hodnota pole zařízení vynásobená osmi, pak se výsledek přidá k hodnotě pole závažnosti: (zařízení) (8) + (závažnost). Druhým je pri-text, který bude výstup ve formátu řetězce “ zařízení.závažnost”. Druhý formát může být často snadněji čitelný a vyhledávací, ale zabírá více úložného prostoru.
protokolování pomocí Systemd
mnoho linuxových distribucí je dodáváno s systemd, což je správce procesů a služeb. Systemd implementuje vlastní logovací službu nazvanou journald, která může nahradit nebo doplnit syslog., Journald se přihlásí výrazně jiným způsobem než systemd, a proto má svou vlastní sekci v Ultimate Guide to Logging. Více informací o přihlášení přes systemd se dozvíte v sekci systemd protokolování.