首页 文章 精选 留言 我的

精选列表

搜索[tomcat],共3631篇文章
优秀的个人博客,低调大师

logstash 收集tomcat异常信息

我所期望达到的效果,就是每个日期一条,在kibana界面也是一条。多行异常的也是一条。 其实,很简单,就是加个反向判断。 logstash原理 一个客户端,一个服务器,就是这样的模式 没什么神奇的,最麻烦的正则匹配,不好弄。听说storm更好用。 1.client配置 cat /etc/logstash/conf.d/shipper.conf input{ file{ path=>["/opt/src/logs/*/*/*/*"] type=>"service" start_position=>"beginning" } } filter{ if[type]=="service"{ multiline{ patterns_dir=>"/etc/logstash/conf.d" pattern=>"(^%{MYTIMESTAMP})" negate=>true what=>"previous" } } grok{ patterns_dir=>"/etc/logstash/conf.d" match=>["message","%{MYLOG}"] add_field=>["log_ip","随便写"] } } output{ stdout{} redis{ host=>"你的服务端ip" port=>6379 password=>"xx" data_type=>"list" key=>"key_count" } } patterns_dir => "/etc/logstash/conf.d" 这个东西就是正则表达式 新建一个文件 cat/etc/logstash/conf.d/j2ee JAVACLASS(?:[a-zA-Z$_][a-zA-Z$_0-9]*\.)*[a-zA-Z$_][a-zA-Z$_0-9]* HTTPPORT([a-zA-Z$_0-9]*\-)*([0-9]) JAVALOGMESSAGE(.*) MYTIMESTAMP20%{YEAR}-%{MONTHNUM}-%{MONTHDAY}%{HOUR}:%{MINUTE}:%{SECOND} MYLOG%{MYTIMESTAMP:mytimestamp}\s\[%{HTTPPORT:port}\]\s%{LOGLEVEL:level}\s%{JAVACLASS:class}\s-%{JAVALOGMESSAGE:logmessage} 我的日志格式是这样的 2016-10-2015:52:01.174[http-apr-8282-exec-4]INFOc.e.w.c....-resp: 如果你的日志不一样,那么j2ee文件要做相应的修改 http://grokdebug.herokuapp.com/这个网站可以测试 比如 启动脚本logstash.sh #!/bin/bash ./etc/init.d/functions functionstart(){ cd/home/ /opt/logstash/bin/logstash-f/etc/logstash/conf.d/shipper.conf&>>/dev/null2>&1 } functionstop(){ sudokill-9`ps-ef|greplogstash|grep-vgrep|awk'{print$2}'` #foriin`ps-ef|greplogstash|grep-vgrep|awk'{print$2}'` #do;sudokill-9$i;done } case$1in start) start ;; stop) stop ;; *) printf"Usagesh*.shstart|stop" ;; esac sh logstash.sh stop/start 2.server配置 cat/etc/logstash/conf.d/indexer.conf input{ redis{ host=>"你的服务端ip" port=>6379 password=>"xx" type=>"redis-input" data_type=>"list" key=>"key_count" } } output{ stdout{} elasticsearch{ cluster=>"elasticsearch" codec=>"json" protocol=>"http" } } 3.kibana效果 多行为一行就不截图了 注意有事启动了logstash,但是没有日志传送过来 input file 匹配类型,正则有问题 filter正则有问题 总而言之,就是配置有问题。 demo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 client cat demo.conf input{ file { path=>[ "/home/python/demo/*/*/*/*" ] type => "demo" start_position=> "beginning" } } filter{ if [ type ]== "demo" { multiline{ patterns_dir=> "/etc/logstash/conf.d/patterns" pattern=> "(^%{MYTIMESTAMP})" negate=> true what=> "previous" } } grok{ patterns_dir=> "/etc/logstash/conf.d/patterns" match=>[ "message" , "%{MYLOG}" ] add_field=>[ "log_ip" , "172.29.xx.xx" ] } } output{ stdout{} redis{ host=> "172.29.xx.xx" port=>6379 password=> "xxxxxx" data_type=> "list" key=> "key_count" } } cd /etc/logstash/conf .d /patterns cat j2ee JAVACLASS(?:[a-zA-Z$_][a-zA-Z$_0-9]*\.)*[a-zA-Z$_][a-zA-Z$_0-9]* HTTPPORT([a-zA-Z$_0-9]*\-)*([0-9]) JAVALOGMESSAGE(.*) MYTIMESTAMP20%{YEAR}-%{MONTHNUM}-%{MONTHDAY}%{HOUR}:%{MINUTE}:%{SECOND} MYLOG%{MYTIMESTAMP:mytimestamp}\s\[%{HTTPPORT:port}\]\s%{LOGLEVEL:level}\s%{JAVACLASS:class}\s-%{JAVALOGMESSAGE:logmessage} logstash-f /etc/logstash/conf .d /logstash-indexer .conforservicelogstashstart server nohup /usr/share/elasticsearch/bin/elasticsearch & nohup /usr/bin/kibana & logstash-f /etc/logstash/conf .d /logstash-indexer .conforservicelogstashstart 还有es+gra+logstash http://play.grafana.org/dashboard/db/elasticsearch-metricsdoc 本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1863975,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle

Oracle

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。