Hafa umsjón með annálsskilaboðum undir Systemd með því að nota Journalctl [Alhliða handbók]
Systemd er háþróaður kerfis- og þjónustustjóri fyrir Linux kerfi: init-púkaskipti sem ætlað er að hefja ferla samhliða við ræsingu kerfisins. Það er nú stutt í fjölda núverandi almennra dreifingar, þar á meðal Fedora, Debian, Ubuntu, OpenSuSE, Arch, RHEL, CentOS osfrv.
Áðan útskýrðum við söguna á bak við 'init' og 'systemd'; þar sem við ræddum hvað púkarnir tveir eru, hvers vegna tæknilega þurfti að skipta út 'init' fyrir 'systemd' sem og helstu eiginleika systemd.
Einn helsti kostur systemd umfram önnur algeng init kerfi er stuðningur við miðstýrða stjórnun á kerfis- og ferlaskráningu með því að nota dagbók. Í þessari grein munum við læra hvernig á að stjórna og skoða logskilaboð undir systemd með journalctl skipuninni í Linux.
Mikilvægt: Áður en þú ferð lengra í þessari handbók gætirðu viljað læra hvernig á að stjórna því að búa til og keyra nýjar þjónustueiningar í systemd með því að nota skeljaforskriftir í Linux. Hins vegar, ef þú ert í lagi með allt ofangreint, haltu áfram að lesa í gegnum.
Stilla dagbók til að safna annálsskilaboðum undir Systemd
journald er púki sem safnar og skrifar dagbókarfærslur úr öllu kerfinu; þetta eru í raun ræsiskilaboð, skilaboð frá kjarna og frá syslog eða ýmsum forritum og það geymir öll skilaboðin á miðlægum stað - dagbókarskrá.
Þú getur stjórnað hegðun journald í gegnum sjálfgefna stillingarskrá þess: /etc/systemd/journald.conf sem er búin til við þýðingu. Þessi skrá inniheldur valmöguleika sem þú getur breytt gildum þeirra til að passa við staðbundnar kröfur þínar.
Hér að neðan er sýnishorn af því hvernig skráin lítur út, skoðuð með cat skipuninni.
$ cat /etc/systemd/journald.conf
# See journald.conf(5) for details. [Journal] #Storage=auto #Compress=yes #Seal=yes #SplitMode=uid #SyncIntervalSec=5m #RateLimitInterval=30s #RateLimitBurst=1000 #SystemMaxUse= #SystemKeepFree= #SystemMaxFileSize= #SystemMaxFiles=100 #RuntimeMaxUse= #RuntimeKeepFree= #RuntimeMaxFileSize= #RuntimeMaxFiles=100 #MaxRetentionSec= #MaxFileSec=1month #ForwardToSyslog=yes #ForwardToKMsg=no #ForwardToConsole=no #ForwardToWall=yes #TTYPath=/dev/console #MaxLevelStore=debug #MaxLevelSyslog=debug #MaxLevelKMsg=notice #MaxLevelConsole=info #MaxLevelWall=emerg
Athugaðu að ýmsar pakkauppsetningar og notkun stillingarútdráttar í /usr/lib/systemd/*.conf.d/ og keyrslutímastillingar er að finna í /run/systemd/journald.conf.d/*.conf sem þú ert ekki endilega nota.
Nokkrar Linux dreifingar, þar á meðal Ubuntu og afleiður þess eins og Linux Mint, gera sjálfgefið ekki viðvarandi geymslu ræsiskilaboða á diski kleift.
Það er hægt að virkja þetta með því að stilla \Geymsla valkostinn á \viðvarandi eins og sýnt er hér að neðan. Þetta mun búa til /var/log/journal möppuna og allar dagbókarskrár verða geymdar undir henni.
$ sudo vi /etc/systemd/journald.conf OR $ sudo nano /etc/systemd/journald.conf
[Journal] Storage=persistent
Fyrir frekari stillingar, finndu merkingu allra valkosta sem eiga að vera stilltir undir „[Journal]“ hlutanum með því að slá inn.
$ man journald.conf
Fyrir áreiðanlega annálastjórnun undir systemd með því að nota dagbókarþjónustu, vertu viss um að tímastillingar, þar á meðal tímabelti, séu réttar á kerfinu.
Til að skoða núverandi dagsetningar- og tímastillingar á kerfinu þínu skaltu slá inn.
$ timedatectl OR $ timedatectl status Local time: Thu 2017-06-15 13:29:09 EAT Universal time: Thu 2017-06-15 10:29:09 UTC RTC time: Thu 2017-06-15 10:29:09 Time zone: Africa/Kampala (EAT, +0300) Network time on: yes NTP synchronized: yes RTC in local TZ: no
Notaðu skipanirnar hér að neðan til að stilla rétt tímabelti og hugsanlega kerfistíma.
$ sudo timedatectl set-timezone Africa/Kampala $ sudo timedatectl set-time “13:50:00”
journalctl er tól sem er notað til að skoða innihald systemd dagbókarinnar (sem er skrifað af journald þjónustu).
Til að sýna alla safnaða annála án síunar skaltu slá inn.
$ journalctl
-- Logs begin at Wed 2017-06-14 21:56:43 EAT, end at Thu 2017-06-15 12:28:19 EAT Jun 14 21:56:43 tecmint systemd-journald[336]: Runtime journal (/run/log/journal Jun 14 21:56:43 tecmint kernel: Initializing cgroup subsys cpuset Jun 14 21:56:43 tecmint kernel: Initializing cgroup subsys cpu Jun 14 21:56:43 tecmint kernel: Initializing cgroup subsys cpuacct Jun 14 21:56:43 tecmint kernel: Linux version 4.4.0-21-generic ([email ) Jun 14 21:56:43 tecmint kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21- Jun 14 21:56:43 tecmint kernel: KERNEL supported cpus: Jun 14 21:56:43 tecmint kernel: Intel GenuineIntel Jun 14 21:56:43 tecmint kernel: AMD AuthenticAMD Jun 14 21:56:43 tecmint kernel: Centaur CentaurHauls Jun 14 21:56:43 tecmint kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2] Jun 14 21:56:43 tecmint kernel: x86/fpu: Supporting XSAVE feature 0x01: 'x87 flo Jun 14 21:56:43 tecmint kernel: x86/fpu: Supporting XSAVE feature 0x02: 'SSE reg Jun 14 21:56:43 tecmint kernel: x86/fpu: Supporting XSAVE feature 0x04: 'AVX reg Jun 14 21:56:43 tecmint kernel: x86/fpu: Enabled xstate features 0x7, context si Jun 14 21:56:43 tecmint kernel: x86/fpu: Using 'eager' FPU context switches. Jun 14 21:56:43 tecmint kernel: e820: BIOS-provided physical RAM map: Jun 14 21:56:43 tecmint kernel: BIOS-e820: [mem 0x0000000000000000-0x00000000000 Jun 14 21:56:43 tecmint kernel: BIOS-e820: [mem 0x0000000000090000-0x00000000000 Jun 14 21:56:43 tecmint kernel: BIOS-e820: [mem 0x0000000000100000-0x000000001ff Jun 14 21:56:43 tecmint kernel: BIOS-e820: [mem 0x0000000020000000-0x00000000201 Jun 14 21:56:43 tecmint kernel: BIOS-e820: [mem 0x0000000020200000-0x00000000400
Þú getur sýnt lista yfir ræsinúmer (miðað við núverandi ræsingu), auðkenni þeirra og tímastimpla fyrstu og síðustu skilaboðanna sem samsvara ræsingunni með --list-boots
valkostinum.
$ journalctl --list-boots -1 9fb590b48e1242f58c2579defdbbddc9 Thu 2017-06-15 16:43:36 EAT—Thu 2017-06-15 1 0 464ae35c6e264a4ca087949936be434a Thu 2017-06-15 16:47:36 EAT—Thu 2017-06-15 1
Til að skoða dagbókarfærslurnar frá núverandi ræsingu (númer 0), notaðu -b
rofann svona (sama og sýnishornið hér að ofan).
$ journalctl -b
og til að sjá dagbók frá fyrri ræsingu, notaðu -1
hlutfallslegan bendilinn með -b
valkostinum eins og hér að neðan.
$ journalctl -b -1
Að öðrum kosti skaltu nota ræsikennið eins og þetta.
$ journalctl -b 9fb590b48e1242f58c2579defdbbddc9
Til að nota tíma á UTC-sniði (Coordinated Universal Time) skaltu bæta --utc
við valmöguleikunum á eftirfarandi hátt.
$ journalctl --utc
Til að sjá allar færslur frá tiltekinni dagsetningu og tíma, t.d. 15. júní 2017 kl. 8:15, sláðu inn þessa skipun.
$ journalctl --since "2017-06-15 08:15:00" $ journalctl --since today $ journalctl --since yesterday
Til að skoða nýleg annálsskilaboð (10 sjálfgefið), notaðu -n
fánann eins og sýnt er hér að neðan.
$ journalctl -n $ journalctl -n 20
Til að sjá aðeins kjarnaskilaboð, svipað og dmesg skipunarúttakið, geturðu notað -k
fánann.
$ journalctl -k $ journalctl -k -b $ journalctl -k -b 9fb590b48e1242f58c2579defdbbddc9
Til að geta skoðað allar dagbókarfærslur fyrir tiltekna einingu, notaðu -u
rofann sem hér segir.
$ journalctl -u apache2.service
Til að núllstilla í núverandi ræsingu skaltu slá inn þessa skipun.
$ journalctl -b -u apache2.service
Notaðu þetta til að sýna logs frá fyrri ræsingu.
$ journalctl -b -1 -u apache2.service
Hér að neðan eru nokkrar aðrar gagnlegar skipanir:
$ journalctl -u apache2.service $ journalctl -u apache2.service --since today $ journalctl -u apache2.service -u nagios.service --since yesterday
Til að skoða annála sem myndast af tilteknu ferli, tilgreindu PID þess eins og þetta.
$ journalctl _PID=19487 $ journalctl _PID=19487 --since today $ journalctl _PID=19487 --since yesterday
Til að skoða annála sem myndast af tilteknum notanda eða hópi skaltu tilgreina notanda- eða hópauðkenni hans eins og þetta.
$ journalctl _UID=1000 $ journalctl _UID=1000 --since today $ journalctl _UID=1000 -b -1 --since today
Til að sýna alla annála sem myndast af skrá (hugsanlega keyrslu), eins og D-Bus keyrsluna eða bash keyrsluna, einfaldlega sláðu inn.
$ journalctl /usr/bin/dbus-daemon $ journalctl /usr/bin/bash
Þú getur líka síað úttak byggt á forgangsröðun skilaboða eða forgangssviðum með því að nota -p
fánann. Möguleg gildi eru: 0 – koma fram, 1 – viðvörun, 2 – crit, 3 – villa, 4 – viðvörun, 5 – tilkynning, 6 – upplýsingar, 7 – villuleit):
$ journalctl -p err
Til að tilgreina svið, notaðu sniðið hér að neðan (kom til viðvörunar).
$ journalctl -p 1..4 OR $ journalctl -p emerg..warning
Þú getur nánast horft á annála þegar þeir eru skrifaðir með -f
valkostinum (svipað og tail -f virkni).
$ journalctl -f
Ef þú vilt stjórna úttakssniði dagbókarfærslna skaltu bæta við -o
fánanum og nota þessa valkosti: cat, export, json, json-pretty, json-sse, short, short-iso, stutt-eintóna, stutt-nákvæm og margorð(athugaðu merkingu valkosta á mansíðunni:
Kattavalkosturinn sýnir raunveruleg skilaboð hverrar dagbókarfærslu án nokkurra lýsigagna (tímastimpil og svo framvegis).
$ journalctl -b -u apache2.service -o cat
Til að athuga hvort innra samræmi sé í dagbókarskránni, notaðu --verify
valkostinn. Ef allt er í lagi ætti úttakið að gefa til kynna PASS.
$ journalctl --verify PASS: /run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/system.journal 491f68: Unused data (entry_offset==0) PASS: /run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/[email 9866c3d4d.journal PASS: /run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/[email 5d8945a9e.journal PASS: /run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/[email 1becab02f.journal PASS: /run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/[email 01cfcedff.journal
Þú getur líka sýnt núverandi disknotkun allra dagbókarskráa með --disk-notkun
valkostunum. Það sýnir summan af disknotkun allra geymdra og virkra dagbókarskráa:
$ journalctl --disk-usage
Til að eyða gömlum (geymdum) dagbókarskrám skaltu keyra skipanirnar hér að neðan:
$ sudo journalctl --vacuum-size=50M #delete files until the disk space they use falls below the specified size $ sudo journalctl --vacuum-time=1years #delete files so that all journal files contain no data older than the specified timespan $ sudo journalctl --vacuum-files=4 #delete files so that no more than the specified number of separate journal files remain in storage location
Síðast en ekki síst geturðu gefið journald fyrirmæli um að snúa dagbókarskrám með --rotate
valkostinum. Athugaðu að þessi tilskipun kemur ekki aftur fyrr en snúningsaðgerðinni er lokið:
$ sudo journalctl --rotate
Fyrir ítarlega notkunarleiðbeiningar og valkosti, skoðaðu journalctl man síðuna sem hér segir.
$ man journalctl
Skoðaðu nokkrar gagnlegar greinar.
- Stjórna kerfisræsingarferli og þjónustu (SysVinit, Systemd og Upstart)
- Petiti – Opinn uppspretta annálagreiningartól fyrir Linux SysAdmins
- Hvernig á að setja upp og stjórna snúningi annála með því að nota Logrotate í Linux
- lnav – Horfðu á og greindu Apache logs frá Linux flugstöð
Það er það í bili. Notaðu endurgjöfina að neðan til að spyrja spurninga eða bæta við skoðunum þínum um þetta efni.