ElasticSearch

简介

flusher_elasticsearch flusher插件可以实现将采集到的数据,经过处理后,发送到 ElasticSearch,需要 ElasticSearch 版本至少为 8

版本

Alpha

配置参数

参数类型是否必选说明

Type

String

插件类型,固定为flusher_elasticsearch

Addresses

String数组

ElasticSearch 地址

Convert

Struct

ilogtail数据转换协议配置

Convert.Protocol

String

ilogtail数据转换协议,elasticsearch flusher 可选值:custom_single,custom_single_flatten,otlp_log_v1。默认值:custom_single

Convert.Encoding

String

ilogtail flusher数据转换编码,可选值:jsonnoneprotobuf,默认值:json

Convert.TagFieldsRename

Map

对日志中tags中的json字段重命名

Convert.ProtocolFieldsRename

Map

ilogtail日志协议字段重命名,可当前可重命名的字段:contents,tagstime

Index

String

插入数据目标索引

Authentication

Struct

ElasticSearch 连接访问认证配置

Authentication.PlainText.Username

String

ElasticSearch 用户名

Authentication.PlainText.Password

String

ElasticSearch 密码

Authentication.TLS.Enabled

Boolean

是否启用 TLS 安全连接,

Authentication.TLS.CAFile

String

TLS CA 根证书文件路径

Authentication.TLS.CertFile

String

TLS 连接证书文件路径

Authentication.TLS.KeyFile

String

TLS 连接私钥文件路径

Authentication.TLS.MinVersion

String

TLS 支持协议最小版本,可选配置:1.0, 1.1, 1.2, 1.3,默认:1.2

Authentication.TLS.MaxVersion

String

TLS 支持协议最大版本,可选配置:1.0, 1.1, 1.2, 1.3,默认采用:crypto/tls支持的版本,当前1.3

HTTPConfig.MaxIdleConnsPerHost

Int

每个host的连接池最大空闲连接数

HTTPConfig.ResponseHeaderTimeout

String

读取头部的时间限制,可选配置NanosecondMicrosecondMillisecondSecondMinuteHour

样例

常规索引

采集/home/test-log/路径下的所有文件名匹配*.log规则的文件,并将采集结果发送到 ElasticSearch。

enable: true
inputs:
  - Type: input_file
    FilePaths: 
      - /home/test-log/*.log
flushers:
  - Type: flusher_elasticsearch
    Addresses: 
      - http://192.XX.XX.1:9092
      - http://192.XX.XX.2:9092
    Index: default
    Authentication:
      PlainText:
        Username: user
        Password: 123456
    HTTPConfig:
        MaxIdleConnsPerHost: 10
        ResponseHeaderTimeout: Second

动态索引

采集结果支持写入ElasticSearch动态索引,例如,数据写入到一个名字包含当前日期的索引,可以这样写(只提供flushers),更多关于动态索引格式化的信息请参考这里

flushers:
  - Type: flusher_elasticsearch
    Addresses:
      - http://192.XX.XX.1:9092
      - http://192.XX.XX.2:9092
    Index: log_%{+yyyyMMdd}
    Authentication:
      PlainText:
        Username: user
        Password: 123456

数据平铺写入

ilogtail 1.8.0新增数据平铺协议custom_single_flattencontentstagstime三个convert层的协议字段中数据做一级打平。 当前convert协议在单条数据处理仅支持json编码,因此custom_single_flatten需要配合json编码一起使用。

enable: true
inputs:
  - Type: input_file
    FilePaths: 
      - /home/test-log/*.log
flushers:
  - Type: flusher_elasticsearch
    Addresses:
      - http://192.XX.XX.1:9092
      - http://192.XX.XX.2:9092
    Convert:
      Protocol: custom_single_flatten
      Encoding: json
    Index: default

非平铺前写入ElasticSearch的数据格式

{
  "contents": {
    "class": "org.springframework.web.servlet.DispatcherServlet@initServletBean:547",
    "application": "springboot-docker",
    "level": "ERROR",
    "message": "Completed initialization in 9 ms",
    "thread": "http-nio-8080-exec-10",
    "@time": "2022-07-20 16:55:05.415"
  },
  "tags": {
    "k8s.namespace.name":"java_app",
    "host.ip": "192.168.6.128",
    "host.name": "master",
    "log.file.path": "/data/test.log"
  },
  "time": 1664435098
}

使用平铺协议后custom_single_flattenjson全部被一级平铺。

{
    "class": "org.springframework.web.servlet.DispatcherServlet@initServletBean:547",
    "application": "springboot-docker",
    "level": "ERROR",
    "message": "Completed initialization in 9 ms",
    "thread": "http-nio-8080-exec-10",
    "@time": "2022-07-20 16:55:05.415",
    "k8s.namespace.name":"java_app",
    "host.ip": "192.168.6.128",
    "host.name": "master",
    "log.file.path": "/data/test.log",
    "time": 1664435098
}

Last updated