伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

elasticsearch慢日志

来源:网络转载 浏览:39011次 时间:2023-08-15

日志记录

Elasticsearch 会输出很多日志,都放在 ES_HOME/logs 目录下。默认的日志记录等级是 INFO 。 它提供了适度的信息,但是又设计好了不至于让你的日志太过庞大。

当调试问题的时候,特别是节点发现相关的问题(因为这个经常依赖于各式过于繁琐的网络配置),提高日志记录等级到 DEBUG 是很有帮助的。

你 可以 修改 logging.yml 文件然后重启你的节点——但是这样做即繁琐还会导致不必要的宕机时间。作为替代,你可以通过 cluster-settings API 更新日志记录级别,就像我们前面刚学过的那样。

要实现这个更新,选择你感兴趣的日志器,然后在前面补上 logger. 。对根日志器你可以用 logger._root 来表示。

让我们调高节点发现的日志记录级别:

PUT /_cluster/settings
{
    "transient" : {
        "logger.discovery" : "DEBUG"
    }
}

设置生效,Elasticsearch 将开始输出 discovery 模块的 DEBUG 级别的日志。


避免使用 TRACE 。这个级别非常的详细,详细到日志反而不再有用了。

慢日志

还有另一个日志叫 慢日志 。这个日志的目的是捕获那些超过指定时间阈值的查询和索引请求。这个日志用来追踪由用户产生的很慢的请求很有用。

默认情况,慢日志是不开启的。要开启它,需要定义具体动作(query,fetch 还是 index),你期望的事件记录等级( WARN 、 DEBUG 等),以及时间阈值。

这是一个索引级别的设置,也就是说可以独立应用给单个索引:

PUT /my_index/_settings
{
    "index.search.slowlog.threshold.query.warn" : "10s", 
    "index.search.slowlog.threshold.fetch.debug": "500ms", 
    "index.indexing.slowlog.threshold.index.info": "5s"
}

查询慢于 10 秒输出一个 WARN 日志。

获取慢于 500 毫秒输出一个 DEBUG 日志。

索引慢于 5 秒输出一个 INFO 日志。

你也可以在 elasticsearch.yml 文件里定义这些阈值。没有阈值设置的索引会自动继承在静态配置文件里配置的参数。

一旦阈值设置过了,你可以和其他日志器一样切换日志记录等级:

PUT /_cluster/settings
{
    "transient" : {
        "logger.index.search.slowlog" : "DEBUG", 
        "logger.index.indexing.slowlog" : "WARN" 
    }
}

设置搜索慢日志为 DEBUG 级别。

设置索引慢日志为 WARN 级别。

https://www.elastic.co/guide/cn/elasticsearch/guide/current/logging.html


es里面的操作,主要分为两种,一种写入(增删改),另一种是查询(搜索)。我们分别要识别出来,哪些写入操作性能比较慢,哪些查询操作性能比较慢,先要识别出来有性能问题的这些慢查询,慢写入,然后才能去考虑如何优化写入的性能,如何优化搜索的性能。

搜索慢查询日志

无论是慢查询日志,还是慢写入日志,都是针对shard级别的,无论你是执行增删改,还是执行搜索,都是对某个数据执行写入或者是搜索,其实都是到某个shard上面去执行的。shard上面执行的慢的写入或者是搜索,都会记录在针对这个shard的日志中

阈值的意思,就是说,什么叫做慢?搜索,5s叫做慢?还是10s叫做慢?或者是1s叫做慢?比如说,你设置一个阈值,5s就是搜索的阈值,5s就叫做慢,那么一旦一个搜索请求超过了5s之后,就会记录一条慢搜索日志到日志文件中。

shard level的搜索慢查询日志,会将搜索性能较慢的查询写入一个专门的日志文件中。可以针对query phase和fetch phase单独设置慢查询的阈值,而具体的慢查询阈值设置如下所示:

 

在elasticsearch.yml中,设置

 

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

 

而慢查询日志具体的格式,都是在log4j2.properties中配置的,比如下面的配置:

 

appender.index_search_slowlog_rolling.type= RollingFile

appender.index_search_slowlog_rolling.name= index_search_slowlog_rolling

appender.index_search_slowlog_rolling.fileName= ${sys:es.logs}_index_search_slowlog.log

appender.index_search_slowlog_rolling.layout.type= PatternLayout

appender.index_search_slowlog_rolling.layout.pattern= [%d{ISO8601}][%-5p][%-25c] %.10000m%n

appender.index_search_slowlog_rolling.filePattern= ${sys:es.logs}_index_search_slowlog-%d{yyyy-MM-dd}.log

appender.index_search_slowlog_rolling.policies.type= Policies

appender.index_search_slowlog_rolling.policies.time.type= TimeBasedTriggeringPolicy

appender.index_search_slowlog_rolling.policies.time.interval= 1

appender.index_search_slowlog_rolling.policies.time.modulate= true

 

logger.index_search_slowlog_rolling.name =index.search.slowlog

logger.index_search_slowlog_rolling.level =trace

logger.index_search_slowlog_rolling.appenderRef.index_search_slowlog_rolling.ref= index_search_slowlog_rolling

logger.index_search_slowlog_rolling.additivity= false

 

索引慢写入日志

 

可以用如下的配置来设置索引写入慢日志的阈值:

 

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

 

用下面的log4j2.properties配置就可以设置索引慢写入日志的格式:

 

appender.index_indexing_slowlog_rolling.type= RollingFile

appender.index_indexing_slowlog_rolling.name= index_indexing_slowlog_rolling

appender.index_indexing_slowlog_rolling.fileName= ${sys:es.logs}_index_indexing_slowlog.log

appender.index_indexing_slowlog_rolling.layout.type= PatternLayout

appender.index_indexing_slowlog_rolling.layout.pattern= [%d{ISO8601}][%-5p][%-25c] %marker%.10000m%n

appender.index_indexing_slowlog_rolling.filePattern= ${sys:es.logs}_index_indexing_slowlog-%d{yyyy-MM-dd}.log

appender.index_indexing_slowlog_rolling.policies.type= Policies

appender.index_indexing_slowlog_rolling.policies.time.type= TimeBasedTriggeringPolicy

appender.index_indexing_slowlog_rolling.policies.time.interval= 1

appender.index_indexing_slowlog_rolling.policies.time.modulate= true

 

logger.index_indexing_slowlog.name =index.indexing.slowlog.index

logger.index_indexing_slowlog.level = trace

logger.index_indexing_slowlog.appenderRef.index_indexing_slowlog_rolling.ref= index_indexing_slowlog_rolling

logger.index_indexing_slowlog.additivity =false

 

把这个东西记录好了以后,es集群运维管理员,就需要经常每天去看看,正常情况下,慢查询应该是比较少数的。所以比如你每天检查一次,如果发现某个查询特别慢,就要通知写这个查询的RD,开发人员,让他们去优化一下性能。


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net