暂无图片
elasticsearch配置慢查询是不是修改配置重启集群才生效?
我来答
分享
暂无图片 匿名用户
elasticsearch配置慢查询是不是修改配置重启集群才生效?

elasticsearch配置慢查询是不是修改配置重启集群才生效?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
哇哈哈

可以调用api借口动态修改,不需要重启

如下::

ElasticSearch引擎配置慢查询日志,可以实时监控搜索过慢的日志。虽然ElasticSearch以快速搜索而出名,但随着数据量的进一步增大或是服务器的一些性能问题,会有可能出现慢查询的情况。慢查询日志可以帮助你快速定位到是什么 Index 和 语句 过慢。甚至还可以用Opster Search Log Analyzer分析你的慢查询日志,Opster Search Log Analyzer还会针对你的慢查询日志提供专门的优化建议。

 

默认情况下,慢查询日志打印功能是关闭的。你可以通过设置查询的threshold值来设置,通过如下的命令查看当前设置的值。下面以mytask索引为例:

curl -XGET "http://<your elastic host>:9200/mytask/_settings"
复制

上面查询了mytask当前设置的值,如果你想输出所有索引的设置信息,那么只需要将mytask改为_all就可以了  /_all/_settings .

 

如果输出的信息中,如果没有threadhold值那么就还没有进行设置。需要分别设置 搜索部分  和 索引部分 两部分。

搜索部分

curl -XPUT "http://<your elastic host>:9200/mytask/_settings" -H 'Content-Type: application/json' -d'
{
"index.search.slowlog.threshold.query.warn": "10s",
"index.search.slowlog.threshold.query.info": "5s",
"index.search.slowlog.threshold.query.debug": "2s",
"index.search.slowlog.threshold.query.trace": "500ms",
"index.search.slowlog.threshold.fetch.warn": "1s",
"index.search.slowlog.threshold.fetch.info": "800ms",
"index.search.slowlog.threshold.fetch.debug": "500ms",
"index.search.slowlog.threshold.fetch.trace": "200ms",
"index.search.slowlog.level": "info"
}'
复制

上面给Elastic Search搜索(Search)设置了慢查询日志输出分界线为info级。上面有设置query和fetch两部分,query表示获取文档(Documents)的时间,fetch表示获取实际数据源(Source)的时间。

 

索引部分

curl -XPUT "http://<your elastic host>:9200/mytask/_settings" -H 'Content-Type: application/json' -d'
{
"index.indexing.slowlog.threshold.index.warn": "10s",
"index.indexing.slowlog.threshold.index.info": "5s",
"index.indexing.slowlog.threshold.index.debug": "2s",
"index.indexing.slowlog.threshold.index.trace": "500ms",
"index.indexing.slowlog.level": "info",
"index.indexing.slowlog.source": "1000"
}'
复制

上面给Elastic Search索引(Indexing)设置了慢查询日志输出的分界线为info级,并且每条数据最多输出源数据(Source)的前1000个字符。

 

然后你可以再通过命令 mytask/_settings 来检查设置是否生效。如果设置没有问题了,那么你接下来就可以在日志目录中观察到你的慢日志文件了。

获取日志输出目录

curl -XGET "http://<your elatic host>:9200/_nodes/settings?pretty=true"
复制

在settings.path.logs下找到打印日志的目录。默认情况,慢日志文件名格式为:

<cluster_name>_index_search_slowlog.log 
<cluster_name>_index_indexing_slowlog.log
复制

 

 

由于ElasticSearch的处理速度非常的快,所以很有可能没有慢查询的日志。你可以通过如下的操作,将所有的查询和索引都记录到日志中。

curl -XPUT "http://<your elatic host>:9200/task/_settings" -H 'Content-Type: application/json' -d'
{
"index.search.slowlog.threshold.query.trace": "0ms",
"index.search.slowlog.threshold.fetch.trace": "0ms",
"index.search.slowlog.level": "trace",
"index.indexing.slowlog.threshold.index.trace": "0ms",
"index.indexing.slowlog.level": "trace"
}'
复制

上面将打印日志的级别设置为trace, 并且将trace的相应的时间设置为0ms,这样就会打印所有的操作记录了。注意:这样的设置仅用于测试!

上面都是以mytask索引为例展示数据的索引,你也可以将mytask替换为其他索引名称,或者使用_all给所有索引设置慢查询日志(不建议这样设置).

 

慢查询日志 对于ElasticSearch引擎的性能 非常地重要,同时也能给你的系统提供一层监控,以便你及时优化出现的慢查询。 通常情况下,可能会偶尔出现慢查询的语句,这种情况无需要做针对性的处理(有可能是垃圾回收或CPU紧张等造成的暂时现象)。但如果出现大片幅度的慢查询日志记录,就需要进行针对性的优化。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Elasticsearch没有集群就一个,状态是red,但是可以搜索到数据,为什么?
回答 1
3个节点都是好的才是绿色的。2个能用是黄色的。1个只能是红了。只是表示健康度,有点危险。不影响使用。
elasticsearch 双向同步怎么操作?
回答 1
参考官方ccr
大数据存储使用elasticsearch好还是Hbase+ES?
回答 1
已采纳
具体看场景。你要是全文检索用es。不过es和大数据存储没直接关系。hbase是用在宽表上。
elasticsearch 9200口访问不到是什么原因?
回答 1
你es起来了吗?本机telnet9200通不通?如果本机可以。在你终端机telnet这个es机器的9200.通不通
elasticsearch在没有备份的情况下删除了数据能恢复吗?
回答 1
已采纳
一般手段来说不能。找原厂问问吧。
Elasticsearch能根据IP地址的前三位进行统计吗?
回答 2
可以
logstash 每秒都会同步 sql能查询出数据 但是就是不往elasticsearch插入?
回答 2
手工给es写几条看看能不能写入?是不是配置错了,看看报错日志。
Elasticsearch filebeat 怎么配置告警?
回答 1
可以配置filebeat/inputs.d/.ymlfilebeat/modules.d/.yml这两个文件实现告警
elasticsearch 配置文件路径 在是哪个文件,在什么路径下?
回答 1
你es(包)/conf/elasticsearch.yml
elasticsearch 怎么设置http basic,用的啥插件?
回答 1
已采纳
httpbasic插件是对elasticsearch的http请求做验证的,所有不在白名单的客户机发起的http请求操作都需要用户名密码认证。如下配置:vi&nbsp;elasticsearch.ym