DataStreams+logstash+ILM进行日志定时删除,节省硬盘资源

简介: 目前所有的K8S上的容器日志都被收集到了我们的ELK上,随着时间的推移,ELK上的日志所占的存储空间越来越多,我们需要一个定时清理的策略,以节约硬盘资源。我们主要配置以下ELK里的这几个地方1.通过kibana新增一个lifecycle policies2.通过kibana新增一个index template,注意配置DataStreams3.logstash 的logstashPipeline4.filebeat的filebeat.yml文件

背景

目前所有的K8S上的容器日志都被收集到了我们的ELK上,随着时间的推移,ELK上的日志所占的存储空间越来越多,我们需要一个定时清理的策略,以节约硬盘资源。

我们主要配置以下ELK里的这几个地方

  • 通过kibana新增一个lifecycle policies
  • 通过kibana新增一个index template,注意配置DataStreams
  • logstash 的logstashPipeline
  • filebeat的filebeat.yml文件

简要配置Image-2-8-1024x314.pngKibana上添加 Lifecycle Policies

1.点击菜单栏的【management】->点击【stack management】

2.点击DATA目录下的【Index Lifecycle Policies】

3.点击【Create policy】创建一个新的生命周期规则

4.测试的话,规则就随便配置一个每10分钟迭代一个新的,删除超过1小时的index

期望效果:

对应的index会从00001开始每隔10分钟往上+1,同时最多存在7个index。

Image-3-4-1024x639.png

Kibana上添加Index Templates

1.点击菜单栏的【management】->点击【stack management】

2.点击DATA目录下的【Index Management】

3.点击【Index Templates】小标签,【Create template】创建模板

4.index patterns匹配我们logstash上传来的index,比如192*

5.Data stream的配置按钮打开Image-4-2-1024x567.png6.index settings配置上我们上一步添加的Lifecycle Policies

Image-5-2-1024x434.png7.mappings参数需要配置【mapped fields】和【Dynamic Template】内容可以从logstash的配置里完整复制过来

8.其他的诸如component telmpalte 和Aliases都不用配置了。保存这个index template就行了


logstash配置

因为要动态生成index,所以要写一些filter规则,这里就不贴出来了。关键注意output里要设置

"action" => "create"和ilm_enabled => false
logstash.conf: |
    input {
      beats {
        port => 5044
      }
      tcp {
        port => 9999
      }
      udp {
        port => 9998
      }
    }
    filter {
      json {
        source => "message"
      }
      if [app_name] {
        mutate {
          add_field => {
            "index_name" => "%{app_name}"
          }
        }
      } else {
        mutate {
          add_field => {
            "index_name" =>  "non_index_log"
          }
        }
      }
    }
    output {
        elasticsearch {
           hosts => ["http://elasticsearch-master-headless:9200"]
           index => "%{index_name}"
           action => "create"
           ilm_enabled => false
        }
        stdout { codec => rubydebug }
    }

filebeat配置

因为有一些日志是通过filebeat传上来的,所以filebeat也要进行少量的配置,传一个app_name到logstash用于生成index

filebeat.inputs:
  - type: log
    paths:
      - "/log/*.log"
processors:
  - decode_json_fields:
        fields: ["message"]
        process_array: false
        max_depth: 1
        target: ""
        overwrite_keys: false
  - add_fields:
      target: ''
      fields:
        app_name: "{{ .Values.nodeSelector.internet_ip}}-frontend-v2-ux"
output.logstash:
  hosts: ["{{ .Values.logs.logstash.host }}:{{ .Values.logs.logstash.beatport }}"]
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
15天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
65 1
|
3月前
|
Java 应用服务中间件 nginx
微服务框架(二十九)Logstash Nginx 日志上报
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Logstash Nginx 日志上报 本系列文章中所使用的框架版本为Spring Boot 2.0.3...
|
3月前
|
Dubbo Java 应用服务中间件
微服务框架(三十)Logstash Kong 日志上报
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为Logstash Kong 日志上报 本系列文章中所使用的框架版本为Spring Boot 2.0.3-...
|
3月前
|
JSON Java 数据格式
微服务框架(十三)Spring Boot Logstash日志采集
  本文为Spring Boot中Log4j2对接Logstash,进行日志采集。Logstah只支持log4j,使用log4j2时需要通过TCP插件调用 此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。
|
7月前
|
存储 数据采集 安全
通过filebeat、logstash、rsyslog采集nginx日志的几种方式
由于nginx功能强大,性能突出,越来越多的web应用采用nginx作为http和反向代理的web服务器。而nginx的访问日志不管是做用户行为分析还是安全分析都是非常重要的数据源之一。如何有效便捷的采集nginx的日志进行有效的分析成为大家关注的问题。本文通过几个实例来介绍如何通过filebeat、logstash、rsyslog采集nginx的访问日志和错误日志。
255 0
|
6月前
|
存储 NoSQL Redis
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
123 0
|
6月前
|
NoSQL Redis 索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
|
6月前
|
Linux
百度搜索:蓝易云 ,Linux系统定时清空日志内容和删除日志文件教程。
通过以上步骤,您可以在Linux系统中设置cron作业来定期清空日志内容和删除日志文件。请确保在编辑cron作业之前,您具有足够的权限来访问和修改日志文件。
36 0
|
3月前
|
Linux
利用Logstash实现GrayLog日志转发到第三方日志平台
利用Logstash实现GrayLog日志转发到第三方日志平台
31 0
|
5月前
|
Unix Linux Shell
Linux 下使用crontab 定时打包日志并删除已被打包的日志
f=`ls /home/hls/apache-tomcat-7.0.61/logs -1 -c` #获取logs下文件列表( /home/hls/apache-tomcat-7.0.61/logs 是日志的所在的路径)
39 0