社区日报 第465期 (2018-12-01)
社区日报 • bsll 发表了文章 • 0 个评论 • 1702 次浏览 • 2018-12-01 10:40
- 适用于ES 6.0之后的Field Stats插件。
[http://t.cn/ELmZMFl](http://t.cn/ELmZMFl)
- 你知道ICU分析器支持emoji表情了吗?。
[http://t.cn/ELmw4aF](http://t.cn/ELmw4aF)
- Canvas中数据表和调试元素的使用示例。
[http://t.cn/ELmX7Tc](http://t.cn/ELmX7Tc)
Day 1 - ELK 使用小技巧(第 3 期)
Advent • rochy 发表了文章 • 1 个评论 • 5454 次浏览 • 2018-12-01 02:28
ELK Tips 主要介绍一些 ELK 使用过程中的小技巧,内容主要来源为 Elastic 中文社区。
一、Logstash
1、Filebeat 设置多个 output
在 6.0 之前,Filebeat 可以设置多个输出(必须是不同类型的输出);从 6.0 开始已经禁止多输出了,只能拥有一个输出,如果想实现多输出,可以借助 logstash 等中间组件进行输出分发。
二、Elasticsearch
1、ES 用户占用的内存大于为 ES 设置的 heapsize
ES 是 Java 应用,底层存储引擎是基于 Lucene 的,heapsize 设置的是 Java 应用的内存;而 Lucene 建立倒排索引(Inverted Index)是先在内存里生成,然后定期以段文件(segment file)的形式刷到磁盘的,因此 Lucene 也会占用一部分内存。
https://elasticsearch.cn/article/32
2、ES 使用别名插入数据
ES 可以通过索引的方式向索引插入数据,但是同时只能有一个索引可以被写入,而且需要手动设置,未设置的情况下会报错:no write index is defined for alias [xxxx], The write index may be explicitly disabled using
is_write_index=false
or the alias points to multiple indices without one being designated as a write index。
<br /> POST /_aliases<br /> {<br /> "actions" : [<br /> {<br /> "add" : {<br /> "index" : "test",<br /> "alias" : "alias1",<br /> "is_write_index" : true<br /> }<br /> }<br /> ]<br /> }<br />
3、ES 设置 G1 垃圾回收
修改
jvm.options
文件,将下面几行:
<br /> -XX:+UseConcMarkSweepGC<br /> -XX:CMSInitiatingOccupancyFraction=75<br /> -XX:+UseCMSInitiatingOccupancyOnly<br />
改为
<br /> -XX:+UseG1GC<br /> -XX:MaxGCPauseMillis=50<br />
即可。
其中-XX:MaxGCPauseMillis
是控制预期的最高 GC 时长,默认值为 200ms,如果线上业务特性对于 GC 停顿非常敏感,可以适当设置低一些。但是这个值如果设置过小,可能会带来比较高的 cpu 消耗。
4、ES 和 Zipkin 集成时设置验证信息
<br /> java -DKAFKA_ZOOKEEPER=10.14.123.117:2181 <br /> -DSTORAGE_TYPE=elasticsearch <br /> -DES_HOSTS=http://10.14.125.5:9200 <br /> ES_USERNAME=xxx ES_PASSWORD=xxx <br /> -jar zipkin.jar<br />
5、ES 集群部署报错
问题 1 报错信息如下:
<br /> Received message from unsupported version:[2.0.0] minimal compatible version is:[5.6.0]<br />
经排查是集群中存在低版本的 ES 实例,将低版本实例移除即可。
问题 2 报错信息如下:
<br /> with the same id but is a different node instance<br />
删除对应节点 elsticsearch 文件夹下的 data 文件夹下的节点数据即可。
6、海量中文分词插件
海量分词是天津海量信息技术股份有限公司自主研发的中文分词核心,经测试分词效果还是不错的,值得一试。
https://github.com/HylandaOpen ... hlseg
7、查询一个索引下的所有 type 名
通过下面的 API,即可获取全部的 type,下面的例子中 doc 就是 indexName 索引下的一个 type:
<br /> GET <a href="http://es127.0.0.1:9200/indexName/_mappings" rel="nofollow" target="_blank">http://es127.0.0.1:9200/indexName/_mappings</a><br /> -----------------------------------------------<br /> {<br /> indexName: - {<br /> mappings: - {<br /> doc: - {<br /> _all: + {... },<br /> dynamic_date_formats: + [... ],<br /> dynamic_templates: + [... ],<br /> properties: + {... }<br /> }<br /> }<br /> }<br /> }<br />
8、索引模板中根据字段值设置别名
设置索引模板的时候,别名可以使用 Query 条件来进行匹配。
<br /> PUT _template/template_1<br /> {<br /> "index_patterns" : ["te*"],<br /> "settings" : {<br /> "number_of_shards" : 1<br /> },<br /> "aliases" : {<br /> "alias2" : {<br /> "filter" : {<br /> "term" : {"user" : "kimchy" }<br /> },<br /> "routing" : "kimchy"<br /> },<br /> "{index}-alias" : {} <br /> }<br /> }<br />
9、索引模板设置默认时间匹配格式
ES 默认是不会将 yyyy-MM-dd HH:mm:ss 识别为时间的,可以通过在索引模板进行如下设置实现多种时间格式的识别:
<br /> "mappings": {<br /> "doc": {<br /> "dynamic_date_formats": ["yyyy-MM-dd HH:mm:ss||strict_date_optional_time||epoch_millis"],<br />
10、ES 中 Merge 相关设置
Merge 是非常耗费 CPU 的操作;而且如果不是 SSD 的话,推荐将 index.merge.scheduler.max_thread_count 设置为 1;否则 ES 会启动 Math.min(3, Runtime.getRuntime().availableProcessors() / 2) 个线程进行 Merge 操作;这样大部分机械硬盘的磁盘 IO 都很难承受,就可能出现阻塞。
<br /> "index": {<br /> "refresh_interval": "5s",<br /> "number_of_shards": "3",<br /> "max_result_window": 10000,<br /> "translog": {<br /> "flush_threshold_size": "500mb",<br /> "sync_interval": "30s",<br /> "durability": "async"<br /> },<br /> "merge": {<br /> "scheduler": {<br /> "max_merge_count": "100",<br /> "max_thread_count": "1"<br /> }<br /> },<br />
11、mapping 中 enabled store index 参数
- enabled:默认是true,只用于 mapping 中的 object 字段类型;当设置为 false 时,其作用是使 es 不去解析该字段,并且该字段不能被查询和 store,只有在 source 中才能看到,设置 enabled 为 false,可以不设置字段类型,默认类型为 object;
- store:默认 false,store 参数的功能和 source 有一些相似,我们的数据默认都会在 source 中存在,但我们也可以将数据 store 起来;当我们使用
copy_to
参数时,copy_to
的目标字段并不会在 source 中存储,此时 store 就派上用场了;- index:默认是 true,当设置为 false,表明该字段不能被查询,如果查询会报错。
12、ES 图片搜索
- 可以借助局部敏感 LSH 或者 pHash 来实现:https://stackoverflow.com/questions/32785803
- Github 也有一个开源项目使用了多种 Hash 算法借助 ES 来实现图片搜索:https://github.com/usc-isi-i2/ ... tures
13、Term 聚合根据子聚合结果排序
<br /> GET /_search<br /> {<br /> "aggs" : {<br /> "genres" : {<br /> "terms" : {<br /> "field" : "genre",<br /> "order" : { "playback_stats.max" : "desc" }<br /> },<br /> "aggs" : {<br /> "playback_stats" : { "stats" : { "field" : "play_count" } }<br /> }<br /> }<br /> }<br /> }<br />
三、社区文章精选
- [ET007 ElasticStack 6.5 介绍](https://elasticsearch.cn/article/6144)
- [CentOS 7.4 下安装 ES 6.5.1 搜索集群](https://elasticsearch.cn/article/6152)
- [Elastic Stack v6.5 新特性解读](https://elasticsearch.cn/article/6156)
- [Elasticsearch 史上最全最常用工具清单](https://mp.weixin.qq.com/s/s2ema4tIXKcqTNUUhjGt1w)
logstash同步父子关系到ElasticSearch报错,求教
Logstash • laoyang360 回复了问题 • 3 人关注 • 1 个回复 • 3221 次浏览 • 2018-12-01 21:48
一样的数据,为什么logstash2.4.0会解析部分json数据失败
回复Logstash • song19850712 发起了问题 • 1 人关注 • 0 个回复 • 2239 次浏览 • 2018-11-30 15:52
logstash snmp
Logstash • hanj 回复了问题 • 4 人关注 • 2 个回复 • 3454 次浏览 • 2019-08-13 16:52
当前模块依赖es6.3.2,但是依赖当前模块的项目展示 依赖es2.4.4,项目中并未引入es2.4.4
回复Elasticsearch • andyvera 发起了问题 • 1 人关注 • 0 个回复 • 1751 次浏览 • 2018-11-30 13:57
为什么elasticsearch写入比读取还要快?
Elasticsearch • Loading Zhang 回复了问题 • 3 人关注 • 2 个回复 • 1811 次浏览 • 2018-12-01 12:19
社区日报 第464期 (2018-11-30)
社区日报 • laoyang360 发表了文章 • 0 个评论 • 1602 次浏览 • 2018-11-30 12:37
http://t.cn/ELYKOXo
2、Elasticsearch搜索引擎性能调优实践
http://t.cn/ELRuqLN
3、全文检索ElasticSearch与Spring boot集成实例
http://t.cn/ELRuKal
编辑:铭毅天下
归档:https://elasticsearch.cn/article/6162
订阅:https://tinyletter.com/elastic-daily
es传输json数据出现的问题
Elasticsearch • rochy 回复了问题 • 2 人关注 • 1 个回复 • 1617 次浏览 • 2018-11-30 15:58
logstash 输入插件syslog中为啥不能配置host
Logstash • medcl 回复了问题 • 3 人关注 • 2 个回复 • 3420 次浏览 • 2018-12-08 21:40
kibana分析nginx日志,还在纠结用filebeat还是logstash
Kibana • sa_linux 回复了问题 • 6 人关注 • 5 个回复 • 10566 次浏览 • 2019-04-01 17:47
单次查询时间几十ms,并发数提高的情况下,查询速度如何提升
Elasticsearch • liubin 回复了问题 • 3 人关注 • 2 个回复 • 8324 次浏览 • 2018-11-30 17:48
怎么设置es的单个字段的长度,最大可以设置为多长
Elasticsearch • bellengao 回复了问题 • 2 人关注 • 1 个回复 • 5159 次浏览 • 2018-12-15 10:53
elasticsearch的节点不打印日志?
Elasticsearch • locatelli 回复了问题 • 3 人关注 • 2 个回复 • 2362 次浏览 • 2018-11-30 10:52