Ṣakoso awọn Awọn ifiranṣẹ Wọle Labẹ Systemd Lilo Journalctl [Itọsọna Okeerẹ]


Systemd jẹ eto gige-eti ati oluṣakoso iṣẹ fun awọn eto Linux: rirọpo inem daemon ti a pinnu lati bẹrẹ awọn ilana ni afiwe ni bata eto. O ti ni atilẹyin ni bayi ni nọmba kan ti pinpin ojulowo lọwọlọwọ pẹlu Fedora, Debian, Ubuntu, OpenSuSE, Arch, RHEL, CentOS, abbl.

Ni iṣaaju lori, a ṣalaye itan lẹhin 'init' ati 'systemd'; nibiti a ti jiroro kini daemons meji naa jẹ, kilode ti ‘init’ imọ-ẹrọ nilo lati paarọ rẹ pẹlu ‘systemd’ bii awọn ẹya akọkọ ti eto.

Ọkan ninu awọn anfani akọkọ ti eto lori awọn ọna init miiran ti o wọpọ ni, atilẹyin fun iṣakoso aarin ti eto ati awọn ilana gedu nipa lilo iwe iroyin. Ninu nkan yii, a yoo kọ bi a ṣe le ṣakoso ati wo awọn ifiranṣẹ log labẹ eto nipa lilo aṣẹ journalctl ni Linux.

Pataki: Ṣaaju gbigbe siwaju ninu itọsọna yii, o le fẹ kọ ẹkọ bii o ṣe le ṣakoso ati ṣẹda awọn ẹka iṣẹ tuntun ni siseto ni lilo awọn iwe afọwọkọ ikarahun ni Linux. Sibẹsibẹ, ti o ba dara pẹlu gbogbo awọn loke, tẹsiwaju kika nipasẹ.

Tito leto Journald fun Gbigba Awọn ifiranṣẹ Wọle Labẹ Systemd

journald jẹ daemon eyiti o ṣajọ ati kikọ awọn titẹ sii akọọlẹ lati gbogbo eto; iwọnyi jẹ awọn ifiranṣẹ bata bata, awọn ifiranṣẹ lati inu ekuro ati lati syslog tabi ọpọlọpọ awọn ohun elo ati pe o tọju gbogbo awọn ifiranṣẹ ni ipo aarin - faili iwe iroyin.

O le ṣakoso ihuwasi ti journald nipasẹ faili iṣeto aiyipada rẹ: /etc/systemd/journald.conf eyiti o jẹ ipilẹṣẹ ni akoko sakojo. Faili yii ni awọn aṣayan ti awọn iye ti o le yipada lati ba awọn ibeere ayika agbegbe rẹ jẹ.

Ni isalẹ jẹ apẹrẹ ti ohun ti faili naa dabi, ti a wo ni lilo aṣẹ ologbo.

$ 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

Akiyesi pe ọpọlọpọ awọn fifi sori ẹrọ package ati lo awọn iyokuro iṣeto ni /usr/lib/systemd/*.conf.d/ ati ṣiṣe awọn atunto akoko ṣiṣe ni a le rii ni /run/systemd/journald.conf.d/*.conf eyiti o le ma ṣe dandan lilo.

Nọmba awọn pinpin kaakiri Linux pẹlu Ubuntu ati pe o jẹ awọn itọsẹ bii Mint Linux ko ṣe mu ifipamọ titọju awọn ifiranṣẹ bata lori disiki nipasẹ aiyipada.

O ṣee ṣe lati jẹki eyi nipa siseto aṣayan\"Ibi ipamọ" si\"jubẹẹlo" bi a ṣe han ni isalẹ. Eyi yoo ṣẹda itọsọna/var/log/iwe akọọlẹ ati gbogbo awọn faili akọọlẹ yoo wa ni fipamọ labẹ rẹ.

$ sudo vi /etc/systemd/journald.conf 
OR
$ sudo nano /etc/systemd/journald.conf 
[Journal]
Storage=persistent

Fun awọn eto afikun, wa itumọ gbogbo awọn aṣayan eyiti o yẹ ki o tunto labẹ apakan “[Iwe akọọlẹ]” nipa titẹ.

$ man journald.conf

Fun iṣakoso log igbẹkẹle labẹ eto nipa lilo iṣẹ iwe akọọlẹ, rii daju pe awọn eto akoko pẹlu agbegbe aago jẹ deede lori eto naa.

Lati le wo ọjọ ati lọwọlọwọ eto lọwọlọwọ lori eto rẹ, tẹ.

$ 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

Lati ṣeto agbegbe to tọ ati ṣeeṣe akoko eto, lo awọn aṣẹ ni isalẹ.

$ sudo timedatectl set-timezone  Africa/Kampala
$ sudo timedatectl set-time “13:50:00”

journalctl jẹ ohun elo ti a lo lati wo awọn akoonu ti iwe-akọọlẹ eto (eyiti a kọ nipasẹ iṣẹ akọọlẹ).

Lati fihan gbogbo awọn àkọọlẹ ti a kojọ laisi asẹ eyikeyi, tẹ.

$ 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

O le ṣe afihan atokọ ti awọn nọmba bata (ibatan si bata lọwọlọwọ), awọn ID wọn, ati awọn akoko akoko ti ifiranṣẹ akọkọ ati ikẹhin ti o baamu pẹlu bata pẹlu aṣayan --list-boot .

$ 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 

Lati wo awọn titẹ sii iwe akọọlẹ lati bata lọwọlọwọ (nọmba 0), lo -b bii bii (kanna bii iṣapẹẹrẹ apẹẹrẹ loke).

$ journalctl -b

ati lati wo iwe iroyin lati bata ti tẹlẹ, lo -1 itọka ibatan pẹlu aṣayan -b bi isalẹ.

$ journalctl -b -1

Ni omiiran, lo ID bata bi eleyi.

$ journalctl -b 9fb590b48e1242f58c2579defdbbddc9

Lati lo akoko ni ọna kika Universal Universal Time (UTC), ṣafikun awọn aṣayan --utc bi atẹle.

$ journalctl --utc

Lati wo gbogbo awọn titẹ sii lati ọjọ ati akoko kan pato, fun apẹẹrẹ. Okudu 15th, 2017 ni 8: 15 AM, tẹ aṣẹ yii.

$ journalctl --since "2017-06-15 08:15:00"
$ journalctl --since today
$ journalctl --since yesterday

Lati wo awọn ifiranṣẹ wọle aipẹ (10 nipa aiyipada), lo Flag -n bi a ṣe han ni isalẹ.

$ journalctl -n
$ journalctl -n 20 

Lati wo awọn ifiranṣẹ ekuro nikan, ti o jọra si aṣẹ aṣẹ dmesg, o le lo asia -k .

$ journalctl -k 
$ journalctl -k -b 
$ journalctl -k -b 9fb590b48e1242f58c2579defdbbddc9

Lati le wo gbogbo awọn titẹ sii iwe akọọlẹ fun apakan kan, lo iyipada -u bi atẹle.

$ journalctl -u apache2.service

Lati odo si isalẹ bata lọwọlọwọ, tẹ aṣẹ yii.

$ journalctl -b -u apache2.service

Lati fihan awọn akọọlẹ lati bata ti tẹlẹ, lo eyi.

$ journalctl -b -1 -u apache2.service

Ni isalẹ wa diẹ ninu awọn ofin to wulo:

$ journalctl -u apache2.service  
$ journalctl -u apache2.service --since today
$ journalctl -u apache2.service -u nagios.service --since yesterday

Lati wo awọn àkọọlẹ ti ipilẹṣẹ nipasẹ ilana kan pato, ṣọkasi PID bi eleyi.

$ journalctl _PID=19487
$ journalctl _PID=19487 --since today
$ journalctl _PID=19487 --since yesterday

Lati wo awọn akọọlẹ ti ipilẹṣẹ nipasẹ olumulo kan tabi ẹgbẹ kan, ṣafihan pe o jẹ olumulo tabi ID ẹgbẹ bi eleyi.

$ journalctl _UID=1000
$ journalctl _UID=1000 --since today
$ journalctl _UID=1000 -b -1 --since today

Lati ṣe afihan gbogbo awọn akọọlẹ ti ipilẹṣẹ nipasẹ faili kan (o ṣee ṣe ṣiṣe), gẹgẹ bi pipaṣẹ D-Bus tabi awọn alaṣẹ ṣiṣe bash, tẹ ni rọọrun.

$ journalctl /usr/bin/dbus-daemon
$ journalctl /usr/bin/bash

O tun le ṣe àlẹmọ iṣẹjade ti o da lori awọn ayo ifiranṣẹ tabi awọn sakani pataki ni lilo asia -p . Awọn iye ti o le ṣee ṣe ni:

$ journalctl -p err

Lati ṣalaye ibiti, lo ọna kika ni isalẹ (farahan si ikilọ).

$ journalctl -p 1..4
OR
$ journalctl -p emerg..warning

O le fẹrẹ wo awọn akọọlẹ bi wọn ti n kọ pẹlu aṣayan -f (iru si iṣẹ iru -f).

$ journalctl -f

Ti o ba fẹ ṣakoso ọna kika iṣẹjade ti awọn titẹ sii akọọlẹ, ṣafikun Flag -o ki o lo awọn aṣayan wọnyi: ologbo, okeere, json, json-lẹwa, json-sse, kukuru, kukuru-iso, kukuru-monotonic, kuru-kongẹ ati verbose (ṣayẹwo itumọ awọn aṣayan ninu oju-iwe ọkunrin naa:

Aṣayan ologbo fihan ifiranṣẹ gangan ti titẹsi iwe akọọlẹ kọọkan laisi metadata eyikeyi (timestamp ati bẹbẹ lọ).

$ journalctl -b -u apache2.service -o cat

Lati ṣayẹwo faili iwe akọọlẹ fun aitasera ti inu, lo aṣayan --veVE . Ti gbogbo rẹ ba dara, iṣẹjade yẹ ki o tọka PASS kan.

$ 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

O tun le ṣe afihan lilo disiki lọwọlọwọ ti gbogbo awọn faili akọọlẹ pẹlu awọn aṣayan -disk-lilo . O ṣe afihan iye ti lilo disiki ti gbogbo iwe ati awọn faili iwe akọọlẹ ti n ṣiṣẹ:

$ journalctl --disk-usage

Lati paarẹ awọn faili akọọlẹ atijọ (ti a fipamọ sinu) ṣiṣe awọn ofin ni isalẹ:

$ 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

Ni ikẹhin ṣugbọn ko kere ju, o le paṣẹ fun journald lati yi awọn faili akọọlẹ pẹlu iyipo --rotate . Akiyesi pe itọsọna yii ko pada titi ti iṣẹ yiyi yoo fi pari:

$ sudo journalctl --rotate

Fun itọsọna lilo jinlẹ ati awọn aṣayan, wo oju-iwe eniyan journalctl bi atẹle.

$ man journalctl

Ma ṣayẹwo diẹ ninu awọn nkan to wulo.

  1. Ṣiṣakoso ilana Ibẹrẹ Eto ati Awọn Iṣẹ (SysVinit, Systemd and Upstart)
  2. Petiti - Ohun elo Ṣiṣayẹwo Wọle Orisun Ṣiṣii fun Linux SysAdmins
  3. Bii o ṣe le Ṣeto ati Ṣakoso Yiyi Wọle Lilo Logrotate ni Linux
  4. lnav - Wo ati Ṣe itupalẹ Awọn àkọọlẹ Apache lati Terminal Linux kan

Iyẹn ni fun bayi. Lo awọn esi lati isalẹ lati beere eyikeyi ibeere tabi ṣafikun awọn ero lori koko yii.