我正在使用 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 方面,或者介于两者之间。但底线 - 我如何让他们在日子改变时将索引滚动到新索引?