Како пронаћи разлог поновног покретања Линука?

Често се дешава да откријемо да се Линук систем поново покренуо на непланиран начин или из непознатих очигледних разлога. Проналажење и решавање основног узрока може помоћи у спречавању понављања таквих проблема и избегавању непланираних застоја.

Постоји неколико начина на које можемо да сазнамо шта је изазвало поновно покретање. У овом чланку ћемо разговарати о тим начинима и о томе како можете да користите доступне услужне програме и евиденције у Линук систему да бисте решили такве сценарије.

Проверите време поновног покретања

Можете да проверите када је дошло до поновног покретања система са ко и последњим командама

$ who -b
system boot 2021-02-13 20:51

$ last -x | head | tac
abhishek pts/0 192.168.1.16 Sat Feb 13 19:53 - 19:55 (00:02)
reboot system boot 3.10.0-1160.11.1 Sat Feb 13 19:55 - 20:54 (00:58)
runlevel (to lvl 3) 3.10.0-1160.11.1 Sat Feb 13 19:55 - 20:04 (00:08)
abhishek pts/0 192.168.1.16 Sat Feb 13 19:56 - 20:04 (00:07)
reboot system boot 3.10.0-1160.11.1 Sat Feb 13 20:04 - 20:54 (00:49)
runlevel (to lvl 3) 3.10.0-1160.11.1 Sat Feb 13 20:04 - 20:51 (00:46)
abhishek pts/0 192.168.1.16 Sat Feb 13 20:04 - 20:50 (00:46)
reboot system boot 3.10.0-1160.11.1 Sat Feb 13 20:51 - 20:54 (00:03)
runlevel (to lvl 3) 3.10.0-1160.11.1 Sat Feb 13 20:51 - 20:54 (00:02)
abhishek pts/0 192.168.1.16 Sat Feb 13 20:51 still logged in
$

Проверите системске поруке

Можете даље да повежете поновно покретање које желите да дијагностикујете са системским порукама.

За ЦентОС/РХЕЛ системе, евиденције ћете пронаћи на /вар/лог/мессагес, док се за Убунту/Дебиан системе евидентирају на /вар/лог/сислог. Можете једноставно користити команду таил или свој омиљени уређивач текста да бисте филтрирали или пронашли одређене податке.

Као што се може закључити из евиденције у наставку, такви уноси сугеришу искључивање/поновно покретање које је покренуо администратор или роот корисник. Ове поруке могу да варирају у зависности од типа ОС-а и начина на који се покреће поновно покретање/гашење, али увек ћете пронаћи корисне информације гледајући системске евиденције, иако можда неће бити довољно експлицитне да бисте сваки пут одредили узрок.

Feb 13 19:56:20 centos7vm chronyd[637]: Source 72.30.35.89 replaced with 142.147.92.5
Feb 13 20:00:40 centos7vm chronyd[637]: Selected source 162.159.200.123
Feb 13 20:01:01 centos7vm systemd: Created slice User Slice of root.
Feb 13 20:01:01 centos7vm systemd: Started Session 2 of user root.
Feb 13 20:04:09 centos7vm systemd-logind: System is powering down.
Feb 13 20:04:09 centos7vm systemd: Closed LVM2 poll daemon socket.
Feb 13 20:04:09 centos7vm systemd: Stopped target Multi-User System.

Једна таква команда коју можете користити за филтрирање системских дневника је дата у наставку:

sudo grep -iv ': starting|kernel: .*: Power Button|watching system buttons|Stopped Cleaning Up|Started Crash recovery kernel' 
  /var/log/messages /var/log/syslog /var/log/apcupsd* 
  | grep -iw 'recover[a-z]*|power[a-z]*|shut[a-z ]*down|rsyslogd|ups'

Снимљени догађаји можда нису увек специфични. Увек пратите догађаје који дају знаке упозорења или грешке које могу довести до искључивања/пада система.

  Како проширити складиште Ксбок Сериес Кс|С

Верифи аудитд Логс

За системе са аудитд-ом, то је одлично место за проверу различитих догађаја помоћу аусеарцх алата. Користите наредбу испод да проверите последња два уноса из евиденције ревизије.

$ sudo ausearch -i -m system_boot,system_shutdown | tail -4

Ово ће извести два последња искључивања или поновног покретања. Ако ово пријави СИСТЕМ_СХУТДОВН праћено СИСТЕМ_БООТ, све би требало да буде добро. Али, ако пријављује две СИСТЕМ_БООТ линије заредом или само једну СИСТЕМ_БООТ линију, онда се највероватније систем није искључио грациозно. Нормалан излаз би требао бити нешто попут доле:

$ sudo ausearch -i -m system_boot,system_shutdown | tail -4
----
type=SYSTEM_SHUTDOWN msg=audit(Saturday 13 February 2021 A.852:8) : pid=621 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success'
----
type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.368:8) : pid=622 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success'
$

У доњем излазу су наведене две узастопне СИСТЕМ_БООТ поруке, које могу указивати на неприкладно гашење, иако је потребно повезати са системским евиденцијама.

$ sudo ausearch -i -m system_boot,system_shutdown | tail -4
----
type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.852:8) : pid=621 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success'
----
type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.368:8) : pid=622 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success'
$

Анализирајте системд часопис

Требало би да имате трајни системски дневник да бисте задржали трајни дневник на диску, иначе се евиденција неће задржати након поновног покретања. За ово можете да извршите промене у /етц/системд/јоурналд.цонф или да сами креирате директоријум помоћу следећих команди:

$ sudo mkdir /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal 2>/dev/null
$ sudo systemctl -s SIGUSR1 kill systemd-journald

Када завршите, опционо можете поново покренути систем да бисте ухватили више од једног уноса за поновно покретање у дневник, иако то није потребно.

  4 начина да користите нову опцију „Сачувај“ на Фејсбуку

Користите доњу команду да бисте навели евидентиране покретања из дневника:

$ journalctl --list-boots

Ево његовог излаза на мом серверу:

$ journalctl --list-boots
-15 8a7c8034da804ebb9cb063a7553ed0bf Wed 2020-11-18 23:09:05 IST—Wed 2020-11-18 23:17:10 IST
-14 7bbb9542778a4057a91b9d22fcf91735 Wed 2020-11-18 23:17:22 IST—Wed 2020-11-18 23:20:08 IST
-13 f2ee8a61bf4c4f67a12e012855d8b1c3 Wed 2020-11-18 23:20:17 IST—Wed 2020-11-18 23:23:01 IST
-12 1277d19a959f4c33ba944a68c5874d2a Fri 2020-12-11 10:32:44 IST—Fri 2020-12-11 10:43:39 IST
-11 eb4ff97f112445888a5946d1155de1b8 Fri 2020-12-11 10:43:55 IST—Fri 2020-12-11 10:48:18 IST
-10 bf46eff3f9a344d2b28a03ffbf7fff32 Fri 2020-12-11 19:04:30 IST—Fri 2020-12-11 19:31:01 IST
 -9 2acf08368667423c89086579f98efd82 Tue 2020-12-15 17:36:52 IST—Tue 2020-12-15 19:13:10 IST
 -8 b826f223a67d454b94d4413678870f08 Sat 2020-12-19 00:31:54 IST—Sat 2020-12-19 00:44:52 IST
 -7 011e1b29339041b0ae48bbb93fce792f Wed 2020-12-23 23:01:15 IST—Wed 2020-12-23 23:02:44 IST
 -6 f41f5880572e4394938c6dcb4a8b683c Mon 2020-12-28 16:54:11 IST—Mon 2020-12-28 22:54:22 IST
 -5 a2e638dc292a4db2b0a50dd442129c28 Tue 2020-12-29 17:02:16 IST—Tue 2020-12-29 19:39:38 IST
 -4 f6c738df872a48d48daee1962727cca5 Wed 2020-12-30 19:09:30 IST—Wed 2020-12-30 19:20:23 IST
 -3 c876e60ea371460b94e247b40270b18f Thu 2020-12-31 14:36:07 IST—Thu 2020-12-31 15:45:36 IST
 -2 a23c70804ec243f7868c18737f4b7e55 Sat 2021-02-13 20:09:30 IST—Sat 2021-02-13 20:10:44 IST
 -1 94b604a6bf75462dac8c4a4576fdc863 Sat 2021-02-13 20:10:59 IST—Sat 2021-02-13 20:23:18 IST
  0 3ff7e29fa0a34878b7574b7d4d3ccfb5 Sat 2021-02-13 20:24:57 IST—Sat 2021-02-13 21:13:15 IST
$

Као што видите, листа траје неколико чизама. Да бисте даље анализирали одређено поновно покретање, користите:

$ journalctl -b {num} -n

Овде ће {нум} бити индекс дат у команди јоурналцтл –лист-боотс у првој колони.

$ journalctl -b -1 -n
-- Logs begin at Wed 2020-11-18 23:09:05 IST, end at Sat 2021-02-13 21:13:39 IST. --
Feb 13 20:23:18 ubuntumate20vm systemd[1]: lvm2-monitor.service: Succeeded.
Feb 13 20:23:18 ubuntumate20vm systemd[1]: Stopped Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling.
Feb 13 20:23:18 ubuntumate20vm systemd[1]: Reached target Shutdown.
Feb 13 20:23:18 ubuntumate20vm systemd[1]: Reached target Final Step.
Feb 13 20:23:18 ubuntumate20vm systemd[1]: systemd-poweroff.service: Succeeded.
Feb 13 20:23:18 ubuntumate20vm systemd[1]: Finished Power-Off.
Feb 13 20:23:18 ubuntumate20vm systemd[1]: Reached target Power-Off.
Feb 13 20:23:18 ubuntumate20vm systemd[1]: Shutting down.
Feb 13 20:23:18 ubuntumate20vm systemd-shutdown[1]: Syncing filesystems and block devices.
Feb 13 20:23:18 ubuntumate20vm systemd-journald[304]: Journal stopped
$

Можете да посматрате поруке евидентиране у дневнику у горњем излазу и да уђете у траг аномалијама ако их има.

  Желите да гледате Супер Бовл 2024. бесплатно? Пробајте Парамоунт Плус

Закључак

Можда неће увек бити могуће утврдити узрок поновног покретања Линук-а помоћу једне команде или из једне датотеке евиденције. Као такав, увек је згодно знати команде и евиденције које бележе системске догађаје и могу скратити време потребно за проналажење основног узрока.

Горе наведени примери пружају вам почетно место за почетак решавања проблема. Користећи комбинацију таквих алата и евиденција, можете бити сигурни да знате шта се догодило и како се ваш систем поново покренуо.

Затим сазнајте неке од софтвера за праћење мале тежине за Линук.