周莉 李金祥
摘 要:文章以中小企業(yè)日志服務(wù)為出發(fā),闡述日志服務(wù)器的配置和管理方法,分析不同級(jí)別日志信息的管理方法和日志輪替,總結(jié)日志服務(wù)器運(yùn)維方式。
關(guān)鍵詞:Linux;日志服務(wù)器;輪替
在Linux系統(tǒng)中,日志文件起著至關(guān)重要的作用,日志文件可以記錄用戶登錄信息、系統(tǒng)故障等大量的信息,合理地使用日志文件可以及時(shí)發(fā)現(xiàn)問題并制定相應(yīng)的解決方案。日志文件的產(chǎn)生方式有兩種:一種是由操作系統(tǒng)產(chǎn)生,一種是由各自軟件自帶的日志功能產(chǎn)生[1]。
1 日志管理概述
rsyslog是當(dāng)前主流Linux系統(tǒng)默認(rèn)的分布式日志管理工具,這款系統(tǒng)工具遵循了高性能、高安全功能和模塊化設(shè)計(jì),能夠接受各種日志信息源,可多款數(shù)據(jù)庫協(xié)同工作,可對(duì)日志進(jìn)行過濾,也可自定義日志輸出格式。在網(wǎng)絡(luò)環(huán)境下,可以將本地機(jī)日志文件進(jìn)行遠(yuǎn)程存儲(chǔ)統(tǒng)一放到日志服務(wù)器上[2]。本文以CentOS6.5為平臺(tái),闡述中小企業(yè)中日志管理服務(wù)器的配置和運(yùn)維方法,包括日志服務(wù)器的搭建、Web服務(wù)器和郵件服務(wù)器日志的集中管理,日志文件的輪替管理,設(shè)企業(yè)內(nèi)部網(wǎng)絡(luò)使用的網(wǎng)段是192.168.0.024,日志服務(wù)器地址是192.168.0.254,郵件服務(wù)器地址是192.168.0.253,Web服務(wù)器的地址是192.168.0.252。
1.1 rsyslog配置文件解析
rsyslog配置文件主要由模塊、全局配置、規(guī)則、模板和輸出這5部分組成。
1.1.1 模塊
模塊部分用以說明rsyslog運(yùn)行時(shí)加載哪些模塊,例如本地日志記錄、內(nèi)核日志信息記錄等。
1.1.2 全局配置
全局變量配置ryslog守護(hù)進(jìn)程的全局屬性,比如主信息隊(duì)列大小、配置文件存放目錄及名稱等。
1.1.3 規(guī)則
規(guī)則由選擇部分(Selector)和動(dòng)作部分(Action)組成,選擇部分又分為日志設(shè)施和日志級(jí)別。日志設(shè)施主要包括授權(quán)與安全相關(guān)的信息(auth, authpriv)、內(nèi)核信息(kern)、郵件系統(tǒng)消息(mail)、cron守護(hù)進(jìn)程信息(cron)、守護(hù)進(jìn)程產(chǎn)生的信息(daemon)、網(wǎng)絡(luò)消息子系統(tǒng)(news)、打印相關(guān)的信息(lpr)、用戶相關(guān)日志信息(用戶進(jìn)程相關(guān)的信息)、保留本地使用的日志設(shè)施(local0 to local7)。日志級(jí)別按嚴(yán)重程度由低到高可包括常規(guī)信息(info)、注意事項(xiàng)(notice)、警告信息(warning)、錯(cuò)誤信息(err,crit,alert和emerg),其中,err是指一些重大的錯(cuò)誤信息,例如配置文件的某些設(shè)置值造成該服務(wù)無法啟動(dòng)的信息說明,crit是比err嚴(yán)重的錯(cuò)誤,alert指更嚴(yán)重的錯(cuò)誤,emerg指系統(tǒng)致命的錯(cuò)誤。例如硬件問題導(dǎo)致內(nèi)核無法順利運(yùn)行時(shí)會(huì)出現(xiàn)emerg等級(jí)的錯(cuò)誤信息。日志設(shè)備和日志級(jí)別的配置可選用[.=!]鏈接符號(hào),具體含義如下:(1)“.”代表比后面還要高的級(jí)別(含該級(jí)別)都別記錄;(2)“.=”代表只記錄該等級(jí)的信息;(3)“.!”代表不等于,即除該級(jí)別的其他級(jí)別信息都記錄。動(dòng)作部分是規(guī)則描述的一部分,位于選擇器部分后面,逾期用空格或制表符分開,定義如何處理消息??偟膩碚f,消息內(nèi)容被寫到一種日志文件上,但也可以執(zhí)行其他動(dòng)作,比如寫到數(shù)據(jù)庫表中或轉(zhuǎn)發(fā)到其他主機(jī)。(1)保存到文件,mail.* -/var/log/maillog如果路徑前有“-”,則表示每次輸出日志時(shí)不同步(fsync)指定日志文件。文件路徑既可以是靜態(tài)文件也可以是動(dòng)態(tài)文件,動(dòng)態(tài)文件由模板前加“?”定義。(2)通過網(wǎng)絡(luò)發(fā)送日志,@表示使用 UDP 協(xié)議,@@表示使用 TCP 協(xié)議[3]。(3)“~”表示丟棄所有信息。
1.1.4 模板
模板(templates)可指定日志信息的格式,也可用于生成動(dòng)態(tài)文件名,或在規(guī)則中使用,定義方法是“$template模板名稱,模板屬性”。
1.1.5 輸出
輸出模塊用戶可以自定義輸出的信息,定義方法是“$outchannel NAME, FILE_NAME, MAX_SIZE, ACTION”,NAME指定輸出頻道的名稱,F(xiàn)ILE_NAME指定輸出文件,MAX_SIZE指定日志文件的大小,單位是bytes,ACTION指定日志文件到達(dá)MAX_SIZE時(shí)的操作。
1.2 日志服務(wù)器的設(shè)置
針對(duì)網(wǎng)絡(luò)中的日志服務(wù)器收集郵件服務(wù)器的郵件服務(wù)日志信息以及Web服務(wù)器的Apache服務(wù)器的日志信息,在rsyslog配置文件/etc/rsyslog.conf中的module模塊需要開放接收日志的服務(wù),可以選擇UDP協(xié)議或者TCP協(xié)議來接收日志信息,配置如下:
$ModLoad imudp #加載udp接收數(shù)據(jù)模塊
$UDPServerRun 514 #啟動(dòng)日志接收服務(wù),使用UDP協(xié)議,工作端口號(hào)為514(udp)
$ModLoad imtcp ##加載tcp接收數(shù)據(jù)模塊
$InputTCPServerRun 514 #啟動(dòng)日志接收服務(wù),使用TCP協(xié)議,工作端口號(hào)為514(tcp)
*.info;mail.none;authpriv.none;cron.none;local4.none;local3.none /var/log/messages
#不記錄local3設(shè)施的日志
$template RemoteLogs,”/data/ logs/ %HOSTNAME%/%PROGRAM-NAME%.log”
#接收客戶端local3設(shè)施傳送來的日志并存放到指定位置(位置可用定義的模板。?代表使用動(dòng)態(tài)的模板),按不同的程序分別存放,模板設(shè)置為/data/logs下的”主機(jī)名/程序名(即日志附加標(biāo)簽);
local3.* ? RemoteLogs#讀取郵件服務(wù)器上郵件服務(wù)的日志
rsyslog服務(wù)的主配置文件配置完成后,編輯/etc/sysconfig/rsyslog中SYSLOGD_OPTIONS=””開啟遠(yuǎn)程日志接收功能,同時(shí)在防火墻中開發(fā)514端口允許日志信息的傳入。
1.3 日志服務(wù)客戶端的設(shè)置
客戶端設(shè)置主機(jī)名稱,在客戶端配置/etc/rsyslog.conf,通過加載$ModLoad imfile模塊來讀取特定的日志文件,以郵件服務(wù)器的日志文件/var/log/maillog為例,定義以下信息:
$InputFileName /var/log/maillog #讀取日志文件
$InputFileTag mail_log # 日志寫入時(shí)的附加標(biāo)簽
$InputFileSeverity info #日志級(jí)別,info及以上的信息
$InputFileStateFile /etc/rsyslog.d/stat-mail # 記錄日志狀態(tài)的文件
$InputFileFacility local3 #日志設(shè)施
$InputFilePollInterval 1 #日志文件檢查間隔(秒)
$InputFilePersistStateInterval 1 #回寫偏移量數(shù)據(jù)到文件間隔時(shí)間(秒)
$InputRunFileMonitor #進(jìn)行日志讀取
local3.* @192.168.0.254:514 #使用udp協(xié)議將日志信息傳送至日志服務(wù)器
2 日志文件的輪替
logrotate主要針對(duì)日志文件來進(jìn)行輪替的操作,主要功能就是將舊的日志文件移動(dòng)成舊文件并最終刪除,同時(shí)重新建立一個(gè)新的空的文件來記錄日志[4]。
logrotate程序參數(shù)配置文件是/etc/logrotate.conf和/etc/logrotate.d。logrotate.conf是主要的參數(shù)文件,logrotate.d是一個(gè)目錄,該目錄里面的所有文件都會(huì)被主動(dòng)讀入/etc/logrotate.conf當(dāng)中來進(jìn)行,在logrotate.d中如果沒有指定的一些詳細(xì)設(shè)置,則以logrotate.conf這個(gè)文件的設(shè)置作為默認(rèn)值。
logrotate的默認(rèn)配置文件是/etc/logrotate.conf,各個(gè)服務(wù)可以在/etc/logrotate.d目錄下設(shè)置自身的日志輪替規(guī)則文件。具體設(shè)置如下:
/data/logs/mail/ mail_log #設(shè)置輪替操作的對(duì)象
{ #開始設(shè)置參數(shù)
monthly #每月進(jìn)行一次輪替
size=10 M #文件容量大于10 M時(shí)主動(dòng)進(jìn)行輪替
rotate 5 #保留5個(gè)輪替文件
compress #輪替時(shí)對(duì)日志文件進(jìn)行壓縮
sharedscripts #嵌入腳本開始
postrotate #在輪替結(jié)束后調(diào)用
/usr/bin/killall -HUP rsyslogd #輪替結(jié)束后重啟rsyslog服務(wù)
endscript #嵌入腳本結(jié)束
} #參數(shù)設(shè)置結(jié)束
3 結(jié)語
Linux以其穩(wěn)定的性能和開源的優(yōu)越性正得到日益廣泛的應(yīng)用,越來越多的中小企業(yè)構(gòu)建網(wǎng)絡(luò)服務(wù)器時(shí)選用Linux平臺(tái),本文提出的基于Linux平臺(tái)的日志服務(wù)器的綜合配置,適用于中小企業(yè)網(wǎng)絡(luò),對(duì)其他多種服務(wù)器的管理具有重要的輔助功能,有較高的實(shí)用價(jià)值和較大的應(yīng)用空間。
[參考文獻(xiàn)]
[1]陳金蓮.用Linux日志運(yùn)維服務(wù)器[J].網(wǎng)絡(luò)安全和信息化,2017(7):68-70.
[2]蘇志軍,康麗娟,金誠志.Linux環(huán)境下syslog日志系統(tǒng)研究[J].福建電腦,2010(4):13.
[3]曹新鴻.基于VMware下的Linux環(huán)境構(gòu)建日志服務(wù)器[J].福建電腦,2015(10):98-99.
[4]鳥哥.Linux私房菜-基礎(chǔ)學(xué)習(xí)篇[M].北京:人民郵電出版社,2010.