ELK日志收集之filebeat output到elasticsearch 自动创建索引模版

一、简介

在使用Filebeat采集日志并输出到Elasticsearch时,自动创建索引模板主要包括以下重要配置:

关闭ILM(Index Lifecycle Management):新版本的Filebeat默认开启了ILM,这可能导致索引的命名规则被ILM策略控制。为了自定义索引模板,需要关闭ILM。

setup.ilm.enabled: false

定义索引模板:通过setup.template相关的配置,可以自定义索引模板的名称、模式和设置。

setup.template.name: "my_custom_template"
setup.template.pattern: "my_custom_index-*"

设置索引模板的详细配置:在template部分,可以定义索引的详细设置,如分片数量、副本数量、编码方式等。

template:
  settings:
    index:
      number_of_shards: 1
      number_of_replicas: 0
      codec: lz4

配置输出到Elasticsearch:在output.elasticsearch部分,指定Elasticsearch的主机地址和索引名称。

output.elasticsearch:
  hosts: ["localhost:9200"]
  index: "my_custom_index-%{+yyyy.MM.dd}"

二、写入到ES集群

1.单个数据源写入到ES集群同一个索引

cat >01-docker-to-es.yaml<<'EOF'
filebeat.inputs:
#docker日志文件采集
- type: container
  paths: 
    - '/var/lib/docker/containers/*/*.log'
  tags: ["docker-log-json"]
#将所有JSON字段放在根级别
  json.keys_under_root: true
#将错误消息记录到error字段中
  json.add_error_key: true
#如果有重复字段,则覆盖它们
  json.overwrite_keys: true
#指定输出端为ES集群
output.elasticsearch:
  hosts: ["http://192.168.77.176:9200","http://192.168.77.177:9200","http://192.168.77.178:9200"] 
#指定索引
  index: "docker-log-json-%{+yyyy.MM.dd}"
#禁用索引声明管理周期ILM
setup.ilm.enabled: false
#指定索引模板的名称
setup.template.name: "docker-log-json"
#指定索引模板的匹配模式
setup.template.pattern: "docker-log-json-*"
#覆盖原有的索引模板
setup.template.overwrite: true
#索引模板详细配置
setup.template.settings:
  #指定分片数量为5
  index.number_of_shards: 5
  #指定副本数量为2
  index.number_of_replicas: 2
EOF

ELK日志收集之filebeat  output到elasticsearch 自动创建索引模版_ES

2.多个数据源根据标签tag写入到ES集群不同索引中

cat >02-system-docker-log-to-es.yaml<<'EOF'
filebeat.inputs:
- type: filestream
  paths:
    - /var/log/messages*
    - /var/log/*/*.log
  tags: ["system"]

- type: container
  paths: 
    - '/var/lib/docker/containers/*/*.log'
  json.keys_under_root: true
  json.add_error_key: true
  json.message_key: log
  tags: ["docker"]

output.elasticsearch:
  hosts: ["http://192.168.77.176:9200","http://192.168.77.177:9200","http://192.168.77.178:9200"]
  indices:
  - index: "alibaby-app-log-system-%{+yyyy.MM.dd}"
    when.contains:
      tags: "system"
  - index: "alibaby-app-log-docker-%{+yyyy.MM.dd}"
    when.contains:
      tags: "docker"

setup.ilm.enabled: false
setup.template.name: "alibaby-app-log"
setup.template.pattern: "alibaby-app-log-*"
setup.template.overwrite: true
setup.template.settings:
  index.number_of_shards: 5
  index.number_of_replicas: 2
EOF

ELK日志收集之filebeat  output到elasticsearch 自动创建索引模版_filebeat_02

三、创建索引模式 数据查看

ELK日志收集之filebeat  output到elasticsearch 自动创建索引模版_ES_03

ELK日志收集之filebeat  output到elasticsearch 自动创建索引模版_索引_04

上一篇:多模态大语言模型(MLLM)-Blip3/xGen-MM-前言


下一篇:java 获取最高20%数据