chenqb 发表于 2015-11-27 12:32:51

Elasticsearch+Logstash+Kibana配置

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 or “tagB” in ) {
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

[*]  如何配置kibana 4到apache上?

要用到proxy mod,具体看这里.

  最后贴一张最终效果图互勉,弄了三天:

页: [1]
查看完整版本: Elasticsearch+Logstash+Kibana配置