相关文章推荐
高大的佛珠  ·  The Java SecureRandom ...·  10 月前    · 
想旅行的钥匙  ·  python ...·  1 年前    · 
温柔的可乐  ·  C# ...·  1 年前    · 

ES7.15日志配置小结

  • ES7.0增加通过json记录ES日志,可在日志中加入node.id,cluster.uuid,type。其中type主要用于区分docker环境下的每个节点的日志。
  • ES日志包括集群节点日志、过时日志、查询慢日志和写入慢日志等。
  • 日志级别调整,可以细化到包级别,此外还支持动态修改,例如将discovery模块日志级别设置为debug,其他模块仍然保持info级别。

ES版本7.15

默认日志配置如下,详细的配置方式可以 参考官网

######## Server JSON ############################
appender.rolling.type = RollingFile 
appender.rolling.name = rolling
appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_server.json 
appender.rolling.layout.type = ESJsonLayout 
appender.rolling.layout.type_name = server 
appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.json.gz 
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy 
appender.rolling.policies.time.interval = 1 
appender.rolling.policies.time.modulate = true 
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy 
appender.rolling.policies.size.size = 256MB 
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.fileIndex = nomax
appender.rolling.strategy.action.type = Delete 
appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path}
appender.rolling.strategy.action.condition.type = IfFileName 
appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-* 
appender.rolling.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize 
appender.rolling.strategy.action.condition.nested_condition.exceeds = 2GB 
################################################

其中appender.rolling.layout.type设置值ESJsonLayout表示通过JSON方式记录日志;

当ES节点运行于docker时,可设置appender.rolling.layout.type_name = server,将会在json日志中打印"type":"server"用于区分日志流。

注意:ES7.15默认是带两个格式的日志,这样会输出两种格式不同,内容相同的日志。可以在log4j2.properties中删除或注释。例如将集群志中老的日志注释,这样就不会打印老风格的日志了。

################################################
######## Server -  old style pattern ###########
#appender.rolling_old.type = RollingFile
#appender.rolling_old.name = rolling_old
#appender.rolling_old.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log
#appender.rolling_old.layout.type = PatternLayout
#appender.rolling_old.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %m%n
#appender.rolling_old.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.log.gz
#appender.rolling_old.policies.type = Policies
#appender.rolling_old.policies.time.type = TimeBasedTriggeringPolicy
#appender.rolling_old.policies.time.interval = 1
#appender.rolling_old.policies.time.modulate = true
#appender.rolling_old.policies.size.type = SizeBasedTriggeringPolicy
#appender.rolling_old.policies.size.size = 128MB
#appender.rolling_old.strategy.type = DefaultRolloverStrategy
#appender.rolling_old.strategy.fileIndex = nomax
#appender.rolling_old.strategy.action.type = Delete
#appender.rolling_old.strategy.action.basepath = ${sys:es.logs.base_path}
#appender.rolling_old.strategy.action.condition.type = IfFileName
#appender.rolling_old.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-*
#appender.rolling_old.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize
#appender.rolling_old.strategy.action.condition.nested_condition.exceeds = 2GB

过期日志:使用即将废弃的ES功能时,会打印告警日志到日志目录下的elasticsearch_deprecation.json文件中;日志级别包括CRITICALWARN,当使用功能会在下个主版本移除时会报CRITICAL级别日志,当使用功能可能会在未来版本移除时会报WARN。此外过期日志默认是打开状态,如果想关闭过时日志,设置方法如下:

logger.deprecation.level = OFF

如果想识别是什么触发了告警日志,可以通过日志中的x-opaque-id识别(当然你得在请求的header中携带x-opaque-id信息)。可以设置cluster.deprecation_indexing.enabled:true将过期日志写入到索引.logs-deprecation.elasticsearch-default中(该功能在ES7.16中添加,ES7.15暂不支持)。

查询慢日志

查询慢日志可以细化到分片级别,日志将详细记录搜索和获取数据两阶段的日志。默认情况为关闭状态(设置为-1)。查询慢日志的日志名称和格式在log4j2.properties中配置,默认名称是*_index_search_slowlog.json*表示${sys:es.logs.cluster_name}。查询慢日志都是在索引层面动态配置,配置方法如下:

# 表示配置my-index-000001 查询慢日志条件
PUT /my-index-000001/_settings
  "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"
#关闭查询慢日志
PUT /my-index-000001/_settings
  "index.search.slowlog.threshold.query.warn": "-1",
  "index.search.slowlog.threshold.query.info": "-1",
  "index.search.slowlog.threshold.query.debug": "-1",
  "index.search.slowlog.threshold.query.trace": "-1",
  "index.search.slowlog.threshold.fetch.warn": "-1",
  "index.search.slowlog.threshold.fetch.info": "-1",
  "index.search.slowlog.threshold.fetch.debug": "-1",
  "index.search.slowlog.threshold.fetch.trace": "-1"
# 所有索引都配置查询慢日志
PUT  _settings
  "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"

注意:这里warn、info、debug、trace表示超过10s的查询会打印warn级别日志,超过5s打印info日志以此类推。当info设置为3ms,warn设置为4ms,打印格式如下:

[INFO ][i.s.s.query              ] [cluster-node-5] [.kibana_task_manager_7.15.2_001][0] took[3.5ms]

索引慢日志

索引慢日志和查询慢日志类似,但索引慢日志默认是开启的;在log4j2.properties中配置日志格式和慢日志文件名称(名称为*_index_indexing_slowlog.json,*代表${sys:es.logs.cluster_name}).

在打印慢日志时,默认将真实索引数据的1000个字符打印出来("index.indexing.slowlog.source": "1000");可以将该值修改为false0跳过打印原始数据;当设置为true会打印全部数据。但是打印格式会变成一行。如果想保留原有格式可以通过设置index.indexing.slowlog.reformat:"false",同样索引慢日志也可以动态配置:

PUT /my-index-000001/_settings
  "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.source": "1000",
  "index.indexing.slowlog.reformat": "false"

日志级别控制

ES可以为每个java包设置日志级别,且支持动态修改。

集群日志级别动态设置

第一种 实时修改

PUT /_cluster/settings
    "transient" : {
        "logger._root" : "info"
 

第二种 在log4j2.properties中设置

rootLogger.level = debug

包级别日志动态设置

例如discovery可以通过三种方式设置日志级别:

第一种 实时修改

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

第二种 在elasticsearch.yml中设置

logger.org.elasticsearch.discovery: DEBUG
 

第三种 在log4j2.properties中设置

logger.discovery.name = org.elasticsearch.discovery
logger.discovery.level = debug

常见功能的包名如下所示,更多信息可以参考源码

  • org.elasticsearch.indices.recovery负责分片数据恢复
  • org.elasticsearch.http负责绑定端口或节点间的连接通信
  • org.elasticsearch.snapshots负责备份和备份恢复相关操作
  • org.elasticsearch.cluster.routing.allocation负责分片的分配决策过程

客官且慢,点赞、收藏+关注 谢谢~

ES7.0增加通过json记录ES日志,可在日志中加入node.id,cluster.uuid,type。其中type主要用于区分docker环境下的每个节点的日志。ES日志包括集群节点日志、过时日志、查询慢日志和写入慢日志等。日志级别调整,可以细化到包级别,此外还支持动态修改,例如将discovery模块日志级别设置为debug,其他模块仍然保持info级别。
skywalking的如下版本apache-skywalking-apm-bin-es7.rar skywalking的如下版本apache-skywalking-apm-bin-es7.rar skywalking的如下版本apache-skywalking-apm-bin-es7.rar skywalking的如下版本apache-skywalking-apm-bin-es7.rarskywalking的如下版本apache-skywalking-apm-bin-es7.rar
通过curl发送DELETE命令给elasticsearch服务器,进行日志删除操作。命令示例如下: curl -XDELETE 'http://192.168.1.135:9200/*-2020.07.11*' curl -XDELETE...
每个软件应用为了方便排查运行时出现的问题或者一些做一些数据记录,都会提供相应的日志记录,Elasticsearch也不例外,Elasticsearch日志记录通过3类日志类型进行记录: **(1)主要日志(cluster-name.log)😗*记录了Elasticsearch运行时所发生一切的综合信息,例如,某个查询失败或一个新的节点加入集群 **(2)慢搜索日志(cluster-name_index_search_slowlog.log)😗*当某个查询运行得很慢时,Elasticsearch会在这里进行记
ES7.0增加通过json记录ES日志,可在日志中加入node.id,cluster.uuid,type。其中type主要用于区分docker环境下的每个节点的日志ES日志包括集群节点日志、过时日志、查询慢日志和写入慢日志等。 日志级别调整,可以细化到包级别,此外还支持动态修改,例如将discovery模块日志级别设置为debug,其他模块仍然保持info级别。 具体的一些日志文件:
es里面的操作,主要分为两种,一种写入(增删改),另一种是查询(搜索) 我们分别要识别出来,哪些写入操作性能比较慢,哪些查询操作性能比较慢,先要识别出来有性能问题的这些慢查询,慢写入,然后才能去考虑如何优化写入的性能,如何优化搜索的性能 搜索慢查询日志 无论是慢查询日志,还是慢写入日志,都是针对shard级别的,因为大家应该知道,无论你是执行增删改,还是执行搜索,都是对某个数据执行写入或者是搜索,其实都是到某个shard上面去执行的 shard上面执行的慢的写入或者是搜索,都会记录在针对这个shar
最近发现线上的es集群日志数量有点多,且过于冗余。于是今天对es日志配置重新配置一下。 我这边的配置就是参考了下文。参考链接:http://www.chaiguanxin.com/articles/2019/05/30/1559202725366.html 日志配置 es使用log4j2来处理日志。可以在log4j2.properties文件里面修改日志的一些配置es提供了3个属性,分别是:${sys:es.logs.base_path}, ${sys:es.logs.cluster_name}
index_patterns: 匹配索引 settings: 索引相关配置 mappings: 字段配置(不配置这个,logstash 送进来的数据不会生成文档) 小技巧:mappings 可以从旧的索引里面直接copy一份 2、创建索引管理策略 3、将索引模板绑定至索引管理策略 PUT _template/bdo-pm-log-template "index_patterns": ["bdo-pm-log*"], "settings" : { 测试同学压测 接口,导致es疯狂超时 登录es服务器,打开日志,发现全部是超时日志,再往上看发现全是debug级别的日志,而且连每条query语句都打印了出来。 "max_expansions" : 50, "fuzzy_transpositions" : true, "lenient" : false, "zero_terms_query" : "NONE"
总共有7等级:OFF 、FATAL 、ERROR、WARN、INFO、DEBUG、TRACE 、ALL 1.OFF 为最高等级 关闭了日志信息 2.FATAL 为可能导致应用中止的严重事件错误 3.ERROR 为严重错误 主要是程序的错误 4.WARN 为一般警告,比如session丢失 5.INFO 为一般要显示的信息,比如登录登出 6.DEBUG 为程序的调试信息 7.TRACE 为比DEBUG更细粒度的事件信息 8.ALL 为最低等级,将打开所有级别的日志 输出的规则是,大于等于当前设置的日志等级的才
### 回答1: apache-skywalking-apm-es7-8.5.0.tar.gz 是一个开源的应用性能监控(APM)平台,使用 Java 开发,适用于云原生和基于容器化的微服务架构。它可以监控应用程序的运行状况、性能指标和错误信息,从而帮助开发人员可以更快、更准确的定位问题,提高应用可用性和性能。此版本适用于 Elasticsearch 7.x 版本,并包含新增功能、修复问题和性能优化。在使用前需要对应的技术要求和部署方式进行学习和了解。此外,用户也可以参考官方文档和社区进行深入学习和交流。apache-skywalking-apm-es7-8.5.0.tar.gz 是一个功能强大的开源工具,可以帮助开发人员更好地监控和管理分布式应用程序,提高开发效率和应用稳定性。 ### 回答2: Apache Skywalking是一款开源的应用性能管理工具,能够帮助用户监测和优化应用程序的运行。其中,apm-es7-8.5.0.tar.gz是Apache Skywalking的一个版本,其中包含了基于ElasticSearch 7.x的数据存储技术,能够实现更高效、更可靠的数据存储和检索。 在使用apm-es7-8.5.0.tar.gz版本的Apache Skywalking时,用户可以通过简单的配置和集成,实现对各种应用程序的监测和优化。该工具提供了丰富的监测指标和报告,能够深入分析涵盖多种技术领域的应用程序性能状况,包括分布式追踪、服务依赖关系、异常跟踪、性能瓶颈等方面。 此外,apm-es7-8.5.0.tar.gz版本的Apache Skywalking通过对数据的大规模处理和分析,提供了对系统整体性能的深入洞察。用户可以通过可视化报告和定制化的警报机制,及时地发现和解决应用程序中的错误和问题,进一步提升应用程序的稳定性和效率。 总之,apm-es7-8.5.0.tar.gz版本的Apache Skywalking是一款高效可靠的应用性能管理工具,为用户带来了全面的性能监测和优化体验,是提升应用程序效率和用户体验的重要工具。 ### 回答3: apache-skywalking-apm-es7-8.5.0.tar.gz是一个基于Apache SkyWalking的应用程序性能管理工具。它为用户提供了深入了解其应用程序的性能和行为的能力,帮助用户识别问题并优化其应用程序。该工具支持多种语言和框架,如Java和.NET,还支持多种数据库和消息队列。它具有灵活的插件架构,从而使用户能够自定义和扩展其功能。 这个工具还具有将数据导出到不同数据源的能力,例如Elasticsearch和Kafka,使其可与用户的现有解决方案无缝集成。此外,它还支持多样的告警方式,包括邮件和Webhook。 总之,apache-skywalking-apm-es7-8.5.0.tar.gz是一款强大的性能管理工具,能够帮助用户更好地了解其应用程序的性能和行为,识别问题并优化其应用程序。
java.lang.NoClassDefFoundError: org/springframework/core/annotation/MergedAnnotations$SearchStrategy