Elasticsearch+Logstash+Kibana配置
关于Elasticsearch+Logstash+Kibana的安装有很多文章,这里不复述了,这里仅记录一些比较细节的内容。
- AWS EC2中安装需要的注意事项
- 9200,9300,5601端口要记得打开
- elasticsearch的地址不要写外部IP,否则会很浪费data,写内部ip
elasticsearch { host => "ip-10-160-94-102.ap-northeast-1.compute.internal" port => 9200 cluster => "elasticsearch" protocol => http }
- grok有哪些pattern?
这里有全部的列表;
值得一提的是,QUOTEDSTRING和GREEDYDATA都是文字内容比较多的时候比较好用的pattern;
Grok debugger是一个巨好用的工具;
- 如何丢失掉不需要的日志?
网上有说用grep filter的,但是一方面grep不是官方插件(而是logstash-contrib里面的),另外新版好像也没有了。于是我最终还是只用了if语句和grok。
基本逻辑就是
- 每个match都给加一个tag
- 结束前判断是不是有有用的tag存在
if !(“tagA” in [tags] or “tagB” in [tags]) {
drop { }
}
- 为什么索引的值不能做sum/average,为什么我的字段不是Number类型而是String?
grok的文档是很有误导性的,%{NUMBER:myfield}的意思仅仅是使用数字的正则表达式去匹配,而匹配的结果grok都默认以string的类型去索引。
如果想要指定索引的类型,需要写成%{NUMBER:myfield:int},:float也是可以用的。
如果某个字段的索引已经是string了,要改成int应该是可以用elasticsearch的Mapping API的,但是我没有成功。我最后成功是把之前的索引都删掉重做了。
$ curl -XDELETE ‘http://localhost:9200/twitter/’
- 怎么制作visualization?
好多东西我也没理解,有精力的可以看大神写的文档,简单说些基本原理和小技巧吧:
- ”split”相当于group by
- “search”的创建在”discover”里
- terms选择后,size写0意思就是没有limit
- terms选择后,可以用include或exclude限定这个字段,相当于where
最后贴一张最终效果图互勉,弄了三天:
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-08-29 20:15:39