ELKF日志学习(八)Filebeat写入Elasticsearch

前言

上节将日志存储为 json 格式了,并通过 FileBeat 解析了 json 格式。

那我们可以直接将 json 日志写入 Elasticsearch 中了。

代码仓库

talk-lucky/elkf-study

写入 Elasticsearch

官方文档:传送门

直接写入

为了方便,这里设置了 Elasticsearch 是免密的。

output.elasticsearch:
  hosts: ["elasticsearch:9200"]

默认的 indexfilebeat-* 格式的。

我们可以自定义 index

output.elasticsearch:
  hosts: ["elasticsearch:9200"]
  index: "diy_prefix-%{[agent.version]}-%{+yyyy.MM.dd}"

根据 input 指定不同的 index

如果我们想要根据不同的 input 来分别建立不同的 index,可以根据自定义标签来判断。

还记得之前定义的 fileds.source 么?

output.elasticsearch:
  hosts: ["elasticsearch:9200"]
  indices:
    - index: "nginx_access_log-%{+yyyy.MM.dd}"
      when:
        contains:
          fields.source: "nginx_access_log"
    - index: "nginx_error_log-%{+yyyy.MM.dd}"
      when:
        contains:
          fields.source: "nginx_error_log"

其它(来自官网)

账号密码鉴权

output.elasticsearch:
  hosts: ["elasticsearch:9200"]
  username: "YOUR_USERNAME"
  password: "YOUR_PASSWORD"

API key鉴权

output.elasticsearch:
  hosts: ["elasticsearch:9200"]
  api_key: "YOUR_API_KEY"

证书鉴权

output.elasticsearch:
  hosts: ["elasticsearch:9200"]
  ssl.certificate: "/etc/pki/client/cert.pem"
  ssl.key: "/etc/pki/client/cert.key"

最后

不建议 Filebeat 监控太多的文件,还是一个服务一个 FileBeat 最好。

FileBeat 是很轻量,如果做了太多的事情,它也是会拖后腿的。