2011-12-05 88 views
1

當我在服務器上查看日誌時,我希望快速瞭解在深入挖掘之前所面臨的問題類型。我通常使用下面的單行內容,通過使每行更通用並僅保留唯一的行,從而減少需要查看的日誌行數。查看日誌文件的腳本

一襯墊

cat /var/log/apache2/error.log | sed 's/.*] \(.*\)/\1/' | sed 's/[0-9]*//g' | sort | uniq 

說明

| sed 's/.*] \(.*\)/\1/':去除包含內並且典型地對應於客戶機/系統特定信息的最後一個托架組之前一切如[Mon Dec 05 12:01:03 2011] [error] [client a.b.c.d]

| sed 's/[0-9]*//g':刪除號碼

| sort | uniq:只保留不同的線條。

給你一個想法,在/var/log/apache2/error.log包含大約500行,這將過濾到25行。當然,越是通用/相似的日誌條目,單線越有效。

我正在尋找,現在是一個腳本(可能是bashperlpython或其他任何東西實際上),可以做同樣的事情,但有點更先進的,以便更有效(例如混淆文件路徑,按字母順序排列的ID ...)並且非常有用(統計每條消息的出現次數,相對於日誌的總體數量%)。

你知道這樣做的腳本嗎?

+0

看看ScanErrLog如果你還沒有 –

+1

-1有很多日誌分析器可以找到你最喜歡的搜索引擎。沒有必要重新發明輪子。 –

+0

同意以上。但是,如果你必須推出自己的產品,你將不得不張貼一些樣本數據來解決你正在處理的問題。祝你好運。 – shellter

回答

4

看看logwatch。它確實會向您發送常見日誌文件的每日概述。我迄今爲止只用它來處理郵件日誌,但它也可以處理Apache日誌。