Linux學習記錄--日誌系統

日誌系統


日誌系統對於一個系統來講是很是重要的,從日誌文件咱們能夠獲取到系統的運行情況,協助咱們排查問題。node

對於CentOs來講,日誌系統主要包含2個服務與1個程序vim

syslogd:記錄系統與網絡服務的信息網絡

klogd:記錄內核產生的各項信息ide

logrotate:日誌文件的輪替功能post

說明:不一樣的UNIX LIKE對應的服務可能不同spa



syslogd服務


syslogd服務配置文件分析

[root@localhost ~]# cat /etc/syslog.conf 
#kern.*                                                 /dev/console
*.info;mail.none;news.none;authpriv.none;cron.none              /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
# Log cron stuff
cron.*                                                  /var/log/cron
*.emerg                                                 *
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
news.=crit                                        /var/log/news/news.crit
news.=err                                         /var/log/news/news.err
news.notice                                       /var/log/news/news.notice

配置文件格式以下日誌


【服務類型】 【信息等級設置】【信息存儲方式】進程

以cron.*  /var/log/cron 爲例ip

cron是服務類型ci

. 是信息等級設置

/var/log/cron 信息存儲方式


服務類別

服務類別

說明

auth (authpriv)

主要與認證有關的機制

cron

就是例行性工做cron/at 等產生信息記錄的地方;

daemon

與各個 daemon(服務進程) 有關的信息;

kern

內核核 (kernel) 產生信息的地方

lpr

與打印相關的信息

mail

與郵件相關的信息

news

與新聞組相關的信息

syslog

syslogd程序自己產生的信息

user, uucp, local0 ~ local7

與 Unix like 機器自己有關的一些信息。


日誌信息等級

等級

等級名稱

說明

1

info

僅是一些基本的信息說明而已;

2

notice

須要注意的信息;

3

warning
(warn)

警示的信息, info, notice, warn 這三個信息都是在告知一些基本信息而已,應該還不至於形成一些系統運行困擾;

4

err
(error)

一些重大的錯誤信息

5

crit

比 error 還要嚴重的錯誤

6

alert

警告警告,已經頗有問題的等級,比 crit 還要嚴重

7

emerg
(panic)

疼痛等級,意指系統已經幾乎要死機的狀態


 . :表明比後面還要高的等級 (含該等級) 都被記錄下來的意思。如mail .info

 .=:表明所須要的等級就是後面接的等級而已

 .!:表明不等於,除了該等級外的其餘等級都記錄。

 .*:表明說全部等級的信息都記錄


日誌文件的輪替(logrotate)

日誌文件隨着時間會變得愈來愈多,此時就須要進行日誌文件輪替。以控制日誌文件規模.logrotate就是作這個用的


日誌輪替程序配置文件包括

/etc/logrotate.conf :記錄總體輪替配置信息

/etc/logrotate.d/*  : 記錄各個服務類型的輪替配置信息


其實能夠在/etc/logrotate.conf中定義配置各類服務類型的日誌輪替配置信息,爲了方便管理將每一個服務類型的日誌輪替配置信息造成獨立文件存儲在/etc/logrotate.d/*

[root@localhost logrotate.d]# ll
-rw-r--r-- 1 root root  144 2012-02-23 acpid
-rw-r--r-- 1 root root  288 2007-11-12 conman
…….
-rw-r--r-- 1 root root  100 10-02 06:17 wpa_supplicant
-rw-r--r-- 1 root root  100 2012-07-26 yum

logrotate的配置文件

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

=>下面爲默認值。如不單獨配置將才有下面的默認值
weekly    <==默認每週進行一次 rotate 的工做
rotate 4  <==默認保留4個登陸文件 
create    <==以新建立文件繼續存儲日誌文件
#compress <==被更動的登陸文件是否須要壓縮?若是登陸文件太大則可考慮此參數啓動

include /etc/logrotate.d

/var/log/wtmp {       <==僅針對 /var/log/wtmp 所配置的參數
    monthly           <==每月一次,取代每週!
    minsize 1M        <==文件容量必定要超過 1M 後才進行
    create 0664 root utmp <==指定新建文件的權限與所屬賬號/羣組
    rotate 1          <==僅保留一個 
}

日誌輪替規則

當第一次執行輪替,本來日誌文件msg 被重命名爲msg1,同時建立新的msg以記錄新的日誌信息,當的當第二次執行輪替,日誌文件msg1 被重命名爲msg2, msg重命名爲msg1,同時建立新的msg以記錄新的日誌信息,依次類推,日誌文件最多保存的數量爲rotate這個屬性所指定的數值



日誌輪替文件語法

正如前面看到的。日誌輪替方式是寫在配置文件中的,這裏只作簡單的說明

[root@localhost logrotate.d]# cat named

/var/log/named.log {
    missingok
create 0644 named named
sharedscripts
    postrotate 
        /sbin/service named reload  2> /dev/null > /dev/null || true
    endscript
}

如上前面文件。Logrotate輪替信息能夠分爲2部分

1.       內部參數

2.       引用外部執行


引用外部命令來進行額外的命令下達,這個配置需與 sharedscripts .... endscript 配置合用才行。至於可用的環境爲:

prerotate:在啓動 logrotate 以前進行的命令

postrotate:在作完 logrotate 以後啓動的命令



內部參數
compress 經過gzip 壓縮轉儲之後的日誌
nocompress 不須要壓縮時,用這個參數
copytruncate 用於還在打開中的日誌文件,把當前日誌備份並截斷
nocopytruncate 備份日誌文件可是不截斷
create mode owner group 轉儲文件,使用指定的文件模式建立新的日誌文件
nocreate 不創建新的日誌文件
delaycompress 和 compress 一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮
nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮。
errors address 專儲時的錯誤信息發送到指定的Email 地址
ifempty 即便是空文件也轉儲,這個是 logrotate 的缺省選項。
notifempty 若是是空文件的話,不轉儲
mail address 把轉儲的日誌文件發送到指定的E-mail 地址
nomail 轉儲時不發送日誌文件
olddir directory 轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統
noolddir 轉儲後的日誌文件和當前日誌文件放在同一個目錄下
prerotate/endscript 在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript 在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
daily 指定轉儲週期爲天天
weekly 指定轉儲週期爲每週
monthly 指定轉儲週期爲每個月
rotate count 指定日誌文件刪除以前轉儲的次數,0 指沒有備份,5 指保留5 個備份
tabootext [+] list 讓logrotate 不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~

size size 當日志文件到達指定的大小時才轉儲,Size 能夠指定 bytes (缺省)以及K (sizek)或者M (sizem).


執行日誌輪替


語法:logrotate [-vf] logfile

選項與參數:

-v:顯示運行過程

-f:不管是否符合配置文件的數據,強制每一個日誌文件都進行輪替操做


舉例

[root@localhost /]# logrotate -vf /etc/logrotate.conf
………………..
[root@localhost /]# ll /var/log/messages*
-rw------- 1 root root      50 03-28 14:00 /var/log/messages
-rw------- 1 root root      50 03-28 14:00 /var/log/messages.1
-rw------- 1 root root      50 03-28 13:59 /var/log/messages.2
-rw------- 1 root root  333879 03-28 10:44 /var/log/messages.3
-rw------- 1 root root 1289326 03-25 08:50 /var/log/messages.4
相關文章
相關標籤/搜索