文档章节

使用mmnormalize解析nginx-error日志

MrYx3en
 MrYx3en
发布于 2015/11/04 14:43
字数 539
阅读 91
收藏 0

liblognorma:   Welcome to Liblognorm!

nginxerr.rulebase :

$ [root@10.10.10.254 test]# cat nginxerr.rulebase 
rule=A: %date:char-to:\x20% %time:time-24hr% [%level:char-to:\x5D%] %f1:char-to::%: %f2:char-to:\x20% %errmsg:char-to:,%, client: %client:ipv4%, server: %server:rest%"

#B和C不能同时存在一个rulebase文件中,否则会导致误解析。
rule=B: %date:char-to:\x20% %time:time-24hr% [%level:char-to:\x5D%] %f1:char-to::%: %f2:char-to:\x20% %errmsg:char-to:,%, client: %client:ipv4%, server: %server:char-to:,%, request: "%verb:word% %urlpath:char-to:\x3F%?%urlparam:char-to:\x20% HTTP/%httpversion:char-to:\x22%", upstream: %upstream:char-to:,%, host: %host:rest%

rule=C: %date:char-to:\x20% %time:time-24hr% [%level:char-to:\x5D%] %f1:char-to::%: %f2:char-to:\x20% %errmsg:char-to:,%, client: %client:ipv4%, server: %server:char-to:,%, request: "%verb:word% %urlpath:char-to:\x20% HTTP/%httpversion:char-to:\x22%", upstream: %upstream:char-to:\x2C%, host: %host:rest%

rule=D: %date:char-to:\x20% %time:time-24hr% [%level:char-to:\x5D%] %f1:char-to::%: %f2:char-to:\x20% %errmsg:char-to:,%, client: %client:ipv4%, server: %server:char-to:,%, request: "%verb:word% %urlpath:char-to:\x3F%?%urlparam:char-to:\x20% HTTP/%httpversion:char-to:\x22%", host: %host:rest%

rule=F: %errmsg:rest%

\\

liblognormalizer命令解析:

$ lognormalizer -r nginxerr.rulebase -e json -T < test0.log > normalized.log

\\

解析后的格式(Json):

$ [root@10.10.10.254 test]# head -n 3 normalized.log 
{ "host": "\"api.weibo.cn\"", "httpversion": "1.1", "urlparam": "gsid=_2A257MJvbDeTxGeRG4loS9yrEzj-IHXVWZ6gTrDV6PUJbrdANLWT1kWpTgI6SCDQQPwBgknJMn2cCApowHA..&wm=3333_2001&i=9130105&b=1&from=1055093010&c=iphone&v_p=24&skin=default&v_f=1&s=3c44f071&lang=zh_CN&ua=iPhone8,1__weibo__5.5.0__iphone__os9.0&sflag=1", "urlpath": "\/2\/client\/addlog_batch", "verb": "POST", "server": "api.v5.weibo.cn", "client": "118.189.6.88", "errmsg": "client intended to send too large body: 9742073 bytes", "f2": "*48466998", "f1": "21852#0", "level": "error", "time": "19:45:10", "date": "2015\/11\/01", "event.tags": [ "D" ] }
{ "host": "\"api.weibo.cn\"", "httpversion": "1.1", "urlparam": "gsid=_2A257MZL9DeTxGeRP41MZ8i3MzzuIHXVWZqE1rDV6PENPuNIMGlKVlGgHwPxa1DkwlDmCgLaR9Sntltky&wm=3333_2001&i=1db5f43&b=0&from=1055093010&c=iphone&v_p=24&skin=default&v_f=1&s=2e61a91e&lang=en_US&ua=iPhone7,2__weibo__5.5.0__iphone__os9.1&sflag=1", "urlpath": "\/2\/client\/addlog_batch", "verb": "POST", "server": "api.v5.weibo.cn", "client": "124.213.122.214", "errmsg": "client intended to send too large body: 35119444 bytes", "f2": "*48594758", "f1": "41204#0", "level": "error", "time": "19:50:03", "date": "2015\/11\/01", "event.tags": [ "D" ] }
{ "host": "\"api.weibo.cn\"", "httpversion": "1.1", "urlparam": "gsid=_2A257MKPHDeTxGeRI7VsY9ijIyDmIHXVWZ7APrDV6PUJbrdAKLW_FkWp8DjDOdVlsqU29TOw80hZnkvFfwA..&wm=3333_2001&i=5bb2307&b=1&from=1054093010&c=iphone&v_p=22&skin=default&v_f=1&s=0af1f487&lang=en_US&ua=iPhone7,2__weibo__5.4.0__iphone__os9.1&sflag=1", "urlpath": "\/2\/client\/addlog_batch", "verb": "POST", "server": "api.v5.weibo.cn", "client": "125.34.2.67", "errmsg": "client intended to send too large body: 19501344 bytes", "f2": "*48323317", "f1": "839#0", "level": "error", "time": "19:52:43", "date": "2015\/11\/01", "event.tags": [ "D" ] }

rsyslog配置文件:

$ [root@10.10.10.254 test]# cat nginx-error.conf 
template(name="nginxerrorTemplate" type="list")
{
    constant(value="{\"@timestamp\":\"")    property(name="timereported" dateFormat="rfc3339")
    constant(value="\","\"fromhost\":\"")   property(name="hostname")
    constant(value="\","\"programname\":\"")    property(name="programname")
    constant(value="\",")    property(name="msg" position.from="2")
}
ruleset(name="forwardRulesetlocal7nginxerror")
{
    action(
        type="mmnormalize"
        ruleBase="nginx-error-1.rulebase"
    )
    action(
        type="omfile"
        file=""
        template="nginxerrorTemplate"
    )
}
#request中不包含urlparam
ruleset(name="forwardRulesetlocal7nginxerror-nourlparam")
{
    action(
        type="mmnormalize"
        ruleBase="nginx-error-1.rulebase"
    )
    action(
        type="omfile"
        file=""
        template="nginxerrorTemplate"
    )
}
if ($syslogfacility-text == "local6" and $programname == "nginx-error") then
{
    if ($msg contains ["?"]) then
    {
        call forwardRulesetlocal7nginxerror
    } else {
        call forwardRulesetlocal7nginxerror-nourlparam
    }
}


© 著作权归作者所有

共有 人打赏支持
MrYx3en
粉丝 9
博文 132
码字总数 30598
作品 0
宝鸡
系统管理员
使用goaccess解析nginx日志

由于我指定了安装路径为/usr/local/goaccess 因此运行主程序在该路径的bin目录下,配置文件在etc下 使用方法: 直接解析 在nginx日志目录下运行 /usr/local/goaccess/bin/goaccess -f access...

erichd
2016/08/12
350
0
nginx配置+虚拟主机+负载均衡+反向代理

nginx启动+控制+配置文件 /usr/local/nginx/nginx #启动 /usr/local/nginx/nginx -s reload #重新加载配置文件,不需重启nginx进程 nginx.conf配置文件详解 nginx的配置文件相比apache,比较...

jalyzjs
2017/09/04
0
0
Nginx网站服务

Nginx网站服务 Nginx专为性能优化而开发,优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台服务器可支持30000 – 50000个并发请求 ) Nginx和Apache的区别 Nginx:只...

常亚亚
2017/05/31
0
0
rsyslog 8.6.0 (v8-stable) 发布

Rsyslog 是一个 syslogd 的多线程增强版。 rsyslog 8.6.0 (v8-stable) 发布,此版本是新发布版本周期的第一个稳定版本。 新版本周期和新模式详情请看这里: http://www.rsyslog.com/rsyslog...

oschina
2014/12/03
499
0
[喵咪PHP]页面显示空白问题

哈喽!大家好啊,喵咪PHP第一次和大家见面了,熟悉的朋友呢也之道喵咪我也开了喵咪Liunx和喵咪Golang这两个坑目的呢是吧平常遇到的一些问题或者是在学习中的东西好工具分享出来和大家交流沟通,...

喵了_个咪
2016/06/09
408
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

docker中安装了RabbitMQ后无法访问其Web管理页面

在官网找了"$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3-management"这条安装命令,在docker上安装了RabbitMQ,,结果输入http://localhost:8080并不......

钟然千落
32分钟前
0
0
spring-cloud | 分布式session共享

写在前面的话 各位小伙伴,你们有福了,这一节不仅教大家怎么实现分布式session的问题,还用kotlin开发,喜欢kotlin的小伙伴是不是很开心! 以前在写Android的时候,就对客户端请求有一定的认...

冯文议
52分钟前
0
0
c语言之内存分配笔记

先看一个数组: short array[5] = {1,2} // 这儿定义的一个int类型的数组,数组第1和第2个元素值是1和2.其余后面默认会给值为0; 或者 short array[] = {1,2};//这儿数组第1和第2个元素,数组...

DannyCoder
今天
4
0
Shell | linux安装包不用选择Y/N的方法

apt-get install -y packageOR echo "y" | sudo apt-get install package

云迹
今天
2
0
Hadoop的大数据生态圈

基于Hadoop的大数据的产品圈 大数据产品的一句话概括 Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架...

zimingforever
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部