溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)中如何使用logwatch監(jiān)控日志文件

發(fā)布時(shí)間:2021-10-23 11:44:44 來源:億速云 閱讀:210 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹Linux系統(tǒng)中如何使用logwatch監(jiān)控日志文件,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

Linux 操作系統(tǒng)和許多應(yīng)用程序會(huì)創(chuàng)建特殊的文件來記錄它們的運(yùn)行事件,這些文件通常被稱作“日志”。當(dāng)要了解操作系統(tǒng)或第三方應(yīng)用程序的行為或進(jìn)行故障排查時(shí),這些系統(tǒng)日志或特定的應(yīng)用程序日志文件是必不可少的的工具。但是,日志文件并沒有您們所謂的“清晰”或“容易”這種程度的可讀性。手工分析原始的日志文件簡直是浪費(fèi)時(shí)間,并且單調(diào)乏味。出于這個(gè)原因,對(duì)于系統(tǒng)管理員來說,發(fā)現(xiàn)任何一款能把原始的日志文件轉(zhuǎn)換成更人性化的記錄摘要的工具,將會(huì)受益無窮。

Linux系統(tǒng)中如何使用logwatch監(jiān)控日志文件

logwatch 是一款用 Perl 語言編寫的開源日志解析分析器。它能對(duì)原始的日志文件進(jìn)行解析并轉(zhuǎn)換成結(jié)構(gòu)化格式的文檔,也能根據(jù)您的使用情況和需求來定制報(bào)告。logwatch 的主要目的是生成更易于使用的日志摘要,并不是用來對(duì)日志進(jìn)行實(shí)時(shí)的處理和監(jiān)控的。正因?yàn)槿绱?,logwatch 通常被設(shè)定好時(shí)間和頻率的自動(dòng)定時(shí)任務(wù)來調(diào)度運(yùn)行或者是有需要日志處理的時(shí)候從命令行里手動(dòng)運(yùn)行。一旦日志報(bào)告生成,logwatch 可以通過電子郵件把這報(bào)告發(fā)送給您,您可以把它保存成文件或者直接顯示在屏幕上。

Logwatch 報(bào)告的詳細(xì)程度和報(bào)告覆蓋范圍是完全可定制化的。Logwatch 的日志處理引擎也是可擴(kuò)展的,從某種意義上來說,如果您想在一個(gè)新的應(yīng)用程序中使用 logwatch 功能的話,只需要為這個(gè)應(yīng)用程序的日志文件編寫一個(gè)日志處理腳本(使用 Perl 語言),然后掛接到 logwatch 上就行。

logwatch 有一點(diǎn)不好的就是,在它生成的報(bào)告中沒有詳細(xì)的時(shí)間戳信息,而原來的日志文件中是存在的。您只能知道被記錄下來的一段時(shí)間之內(nèi)的特定事件,如果想要知道精確的時(shí)間點(diǎn)的信息,就不得不去查看原日志文件了。

安裝 Logwatch

在 Debian 系統(tǒng)或其派生的系統(tǒng)上:

# aptitude install logwatch

在基于 Red Hat 的發(fā)布系統(tǒng)上:

# yum install logwatch

配置 Logwatch

安裝時(shí),主要的配置文件(logwatch.conf)被放到 /etc/logwatch/conf 目錄中。此文件(默認(rèn)是空的)定義的設(shè)置選項(xiàng)會(huì)覆蓋掉定義在 /usr/share/logwatch/default.conf/logwatch.conf 文件中的系統(tǒng)級(jí)設(shè)置。

在命令行中,啟動(dòng) logwatch, 如果不帶參數(shù)的話,將會(huì)使用 /etc/logwatch/conf/logwatch.conf 文件中定義的選項(xiàng)。但,只要一指定參數(shù),它們就會(huì)覆蓋 /etc/logwatch/conf/logwatch.conf 文件中的任意默認(rèn)/自定義設(shè)置。

這篇文章里,我們會(huì)編輯 /etc/logwatch/conf/logwatch.conf 文件來對(duì)一些默認(rèn)的設(shè)置項(xiàng)做些個(gè)性化設(shè)置。

Detail = <Low, Med, High, 或數(shù)字>

“Detail” 配置指令控制著 logwatch 報(bào)告的詳細(xì)程度。它可以是個(gè)正整數(shù),也可以是分別代表著10、5和0數(shù)字的 High、Med、Low 幾個(gè)選項(xiàng)。

MailTo = youremailaddress@yourdomain.com

如果您讓把一份 logwatch 的報(bào)告郵件給您,就要使用 “MailTo” 這個(gè)配置指令。要把一份報(bào)告發(fā)送給多個(gè)用戶,只需要把他們的郵件地址用空格格開,然后配置上去。但是,您需要在 logwatch 運(yùn)行的服務(wù)器上配置好本地郵件傳輸代理(MTA)如,sendmail、 Postfix 等,這個(gè)配置指令項(xiàng)才能起作用。

Range = <Yesterday|Today|All>

"Range" 配置指令定義了生成 logwatch 報(bào)告的時(shí)間段信息。這個(gè)指令通常可選的值是 Yesterday、Today、All。當(dāng)作用了“Rang = All”時(shí),“Archive = yes” 這個(gè)指令項(xiàng)也必須配置上,那么所有的已存檔的日志文件 (比如,/var/log/maillog、/var/log/maillog.X 或 /var/log/maillog.X.gz 文件)都會(huì)被處理到。

除了這些通用的 range 值,您也可以使用復(fù)雜點(diǎn)的選擇值,如下所示:

  • Range = "2 hours ago for that hour"

  • Range = "-5 days"

  • Range = "between -7 days and -3 days"

  • Range = "since September 15, 2014"

  • Range = "first Friday in October"

  • Range = "2014/10/15 12:50:15 for that second"

要使用上面例子中自由形式的 range,您需要從 CPAN(注:Comprehensive Perl Archive Network) 上下載安裝 Perl 的 Date::Manip 模塊。關(guān)于 CPAN 模塊的安裝說明,請請參閱此帖 。

Service = <service-name-1>Service = <service-name-2>. . .

“Service” 選項(xiàng)指定想要監(jiān)控的一個(gè)或多個(gè)服務(wù)。在 /usr/share/logwatch/scripts/services 目錄下列出的服務(wù)都能被監(jiān)控,它們已經(jīng)涵蓋了重要的系統(tǒng)服務(wù)(例如:pam,secure,iptables,syslogd 等),也涵蓋了一些像 sudo、sshd、http、fail2ban、samba等主流的應(yīng)用服務(wù)。如果您想添加新的服務(wù)到列表中,得編寫一個(gè)相應(yīng)的日志處理 Perl 腳本,并把它放在這個(gè)目錄中。

如果這個(gè)選項(xiàng)要用來選擇特定的服務(wù)話,您需要把 /usr/share/logwatch/default.conf/logwatch.conf 文件中的 "Service = All " 這一行注釋掉。

Linux系統(tǒng)中如何使用logwatch監(jiān)控日志文件

Format = <text|html>

“Format” 配置指令定義了一份 logwatch 報(bào)告的格式(比如 text 或者 HTML)。

Output = <file|mail|stdout>

"Output" 配置指令定義生成的 logwatch 報(bào)告要發(fā)送的目的地。它能被保存成文件(file),生成電子郵件(mail)或者是直接在屏幕上顯示(stdout)。

用 Logwatch 來分析日志文件

要弄明白怎么使用 logwatch 來分析日志文件,可以參考下面的 logwatch.conf 文件例子:

Detail = HighMailTo = youremailaddress@yourdomain.comRange = TodayService = httpService = postfixService = zz-disk_spaceFormat = htmlOutput = mail

使用這些設(shè)置,logwatch 將會(huì)處理三個(gè)應(yīng)用服務(wù)(http、postfix 和 zz-disk_space)當(dāng)天產(chǎn)生的日志,生成一份非常詳細(xì)的 HTML 格式報(bào)告,然后郵件給您。

如果您不想個(gè)性化 /etc/logwatch/conf/logwatch.conf,您可以不修改此文件讓其默認(rèn),然后在命令行里運(yùn)行如下所示的命令。也會(huì)得到同樣的輸出。

# logwatch --detail 10 --mailto youremailaddress@yourdomain.com --range today --service http --service postfix --service zz-disk_space --format html --output mail

電子郵件發(fā)送的報(bào)告樣子如圖示:

Linux系統(tǒng)中如何使用logwatch監(jiān)控日志文件

這份電子郵件頭部包含指向?qū)Ш降綀?bào)告細(xì)節(jié)的鏈接,在每個(gè)選中的服務(wù)細(xì)節(jié),也會(huì)有“返回頂部”的鏈接。

接收人很少的情況下您可能會(huì)使用電子郵件發(fā)送報(bào)告這個(gè)選項(xiàng)。其它情況下,您可能會(huì)把讓其生成為 HTML 格式的報(bào)告,這樣每個(gè)想看這份報(bào)告的人都可以從網(wǎng)絡(luò)共享里看到。只需要把上面例子中的配置做些修改就可以實(shí)現(xiàn):

Detail = HighRange = TodayService = httpService = postfixService = zz-disk_spaceFormat = htmlOutput = fileFilename = /var/www/html/logs/dev1.html

同樣的,也可以在命令行中運(yùn)行如下的命令。

# logwatch --detail 10 --range today --service http --service postfix --service zz-disk_space --format html --output file --filename /var/www/html/logs/dev1.html

***,讓我們使用 cron 來配置 logwatch 的定時(shí)執(zhí)行任務(wù)。下面的例子中,將會(huì)在每個(gè)工作日的下午 12:15 分運(yùn)行 logwatch 調(diào)度任務(wù)。

# crontab -e

15 12 * * 1,2,3,4,5 /sbin/logwatch

以上是“Linux系統(tǒng)中如何使用logwatch監(jiān)控日志文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI