linux下日志管理系统,Linux管理日志系统详解
本文和大家探討如何利用linux日志系統來管理系統。為方便閱讀,在作者原文的基礎上,有所修改。
對于日志信息的管理通常采用兩種方法,一種方法是不同服務器的日志信息都存放在各自系統內,系統管理員對各服務器進行分散管理。
另一種方法則是使用日志主機系統,這是一個從其他主機收集日志,并將它們存放在同一個地方的系統,很容易使來自多個主機的日志條目關聯起來,對其進行統一管理、分析,甚至配合自動化工具進行實時的監控,有效提高管理的效率。
第一種方法往往是大多數系統管理員的常用的方法,這種傳統的管理方法在服務器數量較少時還能勉強應付,但在處理多主機狀況時卻并非一種有效的方法。
本文主要講述二種日志管理方法,探尋一種提高系統管理效率的途徑。
一、日志主機系統的部署
日志主機系統包括日志主機及各主機系統兩個部分,其中日志主機相當于服務器端,而各主機系統相當于客戶端,將日志信息實時的傳送到日志主機上來。
1. 日志主機的部署
日志主機采用一臺RHEL 5的服務器(假設其主機名為loghost),日志收集軟件采用Linux平臺上的Syslog,Syslog一般都隨Linux系統安裝時已經安裝,對于我們部署整個系統提供了極大的便利性,因此在此不對其安裝步驟進行闡述,僅講述其配置方法。
Syslog既可作為客戶端,也可作為服務器端,并且支持遠程的日志收集。其配置文件為/etc/sysconfig/syslog,要配置其作為服務器端,需對此配置文件相應部分改為如下所示:
SYSLOGD_OPTIONS=“-r-m 0”
“-r”選項表示使syslog接收客戶端的遠程日志信息。
接下來重啟Syslog服務器端使配置生效:
#service syslogd restart
由于Syslog采用514端口監聽來自各客戶端的日志信息,因此需要在日志主機的防火墻上開放514端口,以iptables為例,對特定網段開放514端口:
/sbin/iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/16 -dport 514 -syn -j ACCEPT
2.客戶端的部署
2.1 Linux平臺下客戶端的部署
在Linux平臺下依然選擇syslog作為客戶端進行部署,此時此配置文件為/etc/syslog.conf,其默認配置為(僅以/var/log/message日志為例):
*.info;mail.none;authpriv.none;cron.none /var/log/messages
/var/log/message即Sysolg存放系統日志的絕對路徑,將此值替換為日志主機名即可。例子如下:
*.info;mail.none;authpriv.none;cron.none @loghost
根據上述配置,當Syslog重啟使用配置生效后,客戶端服務器的日志信息將會實時的傳送到日志主機的/var/log/message文件里,對各服務器的日志信息進行統一的管理。
使用如下命令重啟Syslog服務使配置生效:
#service syslogd restart
依上述方法將其他系統日志信息(如/var/log/secure)導入到日志主機上。
筆者建議,采用添加配置而非修改的方法,同時在本地及日志主機上保存系統日志。
2.2 Windows平臺下客戶端的部署
在Windows平臺下采用軟件evtsys進行客戶端的部署,其下載鏈接為http://engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys/evtsys_exe.zip 解開后得到兩個文件:evtsys.ext和evtsys.dll。
將這兩個文件放到C:WINDOWSsystem32目錄下,在命令行狀態下運行如下命令進行安裝: %systemroot%system32evtsys –i-h loghost
當安裝成功后,可查看服務列表看到相應的信息。
卸載evtsys的命令為:
%systemroot%system32evtsys -u
更改日志主機名的命令為:
Net stop evtsys //停止 evtsys
evtsys-u //卸載 evtsys
evtsys-l-h newloghost //指定新的日志主機名
net start evtsys //啟動 evtsys
二、日志主機的自動日志分析與監控
當整個系統部署好后,可以從日志主機里驗證各服務器是否將日志信息發送到了日志主機上。
以/var/log/message為例,打開此文件,當看到具有不同主機名字的日志信息標志著日志主機已經正常工作,節選部分日志如下:
Jan 9 08:39:38 dog crond(pam_unix)[4528]:ses-sion opened for user root by (uid=0)
Jan 9 08:39:36 dog crond(pam_unix)[4528]:session closed for user root
Jan 9 08:39:40 panda crond(pam_unix)[20296]:ses-sion opened for user root by(uid=0)
Jan 9 08:39:40 panda crond(pam_unix)[20296]:ses-sion closed for user root
Jan 9 08:39:53 app last message repeated 8 times
Jan 9 08:40:11 apple net-snmp[657]:Connection from udp:92.168.1.11:4298
Jan 9 08:40:11apple net-snmp[657]:Received SNMP packet(s) from udp:159.226.2.144:42988
Jan 9 08:41:15orangesshd(pam_unix)[28389]:ses-sion opened for user tom by(uid=2011)
Jan 9 08:41:28 orange sshd(pam_unix)[28389]:ses-sion opened for user tom by (uid=2011)
Jan 9 08:41:28 orange 1月9 08:41:28 su` (pam_unix)[28425]:session opened for user root by tom (uid=2011)
對于如此龐大的日志信息,大部分并沒多大的用處,但在跟蹤某一具體問題或者安全漏洞時卻可能很有用。那么我們如何對其進行有效地分析與監測,發揮其真正作用呢?在此推薦兩款比較常用的日志分析與監控軟件,對這些日志信息進行自動地分析與監控。
1. 利用Logwatch 進行日志監控
在Linux系統中,已經默認安裝了Logwatch,配合Sendmail的郵件發送功能,向系統管理員發送前一天的日志分析結果郵件。其配置文件為/etc/log.d/logwatch.conf,下面是省略注釋后的配置文件,一般只需將MailTo部分改為系統管理員郵箱地址即可,更多的配置細節可參考其官方http://www.logwatch.org
LogDir =/var/log
MallTo=admin@local.com
Pnnt=No
Range=yesterday
Detail=High
Service=All
2. 利用Swatch進行日志的實時監控
Swatch 下載鏈接為http://sourceforge.net/projects/swatch/ 要安裝 Swatch,需要先安裝兩個perl模塊包:Date-Calc-5.4.tar.gz和TimeDate-1.16.tar.gz 接著安裝Swatch,安裝步驟如下:
#tar-zxvf swatch-3.2.1.tar.gz
#cd swatch-3.2.1
#perl Makefile.pl
#make
#make test
#make install
配置Swatch使其作,需建立配置文件~/.swatchrc,按照其語法規則添加監測的相關內容,可使用“man swatch”命令查看具體配置內容及含義。
下面是一個簡單的范例,僅供參考:
Watch for = /Failed fuseraddllnvalid/i #采用正則表達式的形式指定監測的內容#
echo #使得匹配的行通過stdout顯示#
mail address=admin@local.com,subject=Monitor Result #向系統管理員發送監測結果郵件,并設定相應的主題#
使用“swatch--help”查看Swatch運行時的具體選項。
下面是一個運行命令范例,僅供參考:
#swatch-config-file=~/.swatchrc-examine=/var/log/messages
當出現監控到的信息時,Swatch即會實時地發送郵件給系統管理員,及時杜絕入侵者的各種入侵嘗試,保護系統的安全。
三、總結
日志主機系統的建立,不但能夠有效提高日志管理、分析及監測的效率,同時它也對于日志信息的安全保護起到了極為重要的作用,它將各服務器的日志信息在日志主機上進行備份,同時也能夠有效防止入侵痕跡,為系統管理工作提供了極大的便利性,是有效保障系統安全的重要途徑之一。
總結
以上是生活随笔為你收集整理的linux下日志管理系统,Linux管理日志系统详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle随机日期没有斜杠,收集awk
- 下一篇: linux ls命令全称,Linux l