nxlog以syslog方式发送日志
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日志格式
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配置如下
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_csv
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
FieldTypes string, string, string, string, string, string, string, string, string, string, string, string, string
Delimiter ' '
QuoteChar '"'
EscapeControl TRUE
UndefValue -
</Extension>
<Extension syslog>
Module xm_syslog
</Extension>
<Input in>
Module im_file
#iis日志目录,文件名支持通配符,文件夹不支持
File "D:\iislog\W3SVC1\u_ex*.log"
SavePos TRUE
#合并iis日志中的时间与日志字段为一个字段
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_udp
Host 192.168.108.2
Port 514
Exec to_syslog_bsd();
</Output>
<Route 1>
Path in => out
</Route>
2)日志文件都放在多个文件夹,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_csv
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
FieldTypes string, string, string, string, string, string, string, string, string, string, string, string, string
Delimiter ' '
QuoteChar '"'
EscapeControl TRUE
UndefValue -
</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日志中的时间与日志字段为一个字段
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日志中的时间与日志字段为一个字段
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_udp
Host 192.168.108.2
Port 514
Exec to_syslog_bsd();
</Output>
<Route 1>
Path in_machine_a,in_machine_b => out
</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
nxlog以syslog方式发送日志的更多相关文章
- logstash快速入门 (这篇文章很不错 ) | 两种方式往logstash传输数据实例:Apache 日志(从文件获取)、Syslog方式
原文地址:http://www.2cto.com/os/201411/352015.html 原文地址:http://logstash.net/docs/1.4.2/tutorials/getting ...
- 通过syslog接收远程日志
通过syslog接收远程日志 通过syslog接收远程主机的日志,需要做一些环境配置. 客户机A通过syslog将日志信息发送到服务主机B(或称日志采集服务器).以下说明配置过程(我的实验环境 ...
- ES系列十八、FileBeat发送日志到logstash、ES、多个output过滤配置
一.FileBeat基本概念 简单概述 最近在了解ELK做日志采集相关的内容,这篇文章主要讲解通过filebeat来实现日志的收集.日志采集的工具有很多种,如fluentd, flume, logst ...
- 在android用Get方式发送http请求
烦人的日子终于过去啦,终于又可以写博客啦,对自己的android学习做个总结,方便以后查看...... 一.在android用Get方式发送http请求,使用的是java标准类,也比较简单. 主要分以 ...
- C#带cookie Post和Get方式发送数据,保持cookie
在实际编程中,可能需要读取特定网页的信息,但很多网站需要用户登录后,才能够获取相关的页面内容,这就需要编程者先临时存储当前的cookie,在C#中可以使用CookieContainer 对象来保存登录 ...
- WebClient以POST方式发送Web请求
本例使用WebClient以POST方式发送Web请求并下载一个文件,难点是postData的构造,发送Web请求时有的网站要求可能要求 Cookies前后一致.其中application/x-www ...
- 来一手 AOP 注解方式进行日志记录
系统日志对于定位/排查问题的重要性不言而喻,相信许多开发和运维都深有体会. 通过日志追踪代码运行状况,模拟系统执行情况,并迅速定位代码/部署环境问题. 系统日志同样也是数据统计/建模的重要依据,通过分 ...
- EBS中使用JAVA方式发送HTML格式邮件
转自huan.gu专栏:http://blog.csdn.net/gh320/article/details/17174769 EBS中使用JAVA方式发送HTML格式邮件 一.开发工具:JDevel ...
- AJAX方式发送远程请求报错:No 'Access-Control-Allow-Origin' header
AJAX GET方式发送远程请求,chrome开发者工具console中报错:XMLHttpRequest cannot load http://www.shikezhi.com/ajax/getDa ...
随机推荐
- selenium自动化测试资源整理
1. 所有版本chrome下载 是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是原版的就不得而知了. http://www.slimjet.com/ch ...
- 软件测试工程师必备的SQL语句基础
为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工作 ...
- Jquery获取DOM绑定事件
获取到当前正在执行的事件: $('#testDive').bind('click', function(event){alert('event: ' + event.type)}); 获取所有绑定事件 ...
- Linux命令应用大词典-第39章 网络安全
39.1 rtacct:网络统计工具 39.2 nmap:报告远程主机特征 39.3 tcpdump:实现网络数据采集分析 39.4 iptstate:显示IP表状态表条目 39.5 nstat:监控 ...
- react在安卓下输入框被手机键盘遮挡问题
问题概述 今天遇到了一个问题,在安卓手机上,当我要点击输入"店铺名称"时,手机软键盘弹出来刚好把输入框挡住了:挡住就算了,关键是页面还不能向上滑动,整个手机窗口被压为原来的二分 ...
- oraclize预言机资料
oraclize预言机资料 智能合约如何可信的与外部世界交互: https://blog.csdn.net/sportshark/article/details/77477842 国外一篇讲得很详细的 ...
- Python3 小工具-TCP发现
from scapy.all import * import optparse import threading import os def scan(ip): pkt=IP(dst=ip)/TCP( ...
- Eclipse 安装SVN、Maven插件
1先安装subeclipse插件就是svn svn - http://subclipse.tigris.org/update_1.6.x 我这里是灰色的说明我安装过了这里只是截图说明下,我就不继续安装 ...
- 用URL传参带特殊字符,特殊字符丢失
文章:URL中编码URL特殊字符 文章:用URL传参带特殊字符,特殊字符丢失(encode) 如果url中有特殊字符,需要对url进行编码,否则特殊字符丢失,导致最终接收到的值不对.
- 浏览器中event.srcElement和event.target的兼容性问题
在IE下,event对象有srcElement属性,但是没有target属性:Firefox下,even对象有target属性,但是没有srcElement属性.. 解决方法:使用obj(obj = ...