1. 程式人生 > >【Linux日誌】系統日誌及分析

【Linux日誌】系統日誌及分析

Linux系統擁有非常靈活和強大的日誌功能,可以儲存幾乎所有的操作記錄,並可以從中檢索出我們需要的資訊。


大部分Linux發行版預設的日誌守護程序為 syslog,位於 /etc/syslog 或 /etc/syslogd 或/etc/rsyslog.d,預設配置檔案為 /etc/syslog.conf 或 rsyslog.conf,任何希望生成日誌的程式都可以向 syslog 傳送資訊。

Linux系統核心和許多程式會產生各種錯誤資訊、警告資訊和其他的提示資訊,這些資訊對管理員瞭解系統的執行狀態是非常有用的,所以應該把它們寫到日誌檔案中去。

完成這個過程的程式就是syslog。syslog可以根據日誌的類別和優先順序將日誌儲存到不同的檔案中。

例如,為了方便查閱,可以把核心資訊與其他資訊分開,單獨儲存到一個獨立的日誌檔案中。預設配置下,日誌檔案通常都儲存在“/var/log”目錄下。

日誌型別

下面是常見的日誌型別,但並不是所有的Linux發行版都包含這些型別:

型別 說明
auth 使用者認證時產生的日誌,如login命令、su命令。
authpriv 與 auth 類似,但是隻能被特定使用者檢視。
console 針對系統控制檯的訊息。
cron 系統定期執行計劃任務時產生的日誌。
daemon 某些守護程序產生的日誌。
ftp FTP服務。
kern 系統核心訊息。
local0.local7 由自定義程式使用。
lpr 與印表機活動有關。
mail 郵件日誌。
mark 產生時間戳。系統每隔一段時間向日志文件中輸出當前時間,每行的格式類似於 May 26 11:17:09 rs2 -- MARK --,可以由此推斷系統發生故障的大概時間。
news 網路新聞傳輸協議(nntp)產生的訊息。
ntp 網路時間協議(ntp)產生的訊息。
user 使用者程序。
uucp UUCP子系統。

日誌優先順序

常見的日誌優先順序請見下標:

優先順序 說明
emerg 緊急情況,系統不可用(例如系統崩潰),一般會通知所有使用者。
alert 需要立即修復,例如系統資料庫損壞。
crit 危險情況,例如硬碟錯誤,可能會阻礙程式的部分功能。
err 一般錯誤訊息。
warning 警告。
notice 不是錯誤,但是可能需要處理。
info 通用性訊息,一般用來提供有用資訊。
debug 除錯程式產生的資訊。
none 沒有優先順序,不記錄任何日誌訊息。

常用日誌檔案

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

/var/log/boot.log:錄了系統在引導過程中發生的事件,就是Linux系統開機自檢過程顯示的資訊

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

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

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

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

/var/log/syslog:只記錄警告資訊,常常是系統出問題的資訊,使用lastlog檢視

/var/log/wtmp:該日誌檔案永久記錄每個使用者登入、登出及系統的啟動、停機的事件,使用last命令檢視

/var/run/utmp:該日誌檔案記錄有關當前登入的每個使用者的資訊。如 who、w、users、finger等就需要訪問這個檔案

/var/log/syslog 或 /var/log/messages 儲存所有的全域性系統活動資料,包括開機資訊。基於 Debian 的系統如 Ubuntu 在 /var/log/syslog 中儲存它們,而基於 RedHat 的系統如 RHEL 或 CentOS 則在 /var/log/messages 中儲存它們。
/var/log/auth.log 或 /var/log/secure 儲存來自可插拔認證模組(PAM)的日誌,包括成功的登入,失敗的登入嘗試和認證方式。Ubuntu 和 Debian 在 /var/log/auth.log 中儲存認證資訊,而 RedHat 和 CentOS 則在 /var/log/secure 中儲存該資訊。

日誌檔案詳細介紹:

/var/log/boot.log

該檔案記錄了系統在引導過程中發生的事件,就是Linux系統開機自檢過程顯示的資訊,如圖1所示:

/var/log/syslog

預設Centos,Fedora不生成該日誌檔案,但可以配置/etc/syslog.conf讓系統生成該日誌檔案。

它和/etc/log/messages日誌檔案不同,它只記錄警告資訊,常常是系統出問題的資訊,所以更應該關注該檔案。

要讓系統生成該日誌檔案,在/etc/syslog.conf檔案中加上:*.warning /var/log/syslog 該日誌檔案能記錄當用戶登入時login記錄下的錯誤口令、Sendmail的問題、su命令執行失敗等資訊。

該日誌檔案記錄最近成功登入的事件和最後一次不成功的登入事件,由login生成。在每次使用者登入時被查詢,該檔案是二進位制檔案,需要使用lastlog命令檢視,根據UID排序顯示登入名、埠號和上次登入時間。如果某使用者從來沒有登入過,就顯示為"**Never logged in**"。該命令只能以root許可權執行。簡單地輸入lastlog命令後就會看到類似圖4的資訊:

[[email protected] etc]# lastlog
Username         Port     From             Latest
root             pts/0    110.87.109.232   Wed Nov  2 10:34:20 +0800 2016
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**
uucp                                       **Never logged in**
operator                                   **Never logged in**
games                                      **Never logged in**
gopher                                     **Never logged in**
ftp                                        **Never logged in**
nobody                                     **Never logged in**
vcsa                                       **Never logged in**
saslauth                                   **Never logged in**
postfix                                    **Never logged in**
sshd                                       **Never logged in**
ntp                                        **Never logged in**
suda             pts/2    222.79.79.120    Tue Oct 25 16:00:01 +0800 2016

/var/log/wtmp

該日誌檔案永久記錄每個使用者登入、登出及系統的啟動、停機的事件。因此隨著系統正常執行時間的增加,該檔案的大小也會越來越大,增加的速度取決於系統使用者登入的次數。該日誌檔案可以用來檢視使用者的登入記錄,last命令就通過訪問這個檔案獲得這些資訊,並以反序從後向前顯示使用者的登入記錄,last也能根據使用者、終端tty或時間顯示相應的記錄。

/var/run/utmp

該日誌檔案記錄有關當前登入的每個使用者的資訊。因此這個檔案會隨著使用者登入和登出系統而不斷變化,它只保留當時聯機的使用者記錄,不會為使用者保留永久的記錄。系統中需要查詢當前使用者狀態的程式,如 who、w、users、finger等就需要訪問這個檔案。該日誌檔案並不能包括所有精確的資訊,因為某些突發錯誤會終止使用者登入會話,而系統沒有及時更新 utmp記錄,因此該日誌檔案的記錄不是百分之百值得信賴的。

以上提及的3個檔案(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日誌子系統的關鍵檔案,都記錄了使用者登入的情況。這些檔案的所有記錄都包含了時間戳。這些檔案是按二進位制儲存的,故不能用less、cat之類的命令直接檢視這些檔案,而是需要使用相關命令通過這些檔案而檢視。其中,utmp和wtmp檔案的資料結構是一樣的,而lastlog檔案則使用另外的資料結構,關於它們的具體的資料結構可以使用man命令查詢。

每次有一個使用者登入時,login程式在檔案lastlog中檢視使用者的UID。如果存在,則把使用者上次登入、登出時間和主機名寫到標準輸出中,然後login程式在lastlog中記錄新的登入時間,開啟utmp檔案並插入使用者的utmp記錄。該記錄一直用到使用者登入退出時刪除。utmp檔案被各種命令使用,包括who、w、users和finger。

下一步,login程式開啟檔案wtmp附加使用者的utmp記錄。當用戶登入退出時,具有更新時間戳的同一utmp記錄附加到檔案中。wtmp檔案被程式last使用。


相關推薦

Linux日誌系統日誌分析

Linux系統擁有非常靈活和強大的日誌功能,可以儲存幾乎所有的操作記錄,並可以從中檢索出我們需要的資訊。 大部分Linux發行版預設的日誌守護程序為 syslog,位於 /etc/syslog 或 /etc/syslogd 或/etc/rsyslog.d,預設配置檔案

Linux初學系統分割槽之分割槽與格式化

前言:該部落格主要為慕課網上一節課的筆記 系統分割槽之分割槽與格式化 在此感謝老師通俗易懂的講解 前幾天我在鬧電腦時也遇到了關於分割槽的問題:主分割槽與邏輯分割槽的區別,在此篇部落格都記錄了下來。 1.分割槽的概念  首先,什麼是分割槽?分割槽其實就是我們的硬碟需要分成

動態地圖開發日誌01:Python分析地圖中的區域

序:         幾年前,看到6H獵人在網上做的動態世界各國領土變化的視訊,被深深的吸引了,那個視訊也特別火,被各大知名媒體引入,本想向作者詢問視訊製作軟體,卻被告之是一幀幀畫出來的,作為一個資深地圖迷和程式設計師自然不能忍。其實看視訊的時候就已經在想這些演算法該怎

備忘elk日誌分析視訊 ELKStack視訊教程以及Solr教程

01.高階架構師日誌平臺之ELKStack實踐    01.elk簡介、ES安裝.flv    02.es叢集.flv    03-logstash快速入門.flv    04-logstash收集系統日誌-file.flv    05-logstash收集java日誌-c

linux——查看系統日誌錯誤並解決

初始化 .com mil 轉儲 來源 logs 任務 級別 查看系統 http://www.cnblogs.com/milliard/p/5597435.html 國內:中科大源日誌名稱: System來源: volmgr日期:

linux基礎學習 系統日誌

linux 系統日誌系統日誌默認分類/var/log/messages 系統服務及日誌,包括服務的信息,報錯等等 /var/log/secure 系統認證信息日誌 /var/log/maillog

linux文件系統日誌介紹

linux基礎知識我們將inode 塊與block塊稱為數據存放區域或普通數據塊,superblock、block塊位圖、inode位圖等稱為中間數據或者元數據,因為元數據經常變化,會存在與實際數據不一致的情況。所以就有了文件系統日誌功能。ext3文件系統日誌:首先將待寫的塊的一個副本放入日誌中,當發往日誌的

讀書筆記Cronjob原理源碼分析

之前 jobs 所有 res net pes 垃圾回收gc ive 發現 原文鏈接:https://mp.weixin.qq.com/s?__biz=MzI0NjI4MDg5MQ==&mid=2715291842&idx=1&sn=e605f9b40

學習筆記python-日誌logging

and 輸出流 Matter message deb 實例化 formatter 創建 級別 一、日誌分為幾個級別?debug--調試信息info--詳細信息:數據 進度warning 警告信息error 錯誤信息critical 致命的 嚴重的錯誤 二、實例impo

視頻滑板日誌

視頻 http vid one src ide hair idt height 1 2 3 4 5 6 7 8 9 【視頻】滑板日誌

Spring框架 ? WebApplicationInitializer源碼分析應用

web項目 方法 spring app 應用 加載 大於 filter ext 1、背景   在約定大於配置的大環境下,xml配置文件越來越多的被零配置所取代。還有大部分將原xml中的配置轉為在java類中定義。   而WebApplicationInitializer就可

linux計劃任務,系統日誌,故障處理

badblock 解決 用戶驗證 排查 名稱 輸出 分鐘 message 計劃任務管理 計劃任務管理 At 一次性任務設置。 服務腳本:/etc/init.d/atd 使用方法; #at 13:00

日誌分析工具、日誌管理系統、syslog分析

用戶 程序 方案 安全 inux aix 高效 應用 監控 日誌分析工具、日誌管理系統、syslog分析 系統日誌(Syslog)管理是幾乎所有企業的重要需求。系統管理員將syslog看作是解決網絡上系統日誌支持的系統和設備性能問題的關鍵資源。人們往往低估了對完整的sys-

Linux之rsyslog系統日誌分散式系統日誌統一運維

轉發:https://www.cnblogs.com/hanyifeng/p/5463338.html 一、rsyslog 介紹   ryslog 是一個快速處理收集系統日誌的程式,提供了高效能、安全功能和模組化設計。rsyslog 是syslog 的升級版,它將多種來源輸入輸出轉換結果到目

Linux 程序fork父子程序間共享資料分析

之前我們通過fork()函式,得知了父子程序之間的存在著程式碼的拷貝,且父子程序都相互獨立執行,那麼父子程序是否共享同一段資料,即是否存在著資料共享。接下來我們就來分析分析父子程序是否存在著資料共享。 我們都知道,在linux下,記憶體儲存的位置是 全域性變數,棧區,堆區,以及檔案 。字元常量

Linux-Ubuntu免U盤安裝windows 和 Ubuntu 18.04 雙系統流程,教你避免各種坑

python機器學習和深度學習的很多開源模組在windows下面不好用,一直使用的是虛擬機器,但是虛擬機器裡不敢給太高配置,電腦會卡,所以訓練很慢。為了提高使用體驗,決定裝一個windows和Linux(Ubuntu)的雙系統,在裝的過程中我真的遇到了非常多的坑

Linux基礎_系統日誌管理rsyslog

    系統日誌是程式在執行時自己產生的,而rsyslog只是將這些日誌採集下來,進行管理,系統日誌是非常重要的,可以通過對日誌的分析進行排錯。在實際生產中,如果需要對日誌進行操作,最好還是先將日誌進行備份。本篇文章講解的是rsyslog這個軟體採集日誌的格式,及其配置,希望

linux基礎如何確定系統使用的Eigen庫的版本

  path /usr/include/eigen3/Eigen/src/Core/util 檔案 Macros.h #define EIGEN_WORLD_VERSION 3 #define EIGEN_MAJOR_VERSION 2 #define EIGEN_MI

Linux深入epoll原始碼的函式呼叫流程分析(圖)

引入 我在上一篇博文中講了epoll原始碼的剖析,你是不是看的有點懵呢,反正我是有點,接下來我就以流程圖的形式梳理一下epoll原始碼的結構。 當然,這篇博文是建立在上一篇博文的基礎上,若你還沒看過

Linux技術嵌入式linux核心的五個子系統

Perface    Linux核心主要由程序排程(SCHED)、記憶體管理(MM)、虛擬檔案系統(VFS)、網路介面(NET)和程序間通訊(IPC)5個子系統組成,如圖1所示。 圖1 Linux核心的組成部分與關係 1.程序排程    程序排程控制系統中的多個程序對CPU的訪問,使