我所期望达到的效果,就是每个日期一条,在kibana界面也是一条。多行异常的也是一条。
其实,很简单,就是加个反向判断。
logstash原理
一个客户端,一个服务器,就是这样的模式
没什么神奇的,最麻烦的正则匹配,不好弄。听说storm更好用。
1.client配置
cat /etc/logstash/conf.d/shipper.conf
patterns_dir => "/etc/logstash/conf.d" 这个东西就是正则表达式
新建一个文件 cat /etc/logstash/conf.d/j2ee
我的日志格式是这样的
如果你的日志不一样,那么j2ee文件要做相应的修改
比如
<a href="http://s2.51cto.com/wyfs02/M00/89/22/wKiom1gIjtTw1-TzAABvblyuSNE276.png-wh_500x0-wm_3-wmp_4-s_2078496716.png" target="_blank"></a>
启动脚本logstash.sh
sh logstash.sh stop/start
2.server配置
cat /etc/logstash/conf.d/indexer.conf
3.kibana效果
<a href="http://s4.51cto.com/wyfs02/M00/89/46/wKioL1gOuiaRdfbuAADZlql089g587.png-wh_500x0-wm_3-wmp_4-s_604642537.png" target="_blank"></a>
多行为一行就不截图了
注意有事启动了logstash,但是没有日志传送过来
input file 匹配类型,正则有问题
filter正则有问题
总而言之,就是配置有问题。
demo
<code>client</code>
<code>cat</code> <code>demo.conf</code>
<code>input {</code>
<code> </code><code>file</code> <code>{</code>
<code> </code><code>path => [</code><code>"/home/python/demo/*/*/*/*"</code><code>]</code>
<code> </code><code>type</code> <code>=> </code><code>"demo"</code>
<code> </code><code>start_position => </code><code>"beginning"</code>
<code> </code><code>}</code>
<code>}</code>
<code>filter {</code>
<code> </code><code>if</code> <code>[</code><code>type</code><code>] == </code><code>"demo"</code> <code>{</code>
<code> </code><code>multiline {</code>
<code> </code><code>patterns_dir => </code><code>"/etc/logstash/conf.d/patterns"</code>
<code> </code><code>pattern => </code><code>"(^%{MYTIMESTAMP})"</code>
<code> </code><code>negate => </code><code>true</code>
<code> </code><code>what => </code><code>"previous"</code>
<code> </code><code>}</code>
<code> </code><code>grok {</code>
<code> </code><code>patterns_dir => </code><code>"/etc/logstash/conf.d/patterns"</code>
<code> </code><code>match => [ </code><code>"message"</code><code>, </code><code>"%{MYLOG}"</code> <code>]</code>
<code> </code><code>add_field => [ </code><code>"log_ip"</code><code>, </code><code>"172.29.xx.xx"</code> <code>]</code>
<code> </code><code>}</code>
<code>output {</code>
<code> </code><code>stdout {}</code>
<code> </code><code>redis {</code>
<code> </code><code>host => </code><code>"172.29.xx.xx"</code>
<code> </code><code>port => 6379</code>
<code> </code><code>password => </code><code>"xxxxxx"</code>
<code> </code><code>data_type => </code><code>"list"</code>
<code> </code><code>key => </code><code>"key_count"</code>
<code>cd</code> <code>/etc/logstash/conf</code><code>.d</code><code>/patterns</code>
<code>cat</code> <code>j2ee</code>
<code>JAVACLASS (?:[a-zA-Z$_][a-zA-Z$_0-9]*\.)*[a-zA-Z$_][a-zA-Z$_0-9]*</code>
<code>HTTPPORT ([a-zA-Z$_0-9]*\-)*([0-9])</code>
<code>JAVALOGMESSAGE (.*)</code>
<code>MYTIMESTAMP 20%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}</code>
<code>MYLOG %{MYTIMESTAMP:mytimestamp}\s\[%{HTTPPORT:port}\]\s%{LOGLEVEL:level}\s%{JAVACLASS:class}\s-%{JAVALOGMESSAGE:logmessage}</code>
<code>logstash -f </code><code>/etc/logstash/conf</code><code>.d</code><code>/logstash-indexer</code><code>.conf or service logstash start</code>
<code>server</code>
<code>nohup</code> <code>/usr/share/elasticsearch/bin/elasticsearch</code> <code>&</code>
<code>nohup</code> <code>/usr/bin/kibana</code> <code>&</code>
还有es+gra+logstash
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1863975,如需转载请自行联系原作者