Linux系統日誌管理

2021-08-21 03:11:11 字數 4983 閱讀 9749

在linux系統上面,系統可以記錄從開機到當前系統上面何時發生了哪些事情,並將其分類,分別寫到特定的日誌檔案當中,如系統自身產生的問題、使用者登入資訊,網路資料資訊等等,我們可以根據這些日誌資訊來解決系統方面的錯誤,網路服務問題等等

1.日誌:

歷史事件:時間,地點,人物,事件

日誌級別:事件的關鍵性程度,loglevel

2.系統日誌服務:rsyslog centos6和7;sysklogd centos5之前版本

日誌事件記錄格式:

日期時間  主機  程序[pid] :事件內容

c/s架構:記錄下來的日誌可通過tcp/udp協議的服務完成日誌記錄的傳送可以將分布再不同主機的日誌實現集中管理

3.rsyslog介紹

facility:設施,從功能或程式上對日誌進行分類

auth,authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth), user, uucp,local0-local7, syslog

priority:優先級別,從低到高排序

debug, info, notice, warn(warning), err(error),crit(critical), alert, emerg(panic)

rsyslog特性  (不適合大規模管理日誌)

多執行緒udp,tcp, ssl, tls, relp

mysql, pgsql, oracle實現日誌儲存

強大的過濾器,可實現過濾記錄日誌資訊中任意部分

自定義輸出格式

rsyslog配置檔案 :/etc/rsyslog.conf,/etc/rsyslog.d/*.conf

rsyslog配置檔案格式:

modules:相關模組配置

global directives:全域性配置

rules配置格式:facility.priority; facility.priority… target

facility:

*: 所有的facility

facility1,facility2,facility3,...:指定的facility列表

priority:

*: 所有級別

none:沒有級別,即不記錄

priority:指定級別(含)以上的所有級別

=priority:僅記錄指定級別的日誌資訊

target:

檔案路徑:通常在/var/log/,檔案路徑前的-表示非同步寫入

使用者:將日誌事件通知給指定的使用者,* 表示登入的所有使用者

日誌伺服器:@host,把日誌送往至指定的遠端伺服器記錄

管道:| command,**給其它命令處理

配置rsyslog成為日誌伺服器vim/etc/rsyslog.conf

####modules ####

#provides udp syslog reception

$modloadimudp

$udpserverrun514

#provides tcp syslog reception

$modloadimtcp

$inputtcpserverrun514

其他日誌檔案

/var/log/secure:系統安裝日誌,文字格式

/var/log/btmp:當前系統上,使用者的失敗嘗試登陸相關的日誌資訊,二進位制格式,lastb命令進行產看

/var/log/lastlog:每乙個使用者最近一次的登入資訊,二進位制格式,lastlog命令可以檢視

/var/log/dmesg:系統引導過程中的日誌資訊,文字格式

/var/log/messages:系統中大部分的資訊

日誌管理journalctl

systemd統一管理所有 unit 的啟動日誌。帶來的好處就是,可以只用

journalctl乙個命令,檢視所有日誌(核心日誌和應用日誌)。日誌的配置檔案

/etc/systemd/journald.conf

journalctl用法

檢視所有日誌(預設情況下,只儲存本次啟動的日誌)

journalctl

檢視核心日誌(不顯示應用日誌)

journalctl-k

檢視系統本次啟動的日誌

journalctl-b

journalctl-b -0

檢視上一次啟動的日誌(需更改設定)

journalctl-b -1

檢視指定時間的日誌

journalctl--since="2017-10-30 18:10:30"

journalctl--since "20 min ago"

journalctl--since yesterday

journalctl--since "2017-01-10" --until "2017-01-11 03:00"

journalctl--since 09:00 --until "1 hour ago"

顯示尾部的最新10行日誌

journalctl-n

顯示尾部指定行數的日誌

journalctl-n 20

實時滾動顯示最新日誌

journalctl-f

示例:通過laganalyzer展示資料庫中的日誌

準備三颱主機

rsyslog   192.168.138.148

mysql      192.168.138.147

php(laganalyzer)    192.168.138.146

1.rsyslog

yum install rsyslog-mysql   #在rsyslog伺服器上安裝mysql模組相關的程式包

scp /usr/share/doc/rsyslog-8.24.0/mysql-createdb.sql 192.168.138.147:#把為rsyslog建立資料庫和表的指令碼複製到資料庫伺服器上

vim /etc/rsyslog.conf   #配置rsyslog將日誌儲存到mysql資料庫中

$modload   ommysql      #載入mysql模組

*.info;mail.none;authpriv.none;cron.none        :ommysql:192.168.138.147,syslog,syslog,centos  #通過模組傳送到遠端主機資料庫上記錄下來

2.mysql

yuminstall mariadb-server

mysqlmysql>grat all on syslog.* to syslog@'192.168.138.%' identifiedby 'centos'  #建立使用者

mysql>flushprivieges;

3.laganalyzer

(1)安裝軟體包

(2)安裝laganalyzer

tar xvf loganalyzer-4.1.6.tar.gz      #解壓軟體包

cp-r  loganalyzer-4.1.6/src/var/www/html/log

touch/var/www/html/log/config.php

chmod666  /var/www/html/log/config.php

(3)配置laganalyzer

(4)安全加強,**許可權防止使用者重新配置

chmod644  /var/www/html/log/config.php

logrotate日誌儲存

logrotate程式是乙個日誌檔案管理工具。用來把舊的日誌檔案刪除,並建立新

的日誌檔案,稱為日誌轉儲或滾動。可以根據日誌檔案的大小,也可以根據其

天數來轉儲,這個過程一般通過 cron 程式來執行

配置檔案是 /etc/logrotate.conf

主要引數如下

compress通過gzip 壓縮轉儲以後的日誌

nocompress不需要壓縮時,用這個引數

copytruncate用於還在開啟中的日誌檔案,把當前日誌備份並截斷

nocopytruncate備份日誌檔案但是不截斷

createmode owner group 轉儲檔案,使用指定的檔案模式建立新的日誌檔案

nocreate不建立新的日誌檔案

delaycompress和 compress 一起使用時,轉儲的日誌檔案到下一次轉儲時

才壓縮nodelaycompress覆蓋 delaycompress 選項,轉儲並壓縮

errorsaddress 專儲時的錯誤資訊傳送到指定的email 位址

ifempty 即使是空檔案也轉儲,是預設選項。

notifempty如果是空檔案的話,不轉儲

mailaddress 把轉儲的日誌檔案傳送到指定的e-mail 位址

nomail轉儲時不傳送日誌檔案

olddirdirectory 轉儲後的日誌檔案放入指定的目錄,必須和當前日誌檔案在

同乙個檔案系統

noolddir轉儲後的日誌檔案和當前日誌檔案放在同乙個目錄下

prerotate/endscript在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵

字必須單獨成行

postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關

鍵字必須單獨成行

daily 指定轉儲週期為每天

weekly指定轉儲週期為每週

monthly指定轉儲週期為每月

size 大小 指定日誌超過多大時,就執行日誌轉儲

rotatecount 指定日誌檔案刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個

備份missingok如果日誌不存在,提示錯誤

nomissingok如果日誌不存在,繼續下一次日誌,不提示錯誤

Linux 系統日誌管理

在 centos 6.x 中,日誌服務已經由 rsyslogd 取代了原先的 syslogd。red hat 公司認為 syslogd 已經不能滿足工作中的需求,rsyslogd 相比 syslogd 具有一些新的特點 rsyslogd 日誌服務更加先進,功能更多。但是,不論是該服務的使用,還是日誌...

Linux入門之系統日誌管理

在linux系統中,有專門採集資訊的服務rsyslog,它不產生日誌,只起到採集作用。採集日誌的目的則是為了記錄系統中有意義的動作,遇到系統故障,我們可以通過日誌來恢復比較重要的資訊。因此,日誌的採集對我們使用者尤為重要。日誌檔案記錄了時間 地點 人物和事件四大資訊,系統的日誌檔案預設都集中放置到 ...

linux系統管理(日誌)

var log message 系統啟動後的資訊和錯誤日誌,是red hat linux中最常用的日誌之一 var log secure 與安全相關的日誌資訊 var log maillog 與郵件相關的日誌資訊 var log cron 與定時任務相關的日誌資訊 var log spooler 與...