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