天天看點

Linux作業系統常用log日志

Linux作業系統常用log日志

常見的Linux作業系統登入檔案有如下幾個:

1)/var/log/secure:記錄登入系統存取資料的檔案;

例如pop3,ssh,telnet,ftp等都會記錄在此.

2)/ar/log/wtmp:記錄登入這的資訊記錄,被編碼過,是以必須以last解析;

3)/var/log/message:jihu所有的開機系統發生的錯誤都會在此記錄;

4)/var/log/boot.log:記錄一些開機或者關機啟動的一些服務顯示的啟動或者關閉的資訊;

5)/var/log/maillog:記錄郵件的存取和往來;

6)/var/log/cron:用來記錄crontab這個服務的内容;

7)/var/log/httpd,/var/log/mysqld.log等等檔案,記錄幾個不同的網絡服務的記錄檔案;

8)/var/log/acpid ,   ACPI - Advanced Configuration and Power Interface,表示進階配置和電源管理接口。 

後面的 d 表示 deamon 。 acpid 也就是 the ACPI event daemon 。 也就是 acpi 的消息程序。用來控制、擷取、管理 acpi 的狀态的服務程式。

9)/var/run/utmp 記錄着現在登入的使用者;

10)/var/log/lastlog 記錄每個使用者最後的登入資訊;

11)/var/log/btmp 記錄錯誤的登入嘗試;

12)/var/log/dmesg核心日志;

13)/var/log/cpus CPU的處理資訊;

14)/var/log/syslog 事件記錄監控程式日志;

15)/var/log/auth.log 使用者認證日志;

16)/var/log/daemon.log 系統程序日志;

17)/var/log/mail.err 郵件錯誤資訊;

18)/var/log/mail.info 郵件資訊;

19)/var/log/mail.warn 郵件警告資訊;

20)/var/log/daemon.log 系統監控程式産生的資訊;

21)/var/log/kern 核心産生的資訊;

22)/var/log/lpr   行列印機假脫機系統産生的資訊;

如何檢視linux系統下的各種日志檔案 linux 系統日志的分析大全

日志分類:

1. 連接配接時間的日志 

連接配接時間日志一般由/var/log/wtmp和/var/run/utmp這兩個檔案記錄,不過這

  兩個檔案無法直接cat檢視,并且該檔案由系統自動更新,可以通過如下:

  w/who/finger/id/last/lastlog/ac 進行檢視

  [root@xhot ~]# who

  root tty1 2010-10-06 22:56

  root pts/0 2010-10-06 22:26 (218.192.87.4)

  root pts/1 2010-10-06 23:41 (218.192.87.4)

  root pts/3 2010-10-06 23:18 (218.192.87.4)

  [root@xhot ~]# w

  01:01:02 up 2:36, 4 users, load average: 0.15, 0.03, 0.01

  USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

  root tty1 - 22:56 1:20m 0.16s 0.16s -bash

  root pts/0 218.192.87.4 22:26 2:05m 0.18s 0.18s -bash

  root pts/1 218.192.87.4 23:41 0.00s 0.41s 0.00s w

  root pts/3 218.192.87.4 23:18 1:38m 0.03s 0.03s -bash

  [root@xhot ~]# ac -p //檢視每個使用者的連接配接時間

  u51 1.23

  u55 0.04

  root 95.21 //可以看到root連接配接時間最長吧

  xhot 0.06

  user1 3.93

  total 100.48

  [root@xhot ~]# ac -a //檢視所有使用者的連接配接時間

  total 100.49

  [root@xhot ~]# ac -d //檢視使用者每天的連接配接時間

  Sep 24 total 0.14

  Sep 25 total 14.60

  Sep 26 total 13.71

  Sep 27 total 21.47

  Sep 28 total 11.74

  Sep 29 total 6.60

  Sep 30 total 8.81

  Oct 1 total 9.04

  Oct 2 total 0.47 //可以看到我國慶3、4、5号出去玩了

  Oct 6 total 8.62

  Today total 5.29

  其他幾個指令不做具體介紹了

2. 程序監控日志

  程序統計監控日志在監控使用者的操作指令是非常有效的。當伺服器最近發現經常

  無故關機或者無故被人删除檔案等現象時,可以通過使用程序統計日志檢視:

  [root@xhot ~]# accton /var/account/pacct //開啟程序統計日志監控

  [root@xhot ~]# lastcomm //檢視程序統計日志情況

  accton S root pts/1 0.00 secs Thu Oct 7 01:20

  accton root pts/1 0.00 secs Thu Oct 7 01:20

  ac root pts/1 0.00 secs Thu Oct 7 01:14

  free root pts/1 0.00 secs Thu Oct 7 01:10

  lastcomm root pts/1 0.00 secs Thu Oct 7 01:09

  bash F root pts/1 0.00 secs Thu Oct 7 01:09

  ifconfig root pts/1 0.00 secs Thu Oct 7 01:09

  accton S root pts/1 0.00 secs Thu Oct 7 01:09

  [root@xhot ~]# accton //關閉程序統計日志監控

3. 系統和服務日志

  系統日志服務是由一個名為syslog的服務管理的,如一下日志檔案都是由syslog日志服務驅動的:

  /var/log/lastlog :記錄最後一次使用者成功登陸的時間、登陸IP等資訊

  /var/log/messages :記錄Linux作業系統常見的系統和服務錯誤資訊

  /var/log/secure :Linux系統安全日志,記錄使用者和工作組變壞情況、使用者登陸認證情況

  /var/log/btmp :記錄Linux登陸失敗的使用者、時間以及遠端IP位址

  /var/log/cron :記錄crond計劃任務服務執行情況

  …...

  [root@xhot ~]# cat /var/log/lastlog

  Lpts/0218.192.87.4

  Lpts/1218.192.87.4

  Lpts/0218.192.87.46

Linux日志服務介紹

1. 在Linux系統,大部分日志都是由syslog日志服務驅動和管理的

      syslog服務由兩個重要的配置檔案控制管理,分别是/etc/syslog.conf主配置檔案和/etc/sysconfig/syslog輔助

  配置檔案, /etc/init.d/syslog是啟動腳本,這裡主講主配置檔案/etc/syslog.conf:

  /etc/syslog.conf 語句結構:

  [root@xhot ~]# grep -v "#" /etc/syslog.conf //列出非#打頭的每一行

  *.info;mail.none;authpriv.none;cron.none /var/log/messages

  authpriv.* /var/log/secure

  mail.* -/var/log/maillog

  cron.* /var/log/cron

  *.emerg *

  uucp,news.crit /var/log/spooler

  local7.* /var/log/boot.log

  選擇域(消息類型.錯誤級别) 動作域

2. 消息類型:auth,authpriv,security;cron,daemon,kern,lpr,mail, mark,news,syslog,user,uucp,local0~local7.

  錯誤級别:(8級)debug,info,notice,warning|warn;err|error;crit,alert,emerg|panic

  動作域:file,user,console,@remote_ip

  舉如上的/etc/syslog.conf檔案三個例子:

  表示info級别的任何消息都發送到/var/log/messages日志檔案,但郵件系統、驗證系統

  和計劃任務的錯誤級别資訊就除外,不發送(none表示禁止)

  cron.* /var/log/cron 表示所有級别的cron資訊發到/var/log/cron檔案

  *.emerg * 表示emerg錯誤級别(危險狀态)的所有消息類型發給所有使用者

Linux日志伺服器配置

  此伺服器的配置非常簡單,隻是修改一個檔案的一個地方,然後重新開機服務即可:

  [root@xhot ~]# grep -v "#" /etc/sysconfig/syslog

  SYSLOGD_OPTIONS="-m 0 -r" //隻要在這裡添加“-r”就行咯

  KLOGD_OPTIONS="-x"

  SYSLOG_UMASK=077

  [root@xhot ~]# service syslog restart

  關閉核心日志記錄器: [确定]

  關閉系統日志記錄器: [确定]

  啟動系統日志記錄器: [确定]

  啟動核心日志記錄器: [确定]

  對于發送消息到伺服器的OS,隻要在寫/etc/syslog.conf主配置檔案的時候,作用域

  為@server-ip就行了,比如針對218.192.87.24這台日志伺服器,把一台ubuntu系統的所有

  info級别的auth資訊發給日志伺服器,那麼對于ubuntu系統的/etc/syslog.conf檔案最後一

  行添加 auth.info @218.192.87.24 就OK了

日志轉儲服務

  系統工作到了一定時間後,日志檔案的内容随着時間和通路量的增加而越來越多,

  日志檔案也越來越大。而且當日志檔案超過系統控制範圍時候,還會對系統性能

  造成影響。轉儲方式可以設為每年轉儲、每月轉儲、每周轉儲、達到一定大小轉儲。

  在Linux系統,經常使用“logrotate”工具進行日志轉儲,結合cron計劃任務,可以輕松

  實作日志檔案的轉儲。轉儲方式的設定由“/etc/logrotate.conf”配置檔案控制:

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

  # see "man logrotate" for details //可以檢視幫助文檔

  # rotate log files weekly

  weekly //設定每周轉儲

  # keep 4 weeks worth of backlogs

  rotate 4 //最多轉儲4次

  # create new (empty) log files after rotating old ones

  create //當轉儲後檔案不存儲時建立它

  # uncomment this if you want your log files compressed

  #compress //以壓縮方式轉儲

  # RPM packages drop log rotation information into this directory

  include /etc/logrotate.d //其他日志檔案的轉儲方式,包含在該目錄下

  # no packages own wtmp -- we'll rotate them here

  /var/log/wtmp { //設定/var/log/wtmp日志檔案的轉儲參數

  monthly //每月轉儲

  create 0664 root utmp //轉儲後檔案不存在時建立它,檔案所有者為root,

  所屬組為utmp,對應的權限為0664

  rotate 1 //轉儲一次

  }

  # system-specific logs may be also be configured here.

舉兩個例子: 

為/var/log/news/目錄下的所有檔案設定轉儲參數,每周轉儲,轉儲2次,轉儲

時将老的日志檔案放到/var/log/news/old目錄下,若日志檔案不存在,則跳過。完成後重新開機

news新聞討論區服務,轉儲時不壓縮。那麼可以在/etc/logrotate.conf檔案的最後添加如下:

  /var/log/news/*{

  monthly

  rotate 2

  olddir /var/log/news/old

  missingok

  postrotate

  kill -HUP `cat /var/run/inn.pid`

  endscript

  nocompress

另一個例子:為/var/log/httpd/access.log和/var/log/httpd/error.log日志設定轉儲參數。轉儲

  5次,轉儲時發送郵件給root@localhost使用者,當日志檔案達到100KB時才轉儲,轉儲後重新開機

  httpd服務,那麼可以直接在/etc/logrotate.conf檔案的最後添加如下:

  /var/log/httpd/access.log /var/log/http/error.log{

  rotate 5

  mail root@localhost

  size=100k

  sharedscripts

  /sbin/killall -HUP httpd

自定義日志轉儲(/etc/logrotate.d/*)

  通過下面一個例子将所有類型錯誤級别為info的日志轉儲到/var/log/test.log日志檔案中,并設定

  /var/log/test.log達到50KB後進行轉儲,轉儲10次,轉儲時壓縮,轉儲後重新開機syslog服務:

  1、修改/etc/syslog.conf檔案使得如下:

  [root@xhot ~]# tail -1 /etc/syslog.conf //檢視該檔案的最後一行

  *.info /var/log/test.log

  2、重新開機syslog服務: 

[root@xhot ~]# /sbin/service syslog restart

  3、建立/etc/logrotate.d/test.log日志轉儲參數配置檔案,添加如下: 

[root@xhot ~]# vim /etc/logrotate.d/test.log

  [root@xhot ~]# cat /etc/logrotate.d/test.log

  /var/log/test.log{

  rotate 10

  size = 50k

  compress

  killall -HUP syslog

  4、檢視檔案/etc/cron.daily/logrotate確定如下:

  [root@xhot ~]# cat /etc/cron.daily/logrotate

  #!/bin/sh

  /usr/sbin/logrotate /etc/logrotate.conf

  EXITVALUE=$?

  if [ $EXITVALUE != 0 ]; then

  /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"

  fi

  exit 0

  5、檢視轉儲後的檔案 

[root@xhot log]# pwd

  /var/log

  [root@xhot log]# ls test.log*

  …… //結果等要轉儲的時候會發現壓縮檔案和原本的test.log檔案

syslog是一個被UNIX和Linux廣泛使用的日志系統,Linux系統中大部分的日志檔案都是通過它進行管理的。本節将對syslog的功能及配置、日志檔案的檢視和管理,以及syslog中預設配置的日志檔案進行介紹。

12.2.1 syslog簡介

syslog是一個曆史悠久的日志系統,幾乎所有的UNIX和Linux作業系統都是采用syslog進行系統日志的管理和配置。Linux系統核心和許多程式會産生各種錯誤資訊、警告資訊和其他的提示資訊。這些資訊對管理者了解系統的運作狀态是非常有用的,是以應該把它們寫到日志檔案中去。而執行這個過程的程式就是syslog。syslog可以根據資訊的來源以及資訊的重要程度将資訊儲存到不同的日志檔案中,例如,為了友善查閱,可以把核心資訊與其他資訊分開,單獨儲存到一個獨立的日志檔案中。在預設的syslog配置下,日志檔案通常都儲存在“/var/log”目錄下。syslog的守護程序為syslogd,系統啟動時,預設會自動運作syslogd守護程序。

如果要手工啟動,可以使用如下指令:

/sbin/syslogd

在修改syslog配置後,需要重新啟動syslogd守護程序才能使新的配置生效。其指令如下所示。

# killall -HUP syslogd

Red Hat Enterprise Linux 5.2安裝後預設就已經在syslog中定義了一些日志檔案,這些日志的位置以及它們的說明如表12.2所示。

表12.2 預設配置syslog日志

日 志 文 件 說    明
/var/log/message 系統啟動後的資訊和錯誤日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 與安全相關的日志資訊
/var/log/maillog 與郵件相關的日志資訊
/var/log/cron 與定時任務相關的日志資訊
/var/log/spooler 與UUCP和news裝置相關的日志資訊
/var/log/boot.log

繼續閱讀