文档章节

使用mmnormalize解析nginx-error日志

MrYx3en
 MrYx3en
发布于 2015/11/04 14:43
字数 539
阅读 84
收藏 0
点赞 0
评论 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
博文 88
码字总数 30598
作品 0
宝鸡
系统管理员
使用goaccess解析nginx日志

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

erichd ⋅ 2016/08/12 ⋅ 0

nginx配置+虚拟主机+负载均衡+反向代理

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

jalyzjs ⋅ 2017/09/04 ⋅ 0

Nginx网站服务

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

常亚亚 ⋅ 2017/05/31 ⋅ 0

[喵咪PHP]页面显示空白问题

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

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

rsyslog 8.6.0 (v8-stable) 发布

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

oschina ⋅ 2014/12/03 ⋅ 0

linux 下nginx 反向代理iis不成功

nginx 版本: 0.7.61 os: centos 5.x.x64 nginx, fastcgi,初始安装都是自行编译的,安装完毕后,根据域名访问 iis 的服务也很正常。但是最近发现 iis下的web服务解析不了了,配置也没有改动过...

suvi ⋅ 2010/02/01 ⋅ 6

Nginx反向代理后端多个Tomcat、Nginx+PHP服务器(Nginx的代理和负载功能)

现有3个二级域名,一个IP地址,要实现将这3个域名通过1个IP地址对外提供web服务,可使用IP+端口的方式对域名进行解析,且互不影响。如: Domain1:www.huangming.org IPADDR:192.168.1.33:...

科技小能手 ⋅ 2017/11/12 ⋅ 0

Nginx网站服务

一、简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发...

Bella小旭 ⋅ 2016/08/27 ⋅ 0

nginx error_log 错误日志配置说明

nginx的error_log类型如下(从左到右:debug最详细 crit最少): [ debug | info | notice | warn | error | crit ] 例如:errorlog logs/nginxerror.log crit; 解释:日志文件存储在nginx安...

lixiaokai2008 ⋅ 2013/07/05 ⋅ 0

阿里云子域名方案搭建(nginx+tomcat)方案

新项目app上线方案 目录 1 准备工作... 3 1.1 了解需求... 3 1.2 数据库备份... 3 1.3 获取版本... 4 2 现网上线工作... 5 2.1 Tomcat新建... 5 2.2 程序上传... 5 2.3 解压并存放... 5 2.4...

chennailong ⋅ 2017/04/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【每天一个JQuery特效】根据可见状态确定是否显示或隐藏元素(3)

效果图示: 主要代码: <!DOCTYPE html><html><head><meta charset="UTF-8"><title>根据可见状态确定 是否显示或隐藏元素</title><script src="js/jquery-3.3.1.min.js" ty......

Rhymo-Wu ⋅ 32分钟前 ⋅ 0

OSChina 周四乱弹 —— 初中我身体就已经垮了,不知道为什么

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @加油东溪少年 :下完这场雨 后弦 《下完这场雨》- 后弦 手机党少年们想听歌,请使劲儿戳(这里) @马丁的代码 :买了日本 日本果然赢了 翻了...

小小编辑 ⋅ 51分钟前 ⋅ 8

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 今天 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部