cuigh / prometheus

The Prometheus monitoring system and time series database.
https://prometheus.io/
Apache License 2.0
3 stars 2 forks source link

Upstream Docker Swarm Support #8

Open roidelapluie opened 4 years ago

roidelapluie commented 4 years ago

Dear Community,

I am working on integrating Docker Swarm discovery upstream in Prometheus.

The upstream work is at https://github.com/prometheus/prometheus/pull/7420

I did not start that work based on this fork ; as the SD mechanisms have changed since this fork was written. However, I think that the implementation I am proposing is more complete and all the usecases proposed by this fork should be available.

Your feedback is valuable to us.

umang5195 commented 4 years ago

@roidelapluie I tired using Docker Swarm Service Discovery in prometheus, but facing problems using it. I followed the docker swarm support documentation. Created a daemon.json file and mounted /var/run/docker.sock in prometheus container. Container is giving permission denied error as prometheus is running as nobody and doesn't have access to mounted /var/run/docker.sock. Below is my prometheus.yml. Prometheus Version : v2.20.1

 prometheus:
    image: prom/prometheus
    networks:
      - monitor
    ports:
      - "9090:9090"
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--storage.tsdb.retention=${PROMETHEUS_RETENTION:-24h}'
    volumes:
      - prometheus:/prometheus
      - /home/efs/devops/dsm:/etc/prometheus:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    deploy:
      mode: replicated
      replicas: 1
      resources:
        limits:
          memory: 1024M
        reservations:
          memory: 128M

Prometheus.yml

scrape_configs:
  - job_name: 'docker'
    dockerswarm_sd_configs:
    - host: unix:///var/run/docker.sock
      role: nodes

Error: monitor_prometheus.1.uwda893b1nws@monitoring.dev.ai | level=error ts=2020-08-06T07:21:19.106Z caller=refresh.go:98 component="discovery manager scrape" discovery=dockerswarm msg="Unable to refresh target groups" err="error while listing swarm nodes: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get \"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/nodes\": dial unix /var/run/docker.sock: connect: permission denied"