nxlog以syslog方式发送日志
1、nxlog簡(jiǎn)介
????????nxlog是個(gè)跨平臺(tái)日志傳輸插件,支持linux、windows平臺(tái),支持window及l(fā)inux內(nèi)置的大部分系統(tǒng)日志及常見的web日志,支持tcp、udp、http(s)等協(xié)議傳輸。
????????安裝包、指導(dǎo)手冊(cè)及常用配置下載:http://pan.baidu.com/s/1qWTc2g0
2、配置目的
????????通過nxlog將iis日志按syslog以u(píng)dp的方式發(fā)送到linux服務(wù)器中作為linux服務(wù)器的syslog。
????????特殊需求:is日志中日期和時(shí)間是兩個(gè)字段,需要合并成一個(gè)字段。
3、系統(tǒng)及軟件環(huán)境
????????OS:window server2008 r2 Enterprise
????? ??IIS:7.5
????????Nxlog:2.9.1347
4、iis日志格式
5、nxlog配置步驟
????1)安裝nxlog
????默認(rèn)是安裝在C:\Program Files (x86)\nxlog路徑下。
????2)修改nxlog.conf配置信息
????位置:C:\Program Files (x86)\nxlog\conf\nxlog.conf
????修改方式:請(qǐng)看下面
????3)重啟服務(wù) ? ?
????4)驗(yàn)證
????????????驗(yàn)證去data目錄下看nxlog.log是否是否有異常,正常應(yīng)該無異常,僅含啟動(dòng)成功的日志信息
????????????通過資源監(jiān)視器,看nxlog發(fā)送的網(wǎng)絡(luò)流量是否存在,正常應(yīng)該有
????????????通過日志平臺(tái)來驗(yàn)證日志是否發(fā)送成功。
6、nxlog配置示例
????1)當(dāng)日志文件都放在一個(gè)文件夾,nxlog.conf配置如下
define?ROOT?C:\Program?Files?(x86)\nxlog define?CERTDIR?%ROOT%\cert Moduledir?%ROOT%\modules CacheDir?%ROOT%\data Pidfile?%ROOT%\data\nxlog.pid SpoolDir?%ROOT%\data LogFile?%ROOT%\data\nxlog.log<Extension?w3c>Module?xm_csvFields?$datetime,?$s-ip,?$cs-method,?$cs-uri-stem,?$cs-uri-query,?$c-ip,?$csUser-Agent,?$cs-Referer,?$cs-host,?$sc-status,?$sc-substatus,?$sc-win32-status,?$time-takenFieldTypes?string,?string,?string,?string,?string,?string,?string,?string,?string,?string,?string,?string,?stringDelimiter?'?'QuoteChar?'"'EscapeControl?TRUEUndefValue?- </Extension><Extension?syslog>Module?xm_syslog </Extension><Input?in>Module???im_file#iis日志目錄,文件名支持通配符,文件夾不支持File????"D:\iislog\W3SVC1\u_ex*.log"SavePos??TRUE#合并iis日志中的時(shí)間與日志字段為一個(gè)字段Exec?if?$raw_event?=~?/^#/?drop();? \else? \{? \$raw_event?=?replace($raw_event,?'?',?'@',1);????????\w3c->parse_csv();? \$raw_event?=?replace($raw_event,?'?',?"\t");?????????\$raw_event?=?replace($raw_event,?'@',?'?',1);????????\} </Input><Output?out>Module?om_udpHost?192.168.108.2Port?514Exec?to_syslog_bsd(); </Output><Route?1>Path?in?=>?out </Route>????2)日志文件都放在多個(gè)文件夾,nxlog.conf配置如下
define?ROOT?C:\Program?Files?(x86)\nxlog define?CERTDIR?%ROOT%\cert Moduledir?%ROOT%\modules CacheDir?%ROOT%\data Pidfile?%ROOT%\data\nxlog.pid SpoolDir?%ROOT%\data LogFile?%ROOT%\data\nxlog.log<Extension?w3c>Module?xm_csvFields?$datetime,?$s-ip,?$cs-method,?$cs-uri-stem,?$cs-uri-query,?$c-ip,?$csUser-Agent,?$cs-Referer,?$cs-host,?$sc-status,?$sc-substatus,?$sc-win32-status,?$time-takenFieldTypes?string,?string,?string,?string,?string,?string,?string,?string,?string,?string,?string,?string,?stringDelimiter?'?'QuoteChar?'"'EscapeControl?TRUEUndefValue?- </Extension><Extension?syslog>Module?xm_syslog </Extension><Input?in_machine_a>Module???im_file#iis日志目錄,文件名支持通配符,文件夾不支持File????'D:\iislog\W3SVC2\u_ex*.log'SavePos??TRUE#合并iis日志中的時(shí)間與日志字段為一個(gè)字段Exec?if?$raw_event?=~?/^#/?drop();? \else? \{? \$raw_event?=?replace($raw_event,?'?',?'@',1);????????\w3c->parse_csv();? \$raw_event?=?replace($raw_event,?'?',?"\t");?????????\$raw_event?=?replace($raw_event,?'@',?'?',1);????????\} </Input><Input?in_machine_b>Module???im_file#iis日志目錄,文件名支持通配符,文件夾不支持File????'\\192.168.108.3\d$\iislog\W3SVC2\u_ex*.log'SavePos??TRUE#合并iis日志中的時(shí)間與日志字段為一個(gè)字段Exec?if?$raw_event?=~?/^#/?drop();? \else? \{? \$raw_event?=?replace($raw_event,?'?',?'@',1);????????\w3c->parse_csv();? \$raw_event?=?replace($raw_event,?'?',?"\t");?????????\$raw_event?=?replace($raw_event,?'@',?'?',1);????????\} </Input><Output?out>Module?om_udpHost?192.168.108.2Port?514Exec?to_syslog_bsd(); </Output><Route?1>Path?in_machine_a,in_machine_b?=>?out </Route>????3)支持多個(gè)數(shù)據(jù)源和多個(gè)輸出
????????????配置多個(gè)in及out,可以共用一個(gè)path配置輸出。
7、nxlog配置過程中出現(xiàn)過的問題
????1)nxlog2.8版本發(fā)送異常的問題
????問題現(xiàn)象
2015-03-11 21:27:31 ERROR if-else failed at line 50, character 246 in C:\Program Files (x86)\nxlog\conf\nxlog.conf. statement execution has been aborted; procedure 'parse_csv' failed at line 50, character 103 in C:\Program Files (x86)\nxlog\conf\nxlog.conf. statement execution has been aborted; Not enough fields in CSV input, expected 14, got 0 in input ''
導(dǎo)致整個(gè)進(jìn)程無法繼續(xù)輸出日志
????解決方法
替換使用2.9.1347版本的nxlog
????參考
http://nxlog.org/question/690/if-else-failed-not-enough-fields
8、性能分析
????????從使用來看,單臺(tái)服務(wù)器一天內(nèi)大約會(huì)發(fā)送4到6G大小的日志到遠(yuǎn)程linux中,nxlog進(jìn)程占用的資源如下:cpu占用率一般在0%到3%之間;占用帶寬300k-600k/s之間;內(nèi)存一般小于10M。
? ? ? ? 總體而言對(duì)性能影響較小,注意對(duì)帶寬的影響。
原文鏈接:http://www.alliedjeep.com/138487.htm
?
轉(zhuǎn)載于:https://www.cnblogs.com/Eleven-Liu/p/7742982.html
總結(jié)
以上是生活随笔為你收集整理的nxlog以syslog方式发送日志的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛奶盒喷码字符识别(基于opencv)—
- 下一篇: OD修改字符串