當前位置:編程學習大全網 - 源碼下載 - 如何查看linux的系統日誌

如何查看linux的系統日誌

日誌文件詳細記錄了系統每天發生的各種事件。用戶可以通過日誌文件檢查錯誤的原因,或者在受到攻擊和黑客攻擊時追蹤攻擊者。日誌的兩個重要功能是:審計和監控。Linux系統的日誌主要分為兩種:1。進程日誌由用戶進程或其他系統服務進程生成,如服務器上的access_log和error_log日誌文件。2.syslog消息系統記錄的日誌。任何想要記錄日誌的系統進程或用戶進程都可以調用syslog來記錄日誌。日誌系統可分為三個子系統:1。連接時間日誌——由多個程序執行,將記錄寫入/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,這樣系統管理員就可以跟蹤誰在什麽時候登錄了系統。2.進程統計——由系統內核執行。當進程終止時,在進程統計文件(pacct或acct)中為每個進程寫壹條記錄。進程統計的目的是為系統中的基本服務提供命令使用統計。3.錯誤日誌-由syslogd(8)執行。各種系統守護進程、用戶程序和內核通過syslog(3)向文件/var/log/messages報告值得註意的事件。2.查看日誌文件。Linux系統的所有日誌文件都在/var/log下,必須有root權限才能查看。日誌文件實際上是壹個純文本文件,每壹行都是壹條消息。有很多方法可以看到。1.cat命令。日誌文件總是很大,因為從第壹次啟動Linux開始,消息就累積在日誌文件中。如果文件超過壹頁,文件的內容將會不清楚,因為顯示滾動得太快。2.文本編輯器。最好不要用文本編輯器打開日誌文件,因為這樣壹方面消耗大量內存,另壹方面也不允許隨意更改日誌文件。3.以頁的形式顯示程序,如或多或少。4.使用grep查找特定的消息。每行代表壹條消息,它由四種固定格式組成:n timestamp,表示消息發送的日期和時間;n hostname(在我們的例子中,主機名是escher),表示生成消息的計算機的名稱。如果只有壹臺計算機,主機名可能不是必需的。但是,如果在網絡環境中使用syslog,則可能需要將來自不同主機的消息發送到服務器進行集中處理。n生成消息的子系統的名稱。可以是“內核”,表示消息來自內核,也可以是進程名,表示發送消息的程序名。方括號中是進程的PID。n條消息,剩下的就是消息的內容了。示例:輸入:tail/var/log/messages Jan 05 21:55:51 localhost最後壹條消息重復了3次Jan 05 21:55:51 localhost內核:[drm]英特爾i810上的AGP 0.99 @ 0xf 00000000 128 mbjan 05 21:55:56538 1月5日21:56:39 localhost 1:56:39 gconfd(root-4162):開始(版本2.2.0),Pid 4162用戶“root”1月5日21:56:39 localhost 1:56:39 gconfd(root-4162):解析的地址“root” Gconf.xml.mandatory "指向只讀配置源Jan 05 21:56:39 localhost 1:56:39 gconfd(root-4162):解析的地址" XML: readwrite:/root。。gconf "指向可寫配置源Jan 05 21:56:39 localhost 1.28 21:56:39 gconfd(root-4162):解析地址" XML: readonly:/etc。Gconf.xml.defaults”指向只讀配置源Jan 05 21:58:20 localhost kernel:msdos fs:iocharset CP 936位於2。值得註意的是,與連接時間日誌不同,進程統計子系統默認不激活,必須啟動。accton命令用於在Linux系統中啟動進程統計,必須以root身份運行。accton命令是acctonfile的形式,必須預先存在。使用touch命令創建壹個pacct文件:touch/var/log/pacct,然後運行accton: accton/var/log/pacct。壹旦accton被激活,您就可以使用lastcomm命令來監視系統中任何時候執行的命令。要關閉統計,可以使用不帶任何參數的accton命令。3.日誌系統3.1 syslog的工作原理和配置,它與closelog和openlog * * *壹起向系統日誌器發送消息。Linux內核由許多子系統組成,包括網絡、文件訪問、內存管理等等。子系統需要向用戶發送壹些消息,包括消息的來源和重要性。所有子系統都應該向可維護的公共消息區域發送消息。所以,有壹個程序叫Syslog。這個程序負責接收消息(如錯誤消息、警告消息和其他由系統核心和許多系統程序生成的信息,每個信息都包含重要級別)並將消息分發到適當的位置。通常,所有消息都記錄在壹個特定的文件-日誌文件中(通常是/var/adm或/var/log目錄中的消息文件),特別重要的消息也會顯示在用戶終端窗口中。syslog工具有兩個重要的文件:syslogd和syslog.Conf,它可以接受接入系統的日誌信息,並根據“/etc/syslog.conf”配置文件中的指令處理信息。守護進程和內核為訪問系統提供日誌信息。因此,任何想要生成日誌信息的程序都可以調用syslog接口來生成這些信息。3.2 syslogd守護進程和其他復雜的操作系統壹樣,Linux也是由許多不同的子系統組成的。壹些名為daemon的程序壹直在後臺運行。換句話說,它們是“未知的”,不需要與用戶交互),處理壹些日常任務,如打印、發送電子郵件、建立互聯網連接等等。每個子系統在發送日誌消息時,都會為消息分配壹個類型。壹條消息分為兩部分:“設施”和“級別”。“設備”標識發送消息的子系統,可以組合相同類型的消息。“級別”表示消息的重要性,範圍從調試(最不重要)到緊急(最重要)。設施和級別的組合稱為優先級。(詳細解釋參見5.3)/usr/include/sys/syslog . h有相關定義。用戶看不到守護程序,因為他們沒有窗口和用戶界面。然而,這些程序有時必須向用戶傳達壹些信息。為了實現這個目標,需要壹個特殊的機制。守護進程的壹個很好的例子是syslogd,它在後臺運行,將消息從日誌區傳輸到日誌文件。函數接口# includeVoid open log (char *,int,int),其中可以是以下值的OR組合:LOG_CONS:如果消息無法發送到syslogd,則直接輸出到系統控制臺。LOG_NDELAY:立即打開到syslogd的連接。默認情況下,首次寫入消息時會打開連接。LOG_PERROR:同時將消息發送到stderr。LOG_PID:將每條消息中的PID記錄到void syslog( int,char *)中,這裏是設施和級別的OR組合。壹般只需要syslog()函數,其他函數可以省略。3.3 syslog.conf這是壹個非常重要的文件。位於“/etc/”目錄中。告訴syslogd如何根據設備和信息嚴重性報告信息。該文件使用以下格式:facility . levelactionsyslog . conf的第壹列用於指定日誌記錄功能和日誌記錄級別,用。、和*可用於匹配所有日誌記錄功能和日誌記錄級別。第二列action是消息的分發目標。空行和以#開頭的行是註釋,可以忽略。Facility.level字段也稱為選擇器。N facility指定了syslog函數,主要包括以下內容:pam_pwdb上報的auth認證活動。Authpriv包括特權信息,例如用戶名、認證活動、cron和at相關信息。關於守護進程和inetd守護進程的信息。Kern內核信息首先通過klogd傳輸。與印刷服務相關的Lpr信息。郵件電子郵件相關信息標記syslog內部函數用於從新聞服務器生成時間戳新聞信息由用戶生成的syslog信息由用戶程序生成的用戶信息由uucp生成的uucp信息本地0-本地7由自定義程序使用。例如,使用local5作為ssh function *通配符表示除mark之外的所有函數級別,mark決定消息的重要性。每個功能對應的優先級是按照壹定的順序排列的,emerg是最高級別,其次是alert,以此類推。默認情況下,/etc/syslog.conf記錄中指定的級別是該級別及更高級別。如果要用某壹級,可以用兩個運算符!(不相等)and =例如,user。=info告訴syslog接受信息級別的所有用戶功能信息。n以下的等級重要性逐漸降低:emerg系統無法使用。需要立即修改警報。暴擊阻止某些工具或子系統實現其功能。err阻止壹些工具或子系統實現它們的功能。錯誤條件w .警告預警信息通知具有重要的壹般條件info提供信息消息debug不包含功能條件或問題的其他信息none沒有重要級別,通常用於調試*所有級別,除了noneAction字段是Action字段之外,所表示的活動具有很大的靈活性。特別是,名稱管道可以用來使syslogd生成後處理信息。Syslog主要支持以下活動:file將消息追加到指定的文件末端終端或打印完整的串行或並行設備標識符@host遠程日誌服務器用戶名。將消息寫入指定的用戶命名管道指定使用mkfifo命令創建的FIFO文件的絕對路徑。*將消息寫入所有用戶選擇的字段,以指示消息的類型和優先級;操作字段指示syslogd在收到與選擇標準匹配的消息時采取的操作。每個選項由壹個設備和壹個優先級組成。當指示優先級時,syslogd將記錄具有相同或更高優先級的消息。例如,如果指定了“crit ”,將記錄所有標有crit、alert和emerg的消息。每行的操作字段指示當選擇字段選擇給定消息時,該消息應發送到哪裏。以下是實際站點的配置(syslog.conf)文件:# store critical staff in critical # *。=暴擊;Kern.none /var/adm/critical這將優先保存/var/adm/critical文件中的所有信息,但某些內核信息# kernel消息除外,它們首先存儲在kernel #文件中。關鍵消息和更高級的消息也會#發送到另壹臺主機和控制臺#kern。*/var/ADM/kernel kern . crit @ finlandiakern . crit/dev/console kern . info;克恩。!Err /var/adm/kernel-info第壹段代碼指示壹些內核設備訪問/var/adm/kernel文件的信息。第二段代碼直接引導所有具有crit和更高優先級的內核信息訪問遠程主機。如果它們也存儲在遠程主機上,您仍然可以嘗試找到損壞的原因。第四行顯示syslogd將優先級從info到warning的所有內核信息保存在/var/adm/kernel-info文件夾中。排除所有錯誤和更高優先級。tcp wrapper用mail.info登錄,我們顯示# TTY 12 #郵件上的所有連接。= info /dev/tty12這將使用mail.info(在sourcelog _ maillog _ info中)將所有信息引導到/dev/tty12下的控制臺12。例如,默認情況下,tcpwrapper tcpd(8)在壹個文件郵件中使用這個# storeallmail關心的東西。*;郵件。!=info /var/adm/mail模式匹配具有郵件功能的所有信息,但具有info優先級的信息除外。它們將被保存在文件/var/adm/mail # logallmail.info和news.info消息中,保存到info # mail。新聞。= info/var/ADM/info提取具有mail.info或news.info功能優先級的所有信息,並將其存儲在文件/var/ADM/info # loginfo中,並將消息通知到消息文件# *。= info*.=通知;\ mail.none /var/log/messages使syslogd日誌中具有info或notice功能的郵件信息存儲在文件/var/log/messages中,但# log info messages to messages file # *除外。= info語句\ mail,news.none /var/log/messages將syslogd日誌中所有具有info優先級的信息存儲在/var/log/messages文件中。但是壹些具有郵件或新聞功能的信息不能被存儲。#緊急消息將使用wall # *顯示。= emerg *這行代碼告訴syslogd將所有緊急消息寫入所有當前登錄的用戶日誌。優先警報的代碼#消息將#發送給操作員# *。提醒魯特,喬伊*。* @ Finland將所有具有警戒或更高權限的信息導向終端操作。第二行代碼將所有信息發送到名為Finland的遠程主機。這段代碼非常有用,尤其是當所有syslog信息都將保存到壹臺機器上的集群計算機時。3.4 klogd守護程序klog是壹個從UNIX內核接收消息的設備。klogd守護進程獲取並記錄Linux內核信息。通常,syslogd記錄來自klogd的所有信息。換句話說,klogd將讀取內核信息並將其轉發給syslogd進程。但是,如果調用帶有-f filename變量的klogd,klogd會記錄filename中的所有信息,而不是將其傳遞給syslogd。當另壹個文件被指定用於日誌記錄時,klogd將所有級別或優先級寫入該文件。Klogd中沒有類似/etc/syslog.conf的配置文件。用klogd代替syslogd的好處是可以發現很多錯誤。總之,箭頭表示向目標進程發送消息或將信息寫入目標文件。圖1 Linux日誌系統的Linux管理和日誌保護logrotate程序是用來幫助用戶管理日誌文件的,它作為自己的守護進程工作。Logrotate定期輪換日誌文件,它可以定期將每個日誌文件重命名為備份名稱,然後讓其守護程序開始使用日誌文件的新副本。在/var/log/下生成maillog、maillog.1、maillog.2、boot.log.1、boot.log.2等文件。它由配置文件驅動, 這是/etc/logroatate.conf。以下是logrotate . conf文件的示例:#有關詳細信息,請參閱“man log rotate ”#每周旋轉日誌文件# 7天周期#保持4周的積壓日誌值每4周旋轉4個#備份日誌文件#將錯誤發送到root錯誤root#向root報告錯誤#旋轉舊日誌文件後創建新的(空)日誌文件創建#在轉換舊日誌文件後創建新日誌文件#未提交如果您希望日誌文件壓縮#壓縮# 指定是否壓縮日誌文件# rpm程序包將日誌輪換信息放入此目錄include/etc/ logrotate.d#沒有程序包擁有lastlog或wtmp -我們將在此輪換它們/var/log/wtmp { monthly create 0664 root utmp rotate 1 } #系統特定的日誌可以在此配置在網絡應用程序中,有壹種方法可以保護日誌。 在網絡中設置壹個秘密的syslog主機,並將該主機的網卡設置為混雜模式,以監控子網中的所有syslog數據包,這樣就可以將所有需要傳輸日誌的主機配置為向壹個不存在的主機發送日誌。這樣,即使黑客捕獲了目標主機,也無法通過syslog.conf文件找到備份日誌的主機,它只是壹個不存在的主機。實際上,可以補充交換機配置,以確保備份日誌主機上的syslog進程可以接受syslog包。例如,如果syslog.conf中的日誌主機設置為@ 192.168.0 . 13,但實際網絡中並不存在這個日誌主機,可能實際上是192.438+068.0.250或者其他主機正在接受syslog數據包。
  • 上一篇:網頁設計發展趨勢有哪些
  • 下一篇:怎麽知道dedecms網址dedecms都能做什麽網站
  • copyright 2024編程學習大全網