歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

linux系統的日志文件系統詳細解釋

①、linux上日志系統類型:syslog和syslog-ng(開源版和商業版)

1、syslog服務:

syslogd:系統日志,非內核產生的信息

配置文件:/etc/syslog.conf、

配置以後利用service syslog reload(不用重啟服務讀取配置文件)

日志服務器配置:etc/sysconfig/syslog內SYSLOGD_OPTIONS="-m 0"改為SYSLOGD_OPTIONS="-r -m 0"即可作為日志服務器

klogd:內核日志,專門負責內核產生的信息

kernel啟動的時候是物理終端(/dev/console),產生的日志信息在/var/log/dmesg

dmesg命令:可以直接查看/var/log/dmesg;也可以使用cat /var/log/dmesg查看。

  sbin/init進程信息屬於系統日志,放在以下位置:

/var/log/messages:系統標准錯誤日志信息,非內核產生的引導信息;各子系統產生的信息。

/var/log/maillog:郵件系統產生的日志信息

/var/log/secure:用戶登陸信息日志

2、日志需要滾動:

message一段時間以後重新命名為message1..,然後新建一個message來存放日志。

logrotate:通過此命令對日志文件進行切片

/etc/cron.daily/logrotate

配置文件:/etc/syslog.conf

配置文件定義格式為: facility.priority  action
facility,可以理解為日志的來源或設備目前常用的facility有以下幾種:

auth         # 認證相關的

authpriv     # 權限,授權相關的

cron         # 任務計劃相關的

daemon       # 守護進程相關的

kern         # 內核相關的

lpr          # 打印相關的

mail         # 郵件相關的

mark         # 標記相關的

news         # 新聞相關的

security     # 安全相關的,與auth 類似  

syslog       # syslog自己的

user         # 用戶相關的

uucp         # unix to unix cp 相關的

local0 到 local7  # 用戶自定義使用

*            # *表示所有的facility

priority(log level)日志的級別,一般有以下幾種級別(從低到高)

debug           # 程序或系統的調試信息

info            # 一般信息

notice          # 不影響正常功能,需要注意的消息

warning/warn    # 可能影響系統功能,需要提醒用戶的重要事件

err/error       # 錯誤信息

crit            # 比較嚴重的

alert           # 必須馬上處理的

emerg/panic     # 會導致系統不可用的

*               # 表示所有的日志級別

none            # 跟* 相反,表示啥也沒有

action(動作)日志記錄的位置

系統上的絕對路徑    # 普通文件 如: /var/log/xxx

|                   # 管道  通過管道送給其他的命令處理

終端              # 終端   如:/dev/console

@HOST               # 遠程主機 如: @10.0.0.1

用戶              # 系統用戶 如: root

*                   # 登錄到系統上的所有用戶,一般emerg級別的日志是這樣定義的

定義格式例子:

mail.info   /var/log/mail.log # 表示將mail相關的,級別為info及info以上級別的信息記錄到/var/log/mail.log文件中

auth.=info  @10.0.0.1         # 表示將auth相關的,基本為info的信息記錄到10.0.0.1主機上去

                           # 前提是10.0.0.1要能接收其他主機發來的日志信息

user.!=error                  # 表示記錄user相關的,不包括error級別的信息

user.!error                   # 與user.error相反

*.info                        # 表示記錄所有的日志信息的info級別

mail.*                        # 表示記錄mail相關的所有級別的信息

*.*                           # 你懂的.

cron.info;mail.info           # 多個日志來源可以用";" 隔開

cron,mail.info                # 與cron.info;mail.info 是一個意思

mail.*;mail.!=info            # 表示記錄mail相關的所有級別的信息,但是不包括info級別的

本文出自 “Chris—on the way” 博客,請務必保留此出處http://chrinux.blog.51cto.com/6466723/1168233

Copyright © Linux教程網 All Rights Reserved