php+log+iis,利用nxlog以syslog方式发送iis日志
1、nxlog简介
nxlog是个跨平台日志传输插件,支持linux、windows平台,支持window及linux内置的大部分系统日志及常见的web日志,支持tcp、udp、http(s)等协议传输。
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
修改方式:请看下面【6、nxlog配置示例】
3)重启服务【nxlog】
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
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 -
Module xm_syslog
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); \
}
Module om_udp
Host 192.168.108.2
Port 514
Exec to_syslog_bsd();
Path in => out
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
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 -
Module xm_syslog
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); \
}
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); \
}
Module om_udp
Host 192.168.108.2
Port 514
Exec to_syslog_bsd();
Path in_machine_a,in_machine_b => out
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
参考
8、性能分析
从使用来看,单台服务器一天内大约会发送4到6G大小的日志到远程linux中,nxlog进程占用的资源如下:cpu占用率一般在0%到3%【40核】之间;占用带宽300k-600k/s之间;内存一般小于10M。
总体而言对性能影响较小,注意对带宽的影响。
php+log+iis,利用nxlog以syslog方式发送iis日志相关推荐
- 使用Nxlog将Windows日志以syslog形式发送至日志Syslog服务器
nxlog下载地址:https://download.csdn.net/download/c1052981766/10299741 下载之后进行安装: 查看服务: 修改配置文件:C:\Program ...
- (转载)把syslog接收的远程日志从/var/log/messages中分开
今天突然要配置Linux的syslog服务器,摸了一早上才弄好.记录远程机器发来的syslog消息倒是容易(网上到处都是),不过按照默认的设置,syslog会将所有信息都给写入 /var/log/me ...
- BizTalk Orchestration Publish Host In-Process Wcf Service without IIS 多种供客户端调用方式
BizTalk Orchestration Publish Host In-Process Wcf Service without IIS 多种供客户端调用方式 BizTalk Server 2006 ...
- 获取登录域帐号信息方式之 —-IIS(VB)
前言 java web 项目如何获取客户端登录帐号信息(用于SSO或其他) 之前总结过一篇在Java 的Web 项目中获取客户端帐号信息的文章.参见以上链接的内容. 除了那些方式之外, 还可以使用II ...
- 融云利用自定义消息的方式发送自定义表情
1,自定义消息应在 init 后注册: RongIM.registerMessageType(CustomizeMessage.class); RongIM.getInstance().registe ...
- 工控随笔_09_西门子_S7-200 Smart与V20 USS通信USS_RPM_R利用轮询的方式通讯异常
工控随笔_09_西门子_S7-200 Smart与V20 USS通信USS_RPM_R利用轮询的方式通讯异常 参考文章: (1)工控随笔_09_西门子_S7-200 Smart与V20 USS通信US ...
- boost::log模块实现loging到 syslog 服务器的示例
boost::log模块实现loging到 syslog 服务器的示例 实现功能 C++实现代码 实现功能 boost::log模块实现loging到 syslog 服务器的示例 C++实现代码 #i ...
- js post方式请求另外一个php,利用JS使用POST方式提交请求的方法(结合代码详细解答)...
下面是我给大家整理的利用JS使用POST方式提交请求的方法,有兴趣的同学可以去看看. 一般都是写上隐藏的form标签,用来调用js函数然后submit 全部用js来写也行,以下是我在一个问答频道看见别 ...
- 反向代理方式实现IIS与Tomcat整合
文章目录 前言 一.环境准备 (1)确保本机的tomcat服务器下的项目能正常访问,输入http://localhost:8080 , 能正常访问到项目(项目放在tomcat的webapps文件夹下) ...
- Win10系统IIS服务器的安装与设置,IIS管理器打开的方式
IIS简介 IIS全称Internet Information Services(互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务,一般随windows操 ...
最新文章
- if(p == NULL)和 if(NULL == p)区别
- PTA团体程序设计天梯赛-L2-024 部落
- c语言程序解决生活中的问题作文,生活中烦恼的事五年级满分作文
- python arma_Python ARIMA
- 用python画圣诞树图片-节日快乐! Python画一棵圣诞树送给你
- java小白会有那些工作_Java小白找工作与学习的第四天
- centos7 安装MyCli MySQL 客户端
- 学习笔记:自己编译安装OpenCV+测试opencv安装是否成功
- java 的strip_javastript
- Mac 环境endnote 各种问题解决方法和word各种技巧汇总
- shader02-仿星空粒子
- 计算机毕业设计Java的健身房管理系统(源码+系统+mysql数据库+lw文档)
- moment 时间日期处理库 解析部分
- 命题逻辑的合理性和完备性证明
- qq音乐mp3解析php源码,QQ音乐API
- python 开发安卓应用商店_用Python爬取各Android市场应用下载量(3分钟学会)
- JavaScript中 FormData 对象详解
- 解决win10 保存文件到C盘没有权限问题
- 算法_数学问题_Question8_猜牌术(java实现)
- JAVA 虚拟机深入研究(二)——JVM虚拟机发展以及一些Java的新东西
热门文章
- 从二进制格雷码到任意进制格雷码(1)
- 基于thinkphp的出租屋管理系统
- Windows 手动与脚本自动重启Print Spooler打印服务
- php导出excel出现乱码,php导出excel出现乱码怎么办
- python自动化框架搭建过程_一步一步教你编写与搭建自动化测试框架——python篇...
- 支付宝出征世界杯!白岩松:“中国除了足球队没去,其他都去了”
- ansi编码转换器安卓版_ANSI Converter-ANSI码转换器
- 微星主板节能模式怎么关闭_技嘉小雕、微星迫击炮、华硕电竞特工三款主板对比...
- hackerrank Java Data Structures
- 软件系统分析-分账系统