<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Linux 系統(tǒng)日志分析與管理

          共 8050字,需瀏覽 17分鐘

           ·

          2024-07-04 17:49

          閱讀目錄

          • 接收端配置

          • 發(fā)送端配置

          Linux系統(tǒng)內(nèi)核和許多程序會(huì)產(chǎn)生各種錯(cuò)誤信息、警告信息和其他的提示信息,這些信息對(duì)管理員了解系統(tǒng)的運(yùn)行狀態(tài)是非常有用的,所以應(yīng)該把它們寫到日志文件中去,完成這個(gè)過程的程序就是syslog,syslog可以根據(jù)日志的類別和優(yōu)先級(jí)將日志保存到不同的文件中.

          關(guān)于Linux常見的日志文件名及作用

          日志文件可以幫助我們了解很多系統(tǒng)重要的事件,包括登陸者的部分信息,因此日志文件的權(quán)限通常是配置為僅有 root 能夠讀取而已,而由于日志文件可以記錄很多的系統(tǒng)詳細(xì)信息,所以,一個(gè)有經(jīng)驗(yàn)的Linux管理員會(huì)隨時(shí)隨地查閱一下自己的日志文件,以隨時(shí)掌握系統(tǒng)的最新動(dòng)態(tài),那么常見的日志文件有哪些呢?一般而言有下面幾個(gè):

          ● /var/log/cron
          主要記錄關(guān)于crontab計(jì)劃任務(wù)的相關(guān)信息,比如,系統(tǒng)計(jì)劃任務(wù)的錯(cuò)誤配置,計(jì)劃任務(wù)的修改等.

          ● /var/log/btmp
          記錄錯(cuò)誤登陸日志,這個(gè)文件是二進(jìn)制的,不能使用cat命令查看,而要使用lastb命令查看.

          ● /var/run/utmp
          記錄當(dāng)前一登陸用戶的信息,同樣不能使用cat命令查看,而要使用w,who,users命令來查詢.

          ● /var/log/dmesg
          主要記錄系統(tǒng)在開機(jī)時(shí)內(nèi)核檢測過程所產(chǎn)生的信息,默認(rèn)情況下RHEL系統(tǒng)關(guān)閉了開機(jī)回顯,如果你要查看則需要在這個(gè)文件下查閱即可.

          ● /var/log/lastlog
          記錄了系統(tǒng)上面所有賬戶最近一次登陸系統(tǒng)時(shí)的相關(guān)信息,lastlog命令就是讀取這個(gè)文件里的記錄來顯示的.

          ● /var/log/malilog or /var/log/mail/*
          記錄著郵件的往來信息,默認(rèn)是postfix郵件服務(wù)器的一些信息.

          ● /var/log/messages
          這個(gè)文件非常重要,幾乎系統(tǒng)發(fā)生的錯(cuò)誤信息,或者重要信息都會(huì)被記錄在這里.

          ● /var/log/secure
          只要涉及到需要用戶名和密碼的操作,那么當(dāng)?shù)顷懴到y(tǒng)是(不論正確錯(cuò)誤),都會(huì)記錄到這里.

          ● /var/log/wtmp or /var/log/faillog
          這兩個(gè)文件可以記錄正確登陸系統(tǒng)者的賬戶信息(wtmp),與錯(cuò)誤登陸時(shí)所使用的賬戶信息,last命令就是讀取wtmp文件來獲取的.

          常見的日志文件就是這幾個(gè),但是不同的 Linux 發(fā)行版,通常日志文件的名稱和存儲(chǔ)目錄都不會(huì)相同,但此處除了/var/log/messages 之外,所以說你還是得要查閱你 Linux 主機(jī)上面的日志文件配置數(shù)據(jù),才能知道你的日志文件主要是放在哪里了.

          日志文件所需相關(guān)服務(wù)與進(jìn)程

          其實(shí)日志文件的產(chǎn)生,基本上有兩種方式:一種是有軟件開發(fā)商自定義寫入的日志文件與相關(guān)格式,另一種則是由Linux發(fā)行商提供的日志文件管理服務(wù)來統(tǒng)一管理,你只要將這個(gè)信息丟給這個(gè)服務(wù),它就會(huì)自己分門別類的放置到相關(guān)的日志文件中去,RHEL系統(tǒng)提供syslogd這個(gè)服務(wù)來統(tǒng)一管理日志文件.

          除了syslogd這個(gè)服務(wù)之外,內(nèi)核也需要額外的登陸服務(wù)來記錄內(nèi)核產(chǎn)生的各項(xiàng)信息,這個(gè)專門用來記錄內(nèi)核日志的服務(wù)就是klogd.所以說,日志文件所需的服務(wù)主要是syslogd與klogd這兩者.

          不過需要注意的是,由于系統(tǒng)每天都在產(chǎn)生大量的日志,如果日志文件量太大,就會(huì)影響系統(tǒng)的正常運(yùn)轉(zhuǎn),這時(shí)候我們可以通過logrtate來自動(dòng)處理日志文件與切割更新的問題.

          所謂logrotate(日志輪詢),基本上就是將舊的文件改變名稱,然后新建一個(gè)空文件,如此一來新的日志文件將重新開始記錄,這樣就可以實(shí)現(xiàn)日志輪詢啦,總結(jié)一下,針對(duì)日志文件所需的功能,我們需要的服務(wù)與程序有以下幾個(gè):

          syslogd:主要登陸系統(tǒng)與網(wǎng)絡(luò)等服務(wù)的信息
          klogd:主要登陸內(nèi)核產(chǎn)生的各項(xiàng)信息
          logrotate:主要進(jìn)行日志文件的輪詢

          以上就是關(guān)于日志相關(guān)的常用常識(shí),下面我們將開始實(shí)際看一下日志服務(wù)的應(yīng)用技巧.

          SYSlog日志文件的格式

          一般情況下,系統(tǒng)產(chǎn)生的信息經(jīng)過syslog而記錄下來的數(shù)據(jù)中,每條信息均會(huì)記錄下面的幾個(gè)數(shù)據(jù).

          ● 事件發(fā)生的日期與時(shí)間
          ● 發(fā)生此事件的主機(jī)名
          ● 啟動(dòng)此事件的服務(wù)名,或函數(shù)名
          ● 該信息的實(shí)際數(shù)據(jù)內(nèi)容

          當(dāng)然這些信息日志的詳細(xì)程度也是可以修改的,而且這些信息可以作為系統(tǒng)的排錯(cuò)之用,下面我們來看一下 /var/log/secure 這個(gè)日志文件,來簡單介紹一下它的記錄格式吧.

          [root@localhost ~]# cat /var/log/secure | head -n 5
          Oct 13 12:39:27 localhost polkitd[733]: Loading rules from directory /etc/polkit-1/rules.d
          Oct 13 12:39:27 localhost polkitd[733]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
          Oct 13 12:39:33 localhost sshd[1082]: Server listening on 0.0.0.0 port 22.
          Nov 28 09:36:41 localhost sshd[1364]: Accepted password for root from 192.168.1.20 port 63704 ssh2
          Nov 28 05:36:41 localhost sshd[1364]: pam_unix(sshd:session): session opened for user root by (uid=0)

          我們拿最后一條數(shù)據(jù)來說,該數(shù)據(jù)是說:在11月28號(hào)的下午5點(diǎn)36分,由localhost這臺(tái)主機(jī),通過sshd服務(wù)pid號(hào)是1364傳來的消息,這個(gè)消息是通過pam_unix這個(gè)模塊產(chǎn)生的,內(nèi)容為session opened for user root by (uid=0),root開啟了活動(dòng).

          SYSlog配置文件的解析

          其實(shí)日志文件也有配置文件,它的目錄是 /etc/rsyslog.conf 基本上syslog針對(duì)各種服務(wù)于信息的記錄保存在這個(gè)配置文件里,這個(gè)文件規(guī)定了什么服務(wù)什么等級(jí)信息,以及需要被記錄在哪里,這三個(gè)東西,所以它的語法會(huì)是下面的樣子:

          [服務(wù)名稱] .=! [信息等級(jí)]            [記錄到哪里]

          authpriv.* /var/log/secure
          mail.info -/var/log/maillog
          cron.* /var/log/cron

          好了,接下來我們分成三個(gè)部分來解釋這幾信息的含義.

          [服務(wù)名稱]

          syslog本身有設(shè)置一些服務(wù),你可以通過這些服務(wù)來存儲(chǔ)系統(tǒng)信息,syslog涉及的服務(wù)主要有以下這些:

          服 務(wù) 類 型 說 明
          auth(authpriv) 與認(rèn)證有關(guān)的機(jī)制,例如login,ssh,su等需要賬號(hào)密碼
          cron 例行工作調(diào)度,cron/at等生成信息日志的地方
          daemon 與這個(gè)daemon有關(guān)的信息
          kern 內(nèi)核產(chǎn)生的信息
          lpr 打印相關(guān)的信息
          mail 只要與郵件有關(guān)的信息都記錄在這里
          news 與新聞組服務(wù)器有關(guān)的東西
          syslog syslogd本身生成的信息
          user,uucp,local0-local7 與Unix-Like機(jī)器本身有關(guān)的一些信息

          對(duì)配置文件的幾點(diǎn)說明:
          ● 日志類型和優(yōu)先級(jí)由點(diǎn)號(hào)(.)分開,例如 kern.debug 表示由內(nèi)核產(chǎn)生的調(diào)試信息
          ● kern.debug 的優(yōu)先級(jí)大于 debug
          ● 星號(hào)(*)表示所有,例如 .debug 表示所有類型的調(diào)試信息,kern. 表示由內(nèi)核產(chǎn)生的所有消息
          ● 可以使用逗號(hào)(,)分隔多個(gè)日志類型,使用分號(hào)(;)分隔多個(gè)選擇器

          對(duì)日志的操作包括:
          ● 將日志輸出到文件,例如 /var/log/maillog 或 /dev/console
          ● 將消息發(fā)送給用戶,多個(gè)用戶用逗號(hào)(,)分隔,例如 root,amrood
          ● 通過管道將消息發(fā)送給用戶程序,注意程序要放在管道符(|)后面
          ● 將消息發(fā)送給其他主機(jī)上的 syslog 進(jìn)程,這時(shí) /etc/syslog.conf文件后面一列為以@開頭的主機(jī)名(IP)

          [信息等級(jí)]

          同一個(gè)服務(wù)所產(chǎn)生的信息也是有差別的,有啟動(dòng)時(shí)僅通知系統(tǒng)而已的一般信息(information),有出現(xiàn)還不至于影響到正常運(yùn)行的警告信息 (warn),還有系統(tǒng)硬件發(fā)生嚴(yán)重錯(cuò)誤時(shí),所產(chǎn)生的重大問題信息(error),基本上syslog將信息分為七個(gè)主要的等級(jí),依序是這樣的(由不重要排列到重要信息等級(jí)).

          等 級(jí) 信 息 說 明
          debug 一般調(diào)試信息
          info 基本通知信息
          notice 普通通知信息
          warning(warn) 警告信息,但不影響正常使用
          err(error) 錯(cuò)誤信息,可能影響系統(tǒng)服務(wù)
          crit 比錯(cuò)誤信息還嚴(yán)重的錯(cuò)誤信息
          alert 警告,比crit還嚴(yán)重的警告
          emerg(panic) 疼痛等級(jí),系統(tǒng)已經(jīng)完蛋了
          * 代表所有日志等級(jí)

          好了,上面的介紹足夠生產(chǎn)環(huán)境的使用啦,如果想配置自定義日志位置,我想你能夠搞定了.

          SYSlog日志服務(wù)器配置

          想像一個(gè)環(huán)境,你的辦公室內(nèi)有一百臺(tái) Linux 主機(jī),每一臺(tái)負(fù)責(zé)一個(gè)網(wǎng)絡(luò)服務(wù),你為了要了解每臺(tái)主機(jī)的狀態(tài),因此你常常需要登陸這一百主機(jī)去檢查你的日志文件,想想是不是很騷,幸好我們的日志服務(wù)可以集中管理,這樣我們只需要一臺(tái)服務(wù)器當(dāng)作日志服務(wù)器,其他客戶端主動(dòng)同步數(shù)據(jù)就好啦,是不是很方便啊.

          我們的RHEL系統(tǒng),默認(rèn)的syslog本身就已經(jīng)具有這個(gè)日志文件服務(wù)器的功能了,只是默認(rèn)并沒有啟動(dòng)該功能而已,既然是日志服務(wù)器那么我們的 Linux 主機(jī)當(dāng)然會(huì)啟動(dòng)一個(gè)端口來監(jiān)聽了,那個(gè)默認(rèn)的端口就是 UDP 的 514 啊.

          回到頂部

          接收端配置

          1.首先編輯日志服務(wù)器的配置文件,開啟相應(yīng)的注釋,此處既可以使用TCP也可以使用UDP,兩者都可.

          [root@localhost ~]# vim /etc/rsyslog.conf

          14 # Provides UDP syslog reception
          15 $ModLoad imudp #此處我們開啟UDP的即可
          16 $UDPServerRun 514
          17
          18 # Provides TCP syslog reception
          19 #$ModLoad imtcp
          20 #$InputTCPServerRun 514

          2.重啟日志服務(wù)器,即可配置完成

          [root@localhost ~]# systemctl restart rsyslog
          [root@localhost ~]# systemctl status rsyslog

          ● rsyslog.service - System Logging Service
          Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
          Active: active (running) since Wed 2018-11-28 10:33:26 EST; 6s ago
          Docs: man:rsyslogd(8)
          http://www.rsyslog.com/doc/
          Main PID: 13746 (rsyslogd)
          CGroup: /system.slice/rsyslog.service
          └─13746 /usr/sbin/rsyslogd -n

          通過這個(gè)簡單的操作,你的 Linux 主機(jī)已經(jīng)可以接收來自其他主機(jī)的日志文件了,這里還要進(jìn)行防火墻的規(guī)則放行制定端口,此處略過.

          回到頂部

          發(fā)送端配置

          至于發(fā)送端的配置就簡單多了,只要指定某個(gè)信息傳送到這部主機(jī)即可,舉例來說,我們的日志服務(wù)器 IP=192.168.1.10 ,而客戶端希望所有的數(shù)據(jù)都送給主機(jī),我們可以進(jìn)行一下操作.

          1.修改日志配置文件,添加以下數(shù)據(jù),保存退出即可.

           90 #*.* @@remote-host:514
          91 # ### end of the forwarding rule ###
          92
          93 *.* @192.168.1.10

          注意:可以使用 UDP 用一個(gè)@
          可以使用 TCP 用兩個(gè)@@

          2.重啟日志工具,即可配置完成

          [root@localhost ~]# systemctl restart rsyslog
          [root@localhost ~]# systemctl status rsyslog

          ● rsyslog.service - System Logging Service
          Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
          Active: active (running) since Wed 2018-11-28 10:33:26 EST; 6s ago
          Docs: man:rsyslogd(8)
          http://www.rsyslog.com/doc/
          Main PID: 13746 (rsyslogd)
          CGroup: /system.slice/rsyslog.service
          └─13746 /usr/sbin/rsyslogd -n

          SYSlog日志的輪替功能

          syslog 利用的是 daemon 的方式來啟動(dòng)的,當(dāng)有需求的時(shí)候立刻就會(huì)被運(yùn)行的,但是 logrotate 卻是在規(guī)定的時(shí)間到了之后才來進(jìn)行日志文件的輪替,所以這個(gè) logrotate 程序當(dāng)然就是掛在 cron 底下進(jìn)行的,仔細(xì)看一下 /etc/cron.daily/里面的文件,/etc/cron.daily/logrotate 就是記錄了每天要進(jìn)行的日志文件輪替的行為啦.

          一般情況下,日志的輪替會(huì)用到兩個(gè)配置文件,分別是 /etc/logrotate.conf 和 /etc/logrotate.d/ 這兩個(gè)目錄,首先我們來看一下,/etc/logrotate.conf這個(gè)文件里的內(nèi)容吧.

          [root@localhost ~]# cat /etc/logrotate.conf

          weekly #默認(rèn)每個(gè)禮拜進(jìn)行輪詢
          rotate 4 #保留幾個(gè)日志文件
          create #日志文件被重命名,新建日志文件存儲(chǔ)
          dateext
          #compress #壓縮輪詢后的日志
          include /etc/logrotate.d #導(dǎo)入其他日志配置文件

          /var/log/wtmp { #針對(duì)/var/log/wtmp所設(shè)置的參數(shù)
          monthly #每月輪替
          create 0664 root utmp #指定新建文件的權(quán)限,以及所有者和所屬組
          minsize 1M #大于1M后輪詢
          rotate 1 #僅保留一個(gè)wtmp.1而已
          }

          /var/log/btmp {
          missingok
          monthly
          create 0600 root utmp
          rotate 1
          }

          其他的常用格式如下,我們可以自行自由發(fā)揮的.

          參 數(shù) 信 息 說 明
          daily 每天輪替
          weekly 每周輪替
          monthly 每月輪替
          rotate 數(shù)字 保留日志文件個(gè)數(shù)
          compress 舊日志啟用壓縮
          mail address 輪替時(shí)發(fā)送郵件提示
          missingok 日志不存在忽略警告
          notifempty 日志為空不進(jìn)行輪替
          minsize 大小 日志輪替最小值
          size 大小 多大進(jìn)行輪替
          dateext 使用日期格式后綴 secure-20181010

          系統(tǒng)自動(dòng)定期進(jìn)行日志輪替的原因:

          1./etc/cron.daily/有一個(gè)腳本,每天都會(huì)運(yùn)行,查看是否有符合輪替的日志,然后進(jìn)行相應(yīng)處理
          2.我們嘗試在rsyslog配置文件中添加自己的日志記錄,然后并且強(qiáng)制執(zhí)行輪替,看會(huì)不會(huì)產(chǎn)生輪替文件
          3.先在配置文件中寫入自己的日志輪替規(guī)則
          4.強(qiáng)制執(zhí)行日志輪替logrotate –vf /etc/logrotate.conf

          鏈接:https://www.cnblogs.com/LyShark/p/10221821.html

          (版權(quán)歸原作者所有,侵刪)


          瀏覽 40
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91天天干在线观看 | 中文天堂在线中文 | 资源av | 黄色AⅤ| 精品国产欧美一区二区三区成人 |