elastic / elastic/beats

docker autodiscover hints & networks

Open
#8,498 9 comments 3 reactions 1 assignee Claimed by @devamanv View on GitHub
containers enhancement good first issue Team:Cloudnative-Monitoring Team:Integrations
Dominant language
Go
Stars
12.7k
Forks
5k
Avg merge
2d 15m
Merged PRs (30d)
385

Description

Hi,

I'm configuring my servers monitoring with metricbeat, and I have an issue: I'm using docker autodiscover hints to find containers to monitor, eg:

```yaml

traefik:
image: traefik:1.6.6
# some config unrelated to this issue skipped
deploy:
mode: global
labels:
co.elastic.metrics/module: traefik
co.elastic.metrics/metricsets: health
co.elastic.metrics/hosts: '$${data.host}:8080'
co.elastic.metrics/period: 10s
networks:
- web
- default
- metrics

networks:
default:
web:
name: web
driver: overlay
attachable: true
metrics:
name: metrics
external: true
```

here metrics is the network metricbeat is attached to, the traefik containers has multiple IPs for the multiple networks it's attached to, so `${data.host}` get one of the IP (first? random?) but it's not the correct one. that means metricbeat is not able to query the traefik API, and I have this message instead of the metrics in the metricbeat index:

> "failed to sample health: error making http request: Get http://10.0.24.31:8080/health: dial tcp 10.0.24.31:8080: connect: network is unreachable"

10.0.24 is the IP of traefik but for another container

traefik itself deals with this problem when using autodiscover by adding a label to specify wich network to use (in the exemple I have above, I use the "web" network to let traefik communicate with other containers so I add the label `traefik.docker.network: web`)

I think a similar label should be added to metricbeat, here I would like to add `co.elastic.metrics/network: metrics`

an alternative would be to add all IPs inside the autodiscover event data, so that I could use this label instead for the hosts: `co.elastic.metrics/hosts: '${data.networks.metrics.ip}:8080'`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.