elasticsearch log日志占满磁盘的问题总结

今天在工作过程中遇到了一个问题,elasticsearch创建索引失败,我首先检查一下磁盘,发现磁盘爆满了

df -h /data

然后具体的查看是哪个文件占用过多

du -h /data

 发现是es-data目录,再继续发现

cd /data/es-data
du -h 

发现是logs目录占用最多,这个logs目录是配置给es的日志的,具体的配置为:

elasticsearch.yml文件中的path.logs参数

这个参数配置的是日志的存放目录。而log4j2.properties 用于配置elasticsearch的日志。

所以我们需要修改log4j2.properties中的相关配置,配置日志的自动清理策略

Log4j2

Elasticsearch使用Log4j2进行日志记录。可以使用 log4j2.properties 文件配置log4j2。Elasticsearch公开三个属性 ${sys:es.logs.base_path} ,${sys:es.logs.cluster_name} 以及 ${sys:es.logs.node_name} (如果明确设置node.name),可以在配置文件中引用,以确定日志文件的位置。

  • ${sys:es.logs.base_path} 将解析为日志目录;
  • ${sys:es.logs.cluster_name} 将解析为群集名称(默认配置中,用作日志文件名的前缀);
  • ${sys:es.logs.node_name} 将解析为节点名称(如果节点名称已显式设置)。

例如,如果您的日志目录(path.logs)是 /var/log/elasticsearch ,您的群集被命名 production;

那么 ${sys:es.logs.base_path} 将解析到 /var/log/elasticsearch ;

${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log 将被解析到 /var/log/elasticsearch/production.log 。

  1. 采用RollingFile类型的Appender

  2. 把日志写到/var/log/elasticsearch/production.log

  3. 归档后的日志文件的文件名格式,其中"%d{yyyy-MM-dd-HH}"用来自动填充日期

  4. 基于时间进行日志的切割

  5. 切割的间隔为1小时, 即每小时进行一次日志的归档

  6. 修正时间范围, 从0时开始计数,日志轮换是以天作为分界(而不是相隔24小时)

 Log4j的配置解析会被无关的空格干扰; 如果您在此页面上复制并粘贴任何Log4j设置,或者输入任何的Log4j配置,请确保去掉前导和尾随空格。

如果在 appender.rolling.filePattern 中追加.gz或者.zip后缀,那么当日志轮换的时候,旧的日志将会被压缩处理。

如果要在特定时间段内保留日志文件,则可以使用带有删除操作的滚动策略。

 

1、配置 DefaultRolloverStrategy

2、配置 delete action处理回滚

3、删除哪个目录下的日志归档文件

4、回滚处理时适用的条件

5、保留日志七天

6、只删除超过7天的文件,如果它们与指定的glob匹配

7、从基路径删除和glob  ${sys:es.logs.cluster_name}-* 匹配的文件,这是日志文件滚动到的glob;只会删除滚动的Elasticsearch日志,而不会删除弃用和缓慢的日志。感觉有点不通,把原文贴出来。

    
Delete files from the base path matching the glob ${sys:es.logs.cluster_name}-*; this is the glob that log files are rolled to; this is needed to only delete the rolled Elasticsearch logs but not also delete the deprecation and slow logs

可以加载多个配置文件(在这种情况下,它们将会被合并),只要它们被命名 log4j2.properties 并存放在Elasticsearch config目录下(只要它的祖先是此目录就行); 这对于插件记录日志很有用。

 logger  部分包含java包及其对应的日志级别。 appender 部分包含日志的储存位置。在Log4j documentation中可以找到有关如何自定义日志记录和 appender 的相关信息。

弃用日志

除了常规日志记录功能之外,Elasticsearch还允许您启用对已弃用的日志记录。例如,如果将来需要迁移某些功能,则可以提前确定。默认情况下,在WARN级别(在此级别,所有弃用日志消息都会被输出)启用弃用日志记录。

logger.deprecation.level = warn

这将在您的日志目录中创建每日滚动弃用日志文件。定期检查这个文件,特别是当你打算升级到一个新的主要版本。

默认日志记录配置已将弃用日志的滚动策略设置为1 GB后滚动和压缩,并保留最多五个日志文件(4个轮换日志,一个在用的日志)。通过在 config/log4j2.properties 文件中将弃用日志级别设置为error,就可以禁用它。

ES配置文件之日志-log4j2.properties

https://blog.csdn.net/qingmou_csdn/article/details/105917497

Elasticsearch配置详解

https://blog.csdn.net/mythest/article/details/88560972

Elasticsearch 日志配置详解

https://www.cnblogs.com/cocowool/p/elasticsearch-log-config.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。开源实时日志分析ELK平台能够完美的解决日志收集和日志检索、分析的问题,ELK就是指ElasticSearchLogstash和Kiabana三个开源工具。 因为ELK是可以跨平台部署,因此非常适用于多平台部署的应用。 二 环境准备 1. 安装JDK1.8环境 2. 下载ELK软件包 logstash: https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.zip elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip kibana: https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-windows-x86.zip 分别解压下载的软件,elasticsearchlogstash,kibana 可以放在一个统一文件夹下 三 部署 1.配置logstash 在logstash文件夹的下bin目录创建配置文件logstash.conf ,内容如下: input { # 以文件作为来源 file { # 日志文件路径 path => "F:\test\dp.log" } } filter { #定义数据的格式,正则解析日志(根据实际需要对日志日志过滤、收集) grok { match => { "message" => "%{IPV4:clientIP}|%{GREEDYDATA:request}|%{NUMBER:duration}"} } #根据需要对数据的类型转换 mutate { convert => { "duration" => "integer" }} } # 定义输出 output { elasticsearch { hosts => ["localhost:9200"] #Elasticsearch 默认端口 } }   在bin目录下创建run.bat,写入一下脚本: logstash.bat -f logstash.conf 执行run.bat启动logstash。 2. 配置Elasticsearch elasticsearch.bat即可启动。 启动后浏览器访问 127.0.0.1:9200 ,出现以下的json表示成功。 3.配置kibana Kibana启动时从文件kibana.yml读取属性。默认设置配置Kibana运行localhost:5601。要更改主机或端口号,或者连接到在其他机器上运行的Elasticsearch,需要更新kibana.yml文件。 kibana.bat启动Kibana。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值