0

我正在使用 metricbeat (7.3) docker 容器以及其他几个 docker 容器,并将结果发送到 elasticsearch (7.3) 实例。这行得通,当一切都开始运转时,我在 elasticsearch 中获得了一个名为metricbeat-7.3.1-2019.09.06-000001

最初的问题是我有一个 Graphana 仪表板设置来查找具有今天日期的索引,因此它似乎完全忽略了几天前创建的索引。我可以尝试找出那些 Grafana 查询有什么问题,但更一般地说,我需要这些索引名称在某个时候滚动 - 那里的索引已经超过 1.3GB,在某些时候这对于系统。

我最初的 metricbeat.yml 配置:

- module: docker
  metricsets:
    - "container"
    - "cpu"
    - "diskio"
    - "memory"
    - "network"
  hosts: ["unix:///var/run/docker.sock"]
  period: 10s
  enabled: true
output.elasticsearch:
  hosts: ["${ELASTICSEARCH_URL}"]

搜索了一下,似乎弹性搜索输出上的索引字段应该配置索引名称,所以我尝试了以下内容:

- module: docker
  metricsets:
    - "container"
    - "cpu"
    - "diskio"
    - "memory"
    - "network"
  hosts: ["unix:///var/run/docker.sock"]
  period: 10s
  enabled: true
output.elasticsearch:
  hosts: ["${ELASTICSEARCH_URL}"]
  index: "metricbeat-%{[beat.version]}-instance1-%{+yyyy.MM.dd}"

这会引发关于需要 setup.template 设置的错误,所以我决定这样做:

- module: docker
  metricsets:
    - "container"
    - "cpu"
    - "diskio"
    - "memory"
    - "network"
  hosts: ["unix:///var/run/docker.sock"]
  period: 10s
  enabled: true
output.elasticsearch:
  hosts: ["${ELASTICSEARCH_URL}"]
  index: "metricbeat-%{[beat.version]}-instance1-%{+yyyy.MM.dd}"
setup.template:
  overwrite: true
  name: "metricbeat"
  pattern: "metricbeat-*"

我真的不知道 setup.template 部分做了什么,所以大部分是谷歌搜索的猜测。

我不确定问题是在 metricbeat 方面,还是在 elasticsearch 方面,或者介于两者之间。但底线 - 我如何让他们在日子改变时将索引滚动到新索引?

4

1 回答 1

0

这是对我有用的设置/步骤:

metricbeat.yml文件:

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["<es-ip>:9200"]
  index: metricbeat-%{[beat.version]}
  index_pattern: -%{+yyyy.MM.dd}
  ilm.enabled: true

然后,转到 kibana 即:5601:

在此处输入图像描述

转到“堆栈监控”,选择“metricbeat-*”

开始做这种设置,后面的内容也是不言自明的:

在此处输入图像描述

于 2020-08-17T05:54:34.100 回答