【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 | 與印表機活動有關。 |
郵件日誌。 | |
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的訪問,使