ຈັດການຂໍ້ຄວາມບັນທຶກພາຍໃຕ້ລະບົບທີ່ໃຊ້ລະບົບ Journalctl [ຄູ່ມືທີ່ສົມບູນແບບ]
Systemd ແມ່ນລະບົບການຕັດຕໍ່ແລະຜູ້ຈັດການບໍລິການ ສຳ ລັບລະບົບ Linux: ການທົດແທນ daemon ເລີ່ມຕົ້ນທີ່ມີຈຸດປະສົງເພື່ອເລີ່ມຕົ້ນຂັ້ນຕອນຕ່າງໆໃນຂະຫນານທີ່ boot system. ປະຈຸບັນມັນໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ໃນການແຈກຢາຍກະແສຫຼັກຫຼາຍຢ່າງລວມທັງ Fedora, Debian, Ubuntu, OpenSuSE, Arch, RHEL, CentOS, ແລະອື່ນໆ.
ກ່ອນ ໜ້າ ນີ້, ພວກເຮົາໄດ້ອະທິບາຍເລື່ອງທີ່ຢູ່ເບື້ອງຫຼັງ ‘init’ ແລະ ‘systemd’; ບ່ອນທີ່ພວກເຮົາໄດ້ສົນທະນາກັນວ່າສອງ daemons ແມ່ນຫຍັງ, ເປັນຫຍັງ 'init' ທີ່ຕ້ອງການທາງດ້ານເຕັກນິກເພື່ອທົດແທນດ້ວຍ 'systemd' ພ້ອມທັງຄຸນລັກສະນະຫຼັກຂອງ systemd.
ໜຶ່ງ ໃນບັນດາຂໍ້ໄດ້ປຽບຕົ້ນຕໍຂອງລະບົບທີ່ຢູ່ ເໜືອ ລະບົບລິເລີ່ມອື່ນໆທົ່ວໄປແມ່ນການສະ ໜັບ ສະ ໜູນ ການຄຸ້ມຄອງສູນກາງຂອງລະບົບແລະປຸງແຕ່ງການຕັດໄມ້ໂດຍໃຊ້ວາລະສານ ໃນບົດຂຽນນີ້, ພວກເຮົາຈະຮຽນຮູ້ວິທີການຈັດການແລະເບິ່ງຂໍ້ຄວາມ log ພາຍໃຕ້ລະບົບທີ່ໃຊ້ ຄຳ ສັ່ງວາລະສານໃນ Linux.
ສິ່ງ ສຳ ຄັນ: ກ່ອນທີ່ຈະກ້າວຕໍ່ໄປໃນຄູ່ມືນີ້, ທ່ານອາດຈະຕ້ອງການຮຽນຮູ້ວິທີການຈັດການສ້າງແລະ ດຳ ເນີນການ ໜ່ວຍ ບໍລິການ ໃໝ່ ໃນ systemd ໂດຍ ນຳ ໃຊ້ shell shell ໃນ Linux. ເຖິງຢ່າງໃດກໍ່ຕາມ, ຖ້າທ່ານບໍ່ເປັນຫຍັງກັບທັງ ໝົດ ຂ້າງເທິງ, ສືບຕໍ່ອ່ານຕໍ່.
ການ ກຳ ຫນົດຄ່າວາລະສານ ສຳ ລັບການລວບລວມຂໍ້ຄວາມບັນທຶກພາຍໃຕ້ລະບົບ
journald ແມ່ນ daemon ທີ່ລວບລວມແລະຂຽນລາຍການວາລະສານຈາກທຸກລະບົບ; ເຫຼົ່ານີ້ແມ່ນຂໍ້ຄວາມທີ່ ຈຳ ເປັນ, ຂໍ້ຄວາມຈາກແກ່ນແລະຈາກ syslog ຫຼືໂປແກຼມຕ່າງໆແລະມັນເກັບຂໍ້ຄວາມທັງ ໝົດ ໄວ້ໃນສະຖານທີ່ສູນກາງ - ເອກະສານວາລະສານ.
ທ່ານສາມາດຄວບຄຸມພຶດຕິ ກຳ ຂອງວາລະສານຜ່ານເອກະສານການຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງມັນ: /etc/systemd/journald.conf ເຊິ່ງສ້າງຂື້ນໃນເວລາທີ່ລວບລວມ. ເອກະສານນີ້ມີຕົວເລືອກທີ່ຄຸນຄ່າຂອງທ່ານທີ່ທ່ານອາດຈະປ່ຽນເພື່ອ ເໝາະ ສົມກັບຄວາມຕ້ອງການດ້ານສິ່ງແວດລ້ອມໃນທ້ອງຖິ່ນຂອງທ່ານ.
ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງແຟ້ມເອກະສານ, ເບິ່ງໂດຍໃຊ້ ຄຳ ສັ່ງແມວ.
$ 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
ໃຫ້ສັງເກດວ່າຊຸດຕ່າງໆຕິດຕັ້ງແລະ ນຳ ໃຊ້ສານສະກັດຈາກການຕັ້ງຄ່າໃນ /usr/lib/systemd/*.conf.d/ ແລະ ດຳ ເນີນການຕັ້ງຄ່າເວລາສາມາດພົບໄດ້ໃນ /run/systemd/journald.conf.d/*.conf ເຊິ່ງທ່ານອາດຈະບໍ່ ຈຳ ເປັນ ການນໍາໃຊ້.
ການແຈກແຈງ Linux ຈຳ ນວນ ໜຶ່ງ ລວມທັງ Ubuntu ແລະມັນອະນຸພັນຄື Linux Mint ບໍ່ເຮັດໃຫ້ການເກັບຂໍ້ຄວາມ boot ຢູ່ໃນ disk ເປັນປະ ຈຳ.
ມັນເປັນໄປໄດ້ທີ່ຈະເປີດໃຊ້ງານນີ້ໂດຍການຕັ້ງຄ່າ“ ການເກັບຮັກສາ” ທາງເລືອກທີ່ຈະ“ ທົນນານ” ດັ່ງຮູບຂ້າງລຸ່ມ ນີ້ຈະສ້າງໄດເລກະທໍລີ/var/log/journal ແລະເອກະສານວາລະສານທັງ ໝົດ ຈະຖືກເກັບຢູ່ພາຍໃຕ້ມັນ.
$ sudo vi /etc/systemd/journald.conf OR $ sudo nano /etc/systemd/journald.conf
[Journal] Storage=persistent
ສຳ ລັບການຕັ້ງຄ່າເພີ່ມເຕີມ, ຊອກຫາຄວາມ ໝາຍ ຂອງຕົວເລືອກທັງ ໝົດ ທີ່ຄາດວ່າຈະຖືກປັບແຕ່ງພາຍໃຕ້ສ່ວນ“ [ວາລະສານ]” ໂດຍການພິມ.
$ man journald.conf
ສຳ ລັບການຈັດການບັນທຶກໄມ້ທີ່ ໜ້າ ເຊື່ອຖືພາຍໃຕ້ລະບົບທີ່ ນຳ ໃຊ້ການບໍລິການວາລະສານ, ຮັບປະກັນວ່າການ ກຳ ນົດເວລາລວມທັງເຂດເວລາແມ່ນຖືກຕ້ອງໃນລະບົບ.
ເພື່ອເບິ່ງການ ກຳ ນົດວັນທີແລະເວລາໃນປະຈຸບັນໃນລະບົບຂອງທ່ານ, ໃຫ້ພິມ.
$ 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
ເພື່ອ ກຳ ນົດເຂດເວລາທີ່ຖືກຕ້ອງແລະອາດຈະເປັນເວລາຂອງລະບົບ, ໃຫ້ໃຊ້ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້.
$ sudo timedatectl set-timezone Africa/Kampala $ sudo timedatectl set-time “13:50:00”
ວາລະສານແມ່ນສິ່ງປະໂຫຍດທີ່ໃຊ້ເພື່ອເບິ່ງເນື້ອໃນຂອງວາລະສານລະບົບ (ເຊິ່ງຂຽນໂດຍການບໍລິການວາລະສານ).
ເພື່ອສະແດງບັນທຶກການເກັບ ກຳ ທັງ ໝົດ ໂດຍບໍ່ມີການກັ່ນຕອງໃດໆ, ປະເພດ.
$ 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
ທ່ານສາມາດສະແດງບັນຊີຂອງເລກລະຫັດເກີບ (ທຽບກັບເກີບປັດຈຸບັນ), ບັດປະ ຈຳ ຕົວຂອງພວກເຂົາ, ແລະຕາຕະລາງເວລາຂອງຂໍ້ຄວາມ ທຳ ອິດແລະສຸດທ້າຍທີ່ສອດຄ້ອງກັບເກີບທີ່ມີທາງເລືອກ - list-boots
.
$ 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
ເພື່ອເບິ່ງລາຍການຂອງວາລະສານຈາກເກີບປັດຈຸບັນ (ໝາຍ ເລກ 0), ໃຫ້ໃຊ້ປຸ່ມ -b
ປ່ຽນແບບນີ້ (ຄືກັນກັບຜົນໄດ້ຮັບຕົວຢ່າງຂ້າງເທິງ).
$ journalctl -b
ແລະເພື່ອເບິ່ງວາລະສານຈາກເກີບທີ່ຜ່ານມາ, ໃຫ້ໃຊ້ຕົວຊີ້ທິດທາງທີ່ກ່ຽວຂ້ອງກັບ -b
ທີ່ຢູ່ຂ້າງລຸ່ມນີ້.
$ journalctl -b -1
ອີກທາງເລືອກ, ໃຊ້ລະຫັດ boot ແບບນີ້.
$ journalctl -b 9fb590b48e1242f58c2579defdbbddc9
ເພື່ອໃຊ້ເວລາໃນຮູບແບບການປະສານງານຂອງເວລາສາກົນ (UTC), ຕື່ມຕົວເລືອກ --utc
ດັ່ງຕໍ່ໄປນີ້.
$ journalctl --utc
ເພື່ອເບິ່ງລາຍການທັງ ໝົດ ນັບຕັ້ງແຕ່ມື້ແລະເວລາສະເພາະ, ເຊັ່ນ: ວັນທີ 15 ເດືອນມິຖຸນາ, 2017 ເວລາ 8:15, ພິມ ຄຳ ສັ່ງນີ້.
$ journalctl --since "2017-06-15 08:15:00" $ journalctl --since today $ journalctl --since yesterday
ເພື່ອເບິ່ງຂໍ້ຄວາມບັນທຶກທີ່ຜ່ານມາ (10 ໂດຍຄ່າເລີ່ມຕົ້ນ), ໃຫ້ໃຊ້ -n
ທຸງດັ່ງຮູບຂ້າງລຸ່ມນີ້.
$ journalctl -n $ journalctl -n 20
ເພື່ອເບິ່ງພຽງແຕ່ຂໍ້ຄວາມຂອງ kernel, ຄ້າຍຄືກັບຜົນຜະລິດ ຄຳ ສັ່ງ dmesg, ທ່ານສາມາດໃຊ້ທຸງ -k
.
$ journalctl -k $ journalctl -k -b $ journalctl -k -b 9fb590b48e1242f58c2579defdbbddc9
ເພື່ອສາມາດເບິ່ງລາຍການວາລະສານທັງ ໝົດ ສຳ ລັບຫົວ ໜ່ວຍ ໃດ ໜຶ່ງ, ໃຫ້ໃຊ້ປຸ່ມ -u
ດັ່ງຕໍ່ໄປນີ້.
$ journalctl -u apache2.service
ເພື່ອລົງສູນໃສ່ເກີບບູດປັດຈຸບັນ, ພິມ ຄຳ ສັ່ງນີ້.
$ journalctl -b -u apache2.service
ເພື່ອສະແດງບັນທຶກຈາກເກີບທີ່ຜ່ານມາ, ໃຊ້ນີ້.
$ journalctl -b -1 -u apache2.service
ຂ້າງລຸ່ມນີ້ແມ່ນບາງ ຄຳ ສັ່ງທີ່ມີປະໂຫຍດອື່ນໆ:
$ journalctl -u apache2.service $ journalctl -u apache2.service --since today $ journalctl -u apache2.service -u nagios.service --since yesterday
ເພື່ອເບິ່ງບັນທຶກທີ່ຜະລິດໂດຍຂັ້ນຕອນສະເພາະ, ໃຫ້ລະບຸວ່າມັນແມ່ນ PID ແບບນີ້.
$ journalctl _PID=19487 $ journalctl _PID=19487 --since today $ journalctl _PID=19487 --since yesterday
ເພື່ອເບິ່ງບັນທຶກທີ່ສ້າງຂື້ນໂດຍຜູ້ໃຊ້ຫຼືກຸ່ມສະເພາະ, ໃຫ້ລະບຸວ່າມັນແມ່ນຊື່ຜູ້ໃຊ້ຫລື ID ຂອງກຸ່ມແບບນີ້.
$ journalctl _UID=1000 $ journalctl _UID=1000 --since today $ journalctl _UID=1000 -b -1 --since today
ເພື່ອສະແດງບັນທຶກຂໍ້ມູນທັງ ໝົດ ທີ່ຜະລິດໂດຍແຟ້ມເອກະສານ (ອາດຈະເປັນການປະຕິບັດໄດ້), ເຊັ່ນວ່າ D-Bus executable ຫຼື bash executable, ພິມງ່າຍໆ.
$ journalctl /usr/bin/dbus-daemon $ journalctl /usr/bin/bash
ທ່ານຍັງສາມາດກັ່ນຕອງຜົນຜະລິດໂດຍອີງໃສ່ບູລິມະສິດຂໍ້ຄວາມຫລືຂອບເຂດບຸລິມະສິດໂດຍໃຊ້ -p
ທຸງ. ຄຸນຄ່າທີ່ເປັນໄປໄດ້ແມ່ນ: 0 - ການສຸກເສີນ, 1 - ການແຈ້ງເຕືອນ, 2 - ການວິຈານ, 3 - ຜິດ, 4 - ຄຳ ເຕືອນ, 5 - ແຈ້ງການ, 6 - ຂໍ້ມູນ, 7 - ຂໍ້ບົກພ່ອງ):
$ journalctl -p err
ເພື່ອ ກຳ ນົດຂອບເຂດໃດ ໜຶ່ງ, ໃຫ້ໃຊ້ຮູບແບບຂ້າງລຸ່ມນີ້ (ເຕືອນເພື່ອເຕືອນ).
$ journalctl -p 1..4 OR $ journalctl -p emerg..warning
ທ່ານສາມາດເບິ່ງຂໍ້ມູນບັນທຶກການປະຕິບັດໄດ້ທີ່ພວກເຂົາ ກຳ ລັງຂຽນດ້ວຍຕົວເລືອກ -f
(ຄ້າຍຄືກັບການເຮັດວຽກຂອງຫາງ -F).
$ journalctl -f
ຖ້າທ່ານຕ້ອງການຄວບຄຸມການຈັດຮູບແບບຜົນຜະລິດຂອງລາຍການວາລະສານ, ໃຫ້ຕື່ມທຸງ -o
ແລະໃຊ້ຕົວເລືອກເຫຼົ່ານີ້: ແມວ, ສົ່ງອອກ, json, json-pretty, json-sse, ສັ້ນ, ສັ້ນ-iso, ສັ້ນ, monotonic ສັ້ນ, ຊັດເຈນແລະ verbose (ກວດເບິ່ງຄວາມຫມາຍຂອງທາງເລືອກໃນຫນ້າຜູ້ຊາຍ:
ຕົວເລືອກແມວສະແດງຂໍ້ຄວາມຕົວຈິງຂອງແຕ່ລະວາລະສານໂດຍບໍ່ມີຂໍ້ມູນໃດໆ (ຕາຕະລາງເວລາແລະອື່ນໆ).
$ journalctl -b -u apache2.service -o cat
ເພື່ອກວດເບິ່ງເອກະສານວາລະສານ ສຳ ລັບຄວາມສອດຄ່ອງພາຍໃນ, ໃຊ້ຕົວເລືອກ - ຢັ້ງຢືນ
. ຖ້າທຸກຢ່າງດີ, ຜົນຜະລິດຄວນຊີ້ບອກ 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
ທ່ານຍັງສາມາດສະແດງການ ນຳ ໃຊ້ແຜ່ນດິຈິຕອລໃນປະຈຸບັນຂອງແຟ້ມວາລະສານທັງ ໝົດ ດ້ວຍຕົວເລືອກ - ນຳ ໃຊ້ - ໃຊ້
ມັນສະແດງຜົນລວມຂອງການ ນຳ ໃຊ້ແຜ່ນຂອງແຟ້ມເອກະສານທັງ ໝົດ ທີ່ເກັບໄວ້ແລະເຄື່ອນໄຫວ:
$ journalctl --disk-usage
ເພື່ອລຶບເອກະສານວາລະສານເກົ່າ (ເກັບໄວ້) ເຮັດວຽກຕາມ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:
$ 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
ສຸດທ້າຍ, ທ່ານສາມາດແນະ ນຳ ວາລະສານໃຫ້ຫັນເອກະສານວາລະສານດ້ວຍຕົວເລືອກ --rotate
. ຈົ່ງສັງເກດວ່າ ຄຳ ສັ່ງສະບັບນີ້ບໍ່ໄດ້ກັບມາຈົນກວ່າການ ດຳ ເນີນການ ໝູນ ວຽນສິ້ນສຸດລົງ:
$ sudo journalctl --rotate
ສຳ ລັບ ຄຳ ແນະ ນຳ ກ່ຽວກັບການ ນຳ ໃຊ້ແລະທາງເລືອກໃນຄວາມເລິກ, ເບິ່ງ ໜ້າ man journalctl ດັ່ງຕໍ່ໄປນີ້.
$ man journalctl
ຢ່າກວດເບິ່ງບາງບົດຂຽນທີ່ມີປະໂຫຍດ.
<
ນັ້ນແມ່ນ ສຳ ລັບດຽວນີ້. ໃຊ້ ຄຳ ຕິຊົມຈາກທາງລຸ່ມເພື່ອຖາມ ຄຳ ຖາມໃດໆຫຼືເພີ່ມຄວາມຄິດຂອງທ່ານໃສ່ຫົວຂໍ້ນີ້.