博客
关于我
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/

    你可能感兴趣的文章
    PostgreSQL 分组聚合查询中 filter 子句替换 case when
    查看>>
    PostgreSQL 同步流复制锁瓶颈分析
    查看>>
    PostgreSQL 备份与还原命令 pg_dump
    查看>>
    Postgresql 外部表插件postgres_fdw的安装和使用
    查看>>
    PostgreSQL 如何从崩溃状态恢复(上)
    查看>>
    PostgreSQL 存储过程基本语法
    查看>>
    PostgreSQL 实现批量更新、删除、插入
    查看>>
    PostgreSQL 导入 .gz 备份文件
    查看>>
    PostgreSQL 批量插入&更新数据时报错(ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time)
    查看>>
    PostgreSQL 新增数据返回自增ID
    查看>>
    postgresql 更新多列数据
    查看>>
    PostgreSQL 服务启动后停止
    查看>>
    PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
    查看>>
    PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
    查看>>
    Qt开发——简易调色板QPalette
    查看>>
    PostgreSQL-解决连接时遇到的乱码问题
    查看>>
    PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
    查看>>
    PostgreSQL9.1 双机部署配置(主备数据同步)
    查看>>
    Qt开发——简易网络浏览器(一)
    查看>>
    Qt开发——简易成绩登记系统
    查看>>