日志記錄了系統(tǒng)每天發(fā)生的各種各樣的事情,比如監(jiān)測(cè)系統(tǒng)狀況、排查系統(tǒng)故障等。你可以通過(guò)日志來(lái)檢查錯(cuò)誤發(fā)生的原因,或者受到攻擊時(shí)攻擊者留下的痕跡。日志的主要功能是審計(jì)和監(jiān)測(cè),還可以實(shí)時(shí)地監(jiān)測(cè)系統(tǒng)狀態(tài),監(jiān)測(cè)和追蹤侵入者等。
在RockyLinux8系統(tǒng)里,以下幾個(gè)日志默認(rèn)是不存在的,需要安裝rsyslog包,命令如下:
yuminstall-yrsyslog systemctlstartsyslog systemctl enable syslog14.8.1/var/log/messages
阿銘常查看的日志文件為/var/log/messages,它是核心系統(tǒng)日志文件,包含了系統(tǒng)啟動(dòng)時(shí)的引導(dǎo)消息,以及系統(tǒng)運(yùn)行時(shí)的其他狀態(tài)消息。I/O錯(cuò)誤、網(wǎng)絡(luò)錯(cuò)誤和其他系統(tǒng)錯(cuò)誤都會(huì)記錄到這個(gè)文件中。其他信息,比如某個(gè)人的身份切換為root,以及用戶(hù)自定義安裝的軟件(如,Apache)的日志也會(huì)在這里列出。
通常情況下,/var/log/messages是做故障診斷時(shí)首先要查看的文件。那你肯定會(huì)說(shuō),這么多日志都記錄到這個(gè)文件中,如果服務(wù)器上有很多服務(wù),豈不是這個(gè)文件很快就會(huì)寫(xiě)得很大?沒(méi)錯(cuò),但是系統(tǒng)有一個(gè)日志輪詢(xún)的機(jī)制,每星期切換一個(gè)日志,切換后的日志名字類(lèi)似于messages-20200301,會(huì)存放在/var/log/目錄下面,連同messages一共有5個(gè)這樣的日志文件。這里的20200301就是日期,它表示日志切割的年月日。這是通過(guò)logrotate工具的控制來(lái)實(shí)現(xiàn)的,它的配置文件是/etc/logrotate.conf(如果沒(méi)有特殊需求,請(qǐng)不要修改這個(gè)配置文件)。
# cat /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # system-specific logs may be also be configured here.這個(gè)配置文件里面的內(nèi)容還是很容易明白的,都帶有解釋。除了logrotate.conf外,在/etc/logrotate.d/下面還有一些子配置文件。
# ls /etc/logrotate.d bootlog btmp chrony dnf sssd syslog up2date wtmp. # cat /etc/logrotate.d/syslog /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { missingok sharedscripts postrotate /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true endscript }其中syslog就是messages日志相關(guān)的配置文件了。/var/log/messages是由rsyslogd這個(gè)守護(hù)進(jìn)程產(chǎn)生的,其服務(wù)為rsyslog.service,如果停止這個(gè)服務(wù)則系統(tǒng)不會(huì)產(chǎn)生/var/log/messages,所以這個(gè)服務(wù)不要停止。rsyslog服務(wù)的配置文件為/etc/rsyslog.conf,這個(gè)文件定義了日志的級(jí)別。若沒(méi)有特殊需求,這個(gè)配置文件是不需要修改的,詳細(xì)內(nèi)容阿銘不再闡述。如果你感興趣,請(qǐng)使用命令man rsyslog.conf獲得更多關(guān)于它的信息。
14.8.2dmesg
除了關(guān)注/var/log/messages外,你還應(yīng)該多關(guān)注一下dmesg這個(gè)命令,它可以顯示硬件(如,磁盤(pán)、網(wǎng)卡等)相關(guān)信息。如果你的某個(gè)硬件有問(wèn)題(比如網(wǎng)卡),用這個(gè)命令也是可以看到的:
# dmesg |tail [ 8.671924] RAPL PMU: hw unit of domain pp0-core 2^-0 Joules [ 8.671925] RAPL PMU: hw unit of domain package 2^-0 Joules [ 8.671926] RAPL PMU: hw unit of domain dram 2^-0 Joules [ 8.671927] RAPL PMU: hw unit of domain pp1-gpu 2^-0 Joules [ 10.555690] NET: Registered protocol family 40 [ 14.545496] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready [ 14.551791] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None [ 14.557466] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready [ 14.557477] IPv6: ADDRCONF(NETDEV_CHANGE): ens33: link becomes ready [ 4202.922934] hrtimer: interrupt took 19983639 ns14.8.3安全日志
關(guān)于安全方面的日志,阿銘簡(jiǎn)單介紹幾個(gè)命令或者日志。
last命令用來(lái)查看登錄Linux的歷史信息,具體用法如下:
# last |head root pts/1 192.168.72.128 Fri Jun 26 17:41 still logged in root pts/0 192.168.72.1 Fri Jun 26 15:46 still logged in reboot system boot 4.18.0-147.3.1.e Fri Jun 26 15:41 still running root pts/3 192.168.72.1 Fri Jun 26 15:33 - 15:40 (00:06) root pts/2 192.168.72.1 Fri Jun 26 15:30 - 15:40 (00:10) root pts/0 192.168.72.1 Fri Jun 26 15:13 - 15:40 (00:27) root pts/2 192.168.72.1 Fri Jun 26 15:07 - 15:13 (00:05) root pts/1 192.168.72.1 Fri Jun 26 09:39 - 15:40 (06:01) root pts/0 192.168.120.106 Fri Jun 26 08:54 - 15:08 (06:14) root tty1 Fri Jun 26 08:33 - 15:40 (07:07)上例中,從左至右依次為賬戶(hù)名稱(chēng)、登錄終端、登錄客戶(hù)端IP、登錄日期及時(shí)長(zhǎng)。last命令輸出的信息實(shí)際上是讀取了二進(jìn)制日志文件/var/log/wtmp,只是這個(gè)文件不能直接使用cat、Vim、head、tail等工具查看。 另外/var/log/secure也是和登錄信息有關(guān)的日志文件。該日志文件記錄驗(yàn)證和授權(quán)等方面的信息,比如ssh登錄系統(tǒng)成功或者失敗時(shí),相關(guān)的信息都會(huì)記錄在這個(gè)日志里。
最后,阿銘建議你以后在日常的管理工作中,要養(yǎng)成多看日志的習(xí)慣,尤其是一些應(yīng)用軟件的日志。比如Nginx、MySQL、Redis(后續(xù)內(nèi)容會(huì)講到)等常用的軟件,看它們的錯(cuò)誤日志,可以幫助你排查問(wèn)題以及監(jiān)控它們的運(yùn)行狀況是否良好。
14.8.4journal日志
如果不安裝rsyslog包,系統(tǒng)就沒(méi)有/var/log/messages日志,那系統(tǒng)有問(wèn)題我們?cè)趺纯慈罩灸??可以通過(guò)jounalctl來(lái)查看:
jounalctl常用選項(xiàng)有:
-n 后面跟數(shù)字,比如5,查看最后5行
-e 查看最后的日志
-x 增加注釋
-o 設(shè)置日志格式,比如-o json,-o export,-o short
-p 設(shè)置日志級(jí)別,emerg、alert、crit、err、warning、notice、info、debug
-f 動(dòng)態(tài)查看
-u 指定unit,比如-u chrony
-r 倒序查看
-k 只看內(nèi)核相關(guān)
具體示例,如下:
查看sshd服務(wù)日志
journalctl -u sshd
2. 查看系統(tǒng)內(nèi)核日志
journalctl -k
3.動(dòng)態(tài)查看sshd服務(wù)日志
journalctl -u sshd -f
4.直接打印全部,不讓它分頁(yè)
journalctl --no-page
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11324瀏覽量
209938 -
命令
+關(guān)注
關(guān)注
5文章
691瀏覽量
22062 -
日志
+關(guān)注
關(guān)注
0文章
138瀏覽量
10659
原文標(biāo)題:Linux系統(tǒng)日志
文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論