博客
关于我
Elasticsearch 日志配置详解
阅读量:440 次
发布时间:2019-03-06

本文共 3013 字,大约阅读时间需要 10 分钟。

Elasticsearch日志配置与优化指南

Elasticsearch日志输出方式

Elasticsearch作为一个强大的搜索引擎,其日志输出方式对日常运维至关重要。默认情况下,Elasticsearch会将日志输出到控制台或指定文件中。对于通过Docker运行的Elasticsearch实例,默认会将日志输出到终端。对于手动或通过yum安装的Elasticsearch,日志会保存在$ES_HOME/logs目录下。为了更灵活地管理日志路径,可以通过修改elasticsearch.yml文件中的path.logs参数指定日志存储路径。


Elasticsearch日志配置方法

随着Elasticsearch集群规模的扩大,合理配置日志设置至关重要。以下是日志配置的关键知识点:

如何配置日志输出到文件

要实现日志输出到文件,请按照以下步骤操作:

  • 修改elasticsearch.yml文件:在elasticsearch.yml中设置path.logs参数,指定日志存储路径,默认为/usr/share/elasticsearch/logs。
  • 配置log4j2.properties文件:通过在log4j2.properties中定义日志文件名生成规则。以下是常用参数:
    • ${sys:es.logs.base_path}:日志目录路径。
    • ${sys:es.logs.cluster_name}:集群名称。
    • ${sys:es.logs.node_name}:节点名称。
    • ${sys:file.separator}:路径分隔符。
  • 示例配置:

    appender.transport.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_transport.jsonappender.transport.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-transport-%i.json.gz

    如何配置日志的滚动策略

    日志滚动是优化日志管理的重要手段。Elasticsearch支持基于时间或文件大小的滚动策略。以下是基于文件大小的滚动配置示例:

    appender.transport.policies.type = Policiesappender.transport.policies.time.type = TimeBasedTriggeringPolicyappender.transport.policies.time.interval = 1appender.transport.policies.size.type = SizeBasedTriggeringPolicyappender.transport.policies.size.size = 10KB

    滚动策略配置完成后,旧文件会自动删除。以下是文件保留策略的配置示例:

    appender.transport.strategy.type = DefaultRolloverStrategyappender.transport.strategy.fileIndex = nomaxappender.transport.strategy.action.type = Deleteappender.transport.strategy.action.basepath = ${sys:es.logs.base_path}appender.transport.strategy.action.condition.type = IfAccumulatedFileCountappender.transport.strategy.action.condition.glob = *-transport-*appender.transport.strategy.action.condition.exceeds = 10

    按类型输出到不同的文件中

    Elasticsearch模块众多,通过日志配置,可以将不同模块的日志输出到独立文件中。以下是transport和discovery模块的日志配置示例:

    appender.transport.type = RollingFileappender.transport.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_transport.jsonappender.transport.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-transport-%i.json.gz
    appender.discovery.type = RollingFileappender.discovery.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_discovery.jsonappender.discovery.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i-discovery.json.gz

    调整日志级别

    Elasticsearch支持多种日志级别,包括TRACE、DEBUG、INFO、WARN等。以下是调整日志级别的方法:

  • 命令行配置:使用-E参数指定日志级别,例如:
    -E logger.org.elasticsearch.transport=trace
  • elasticsearch.yml文件:在elasticsearch.yml中设置日志级别,例如:
    logger.org.elasticsearch.transport: trace
  • log4j2.properties文件:通过rootLogger.level设置全局日志级别,通过logger.transport.level设置模块日志级别。
  • API动态调整:通过API修改日志级别,例如:
    PUT /_cluster/settings{"transient":{"logger._root":"DEBUG"}}

  • 常见错误处理

    在实际操作中,可能会遇到“无法加载插件”错误。这种错误通常是由于配置文件中存在空格或格式问题引起的。解决方法是确保配置文件内容无空格,并遵循官方建议:Log4j的配置解析会受到任何额外空格的影响,因此在复制配置时务必清理行尾空格。


    写在最后

    通过以上配置方法,Elasticsearch的日志管理变得更加灵活和高效。对于日常运维工作,建议结合具体场景选择合适的日志滚动策略和保留策略,以平衡日志存储和分析的效率。

    转载地址:http://imrkz.baihongyu.com/

    你可能感兴趣的文章
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty核心模块组件
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>
    Netty源码—7.ByteBuf原理三
    查看>>
    Netty源码—7.ByteBuf原理四
    查看>>
    Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
    查看>>
    Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
    查看>>
    Network Sniffer and Connection Analyzer
    查看>>
    Nginx Location配置总结
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    nginx 常用配置记录
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NI笔试——大数加法
    查看>>