当前位置:   article > 正文

nxlog以syslog方式发送日志

nxlog配置仅发送系统日志

1、nxlog简介

        nxlog是个跨平台日志传输插件,支持linux、windows平台,支持window及linux内置的大部分系统日志及常见的web日志,支持tcp、udp、http(s)等协议传输。

        安装包、指导手册及常用配置下载:http://pan.baidu.com/s/1qWTc2g0

2、配置目的

        通过nxlog将iis日志按syslog以udp的方式发送到linux服务器中作为linux服务器的syslog。

        特殊需求:is日志中日期和时间是两个字段,需要合并成一个字段。

3、系统及软件环境

        OS:window server2008 r2 Enterprise

        IIS:7.5

        Nxlog:2.9.1347

4、iis日志格式

3、利用nxlog以syslog方式发送iis日志

5、nxlog配置步骤

    1)安装nxlog

    默认是安装在C:\Program Files (x86)\nxlog路径下。

    2)修改nxlog.conf配置信息

    位置:C:\Program Files (x86)\nxlog\conf\nxlog.conf

    修改方式:请看下面

    3)重启服务    
    4)验证

            验证去data目录下看nxlog.log是否是否有异常,正常应该无异常,仅含启动成功的日志信息

            通过资源监视器,看nxlog发送的网络流量是否存在,正常应该有

            通过日志平台来验证日志是否发送成功。

6、nxlog配置示例

    1)当日志文件都放在一个文件夹,nxlog.conf配置如下
  1. define ROOT C:\Program Files (x86)\nxlog
  2. define CERTDIR %ROOT%\cert
  3. Moduledir %ROOT%\modules
  4. CacheDir %ROOT%\data
  5. Pidfile %ROOT%\data\nxlog.pid
  6. SpoolDir %ROOT%\data
  7. LogFile %ROOT%\data\nxlog.log
  8. <Extension w3c>
  9.     Module xm_csv
  10.     Fields $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-taken
  11.     FieldTypes stringstringstringstringstringstringstringstringstringstringstringstringstring
  12.     Delimiter ' '
  13.     QuoteChar '"'
  14.     EscapeControl TRUE
  15.     UndefValue -
  16. </Extension>
  17. <Extension syslog>
  18.    Module xm_syslog
  19. </Extension>
  20. <Input in>
  21.    Module   im_file
  22.    #iis日志目录,文件名支持通配符,文件夹不支持
  23.    File    "D:\iislog\W3SVC1\u_ex*.log"
  24.    SavePos  TRUE
  25.    #合并iis日志中的时间与日志字段为一个字段
  26.    Exec if $raw_event =/^#/ drop();  \
  27.        else  \
  28.        {  \
  29.    $raw_event = replace($raw_event, ' ''@',1);        \
  30.            w3c->parse_csv();  \
  31.    $raw_event = replace($raw_event, ' '"\t");         \
  32.    $raw_event = replace($raw_event, '@'' ',1);        \
  33.        }
  34. </Input>
  35.  
  36. <Output out>
  37.    Module om_udp
  38.    Host 192.168.108.2
  39.    Port 514
  40.    Exec to_syslog_bsd();
  41. </Output>
  42.  
  43. <Route 1>
  44.    Path in => out
  45. </Route>
    2)日志文件都放在多个文件夹,nxlog.conf配置如下
  1. define ROOT C:\Program Files (x86)\nxlog
  2. define CERTDIR %ROOT%\cert
  3. Moduledir %ROOT%\modules
  4. CacheDir %ROOT%\data
  5. Pidfile %ROOT%\data\nxlog.pid
  6. SpoolDir %ROOT%\data
  7. LogFile %ROOT%\data\nxlog.log
  8. <Extension w3c>
  9.     Module xm_csv
  10.     Fields $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-taken
  11.     FieldTypes stringstringstringstringstringstringstringstringstringstringstringstringstring
  12.     Delimiter ' '
  13.     QuoteChar '"'
  14.     EscapeControl TRUE
  15.     UndefValue -
  16. </Extension>
  17. <Extension syslog>
  18.    Module xm_syslog
  19. </Extension>
  20. <Input in_machine_a>
  21.    Module   im_file
  22.    #iis日志目录,文件名支持通配符,文件夹不支持
  23.    File    'D:\iislog\W3SVC2\u_ex*.log'
  24.    SavePos  TRUE
  25.    #合并iis日志中的时间与日志字段为一个字段
  26.    Exec if $raw_event =/^#/ drop();  \
  27.        else  \
  28.        {  \
  29.    $raw_event = replace($raw_event, ' ''@',1);        \
  30.            w3c->parse_csv();  \
  31.    $raw_event = replace($raw_event, ' '"\t");         \
  32.    $raw_event = replace($raw_event, '@'' ',1);        \
  33.        }
  34. </Input>
  35. <Input in_machine_b>
  36.    Module   im_file
  37.    #iis日志目录,文件名支持通配符,文件夹不支持
  38.    File    '\\192.168.108.3\d$\iislog\W3SVC2\u_ex*.log'
  39.    SavePos  TRUE
  40.    #合并iis日志中的时间与日志字段为一个字段
  41.    Exec if $raw_event =/^#/ drop();  \
  42.        else  \
  43.        {  \
  44.    $raw_event = replace($raw_event, ' ''@',1);        \
  45.            w3c->parse_csv();  \
  46.    $raw_event = replace($raw_event, ' '"\t");         \
  47.    $raw_event = replace($raw_event, '@'' ',1);        \
  48.        }
  49. </Input>
  50.  
  51. <Output out>
  52.    Module om_udp
  53.    Host 192.168.108.2
  54.    Port 514
  55.    Exec to_syslog_bsd();
  56. </Output>
  57.  
  58. <Route 1>
  59.    Path in_machine_a,in_machine_b => out
  60. </Route>
    3)支持多个数据源和多个输出

            配置多个in及out,可以共用一个path配置输出。

7、nxlog配置过程中出现过的问题

    1)nxlog2.8版本发送异常的问题

    问题现象

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 ''

导致整个进程无法继续输出日志

    解决方法

替换使用2.9.1347版本的nxlog

    参考

http://nxlog.org/question/690/if-else-failed-not-enough-fields

8、性能分析

        从使用来看,单台服务器一天内大约会发送4到6G大小的日志到远程linux中,nxlog进程占用的资源如下:cpu占用率一般在0%到3%之间;占用带宽300k-600k/s之间;内存一般小于10M。

        总体而言对性能影响较小,注意对带宽的影响。

原文链接:http://www.alliedjeep.com/138487.htm

 

转载于:https://www.cnblogs.com/Eleven-Liu/p/7742982.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/1007221
推荐阅读
  

闽ICP备14008679号