Hi all ...
as promised ... built a new image ... and ran prometheus as another user
...
Dockerfile:
```
FROM prom/prometheus
USER root
RUN addgroup -g 1000 prometheus
RUN adduser -D -H -u 1000 -G prometheus -s /bin/nologin prometheus
USER prometheus
```
Docker compose file:
```
version: '3.3'
services:
private:
image: 4s3ti/prometheus-test
ports:
- 9090:9090
networks:
- dockadmin_rp
- private
volumes:
- /srv/data/prometheus/config:/etc/prometheus
- /srv/data/prometheus/test-data:/prometheus
- /var/run/docker.sock:/var/run/docker.sock:ro
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints:
- node.labels.type == private
networks:
private:
dockadmin_rp:
external: true
```
and the issue still persists, after some googling ... Apparently for a
process to have access to the docker.sock withing the container, it needs
to run as root, or one should use something as docker-socket-proxy.
If Prometheus team don't want to change the default way Prometheus runs
inside a docker container, which i completely understand, a note about this
should be added on the https://prometheus.io/docs/guides/dockerswarm/ page
On Monday, November 16, 2020 at 2:12:48 AM UTC+1 Carlos Colaço wrote:
> @julien ... Here:
>
> https://github.com/prometheus/prometheus/issues/8185
>
> Let me know if you need more details
>
> On Monday, November 16, 2020 at 1:44:27 AM UTC+1 Julien Pivotto wrote:
>
>> On 15 Nov 16:30, Carlos Colaço wrote:
>> > Aight .. that fixed it for me too, was about to test it when i decided
>> to
>> > check in here first, so you were just faster :p
>> >
>> >
>> > If prometheus should or not run as root ... I am not sure either ... I
>> > think its a common practice to run stuff as root inside the containers
>> ...
>> > Cadvisor seems to be running as root ... but i am not entirely sure on
>> > this one, so take my words with a grain of salt.
>> >
>> > It should be however ... at least documented with a warning ... its
>> quite
>> > late here already but i can do it early in the morning tomorrow ... if
>> any
>> > of you has the chance in the meantime to try and verify this ... there
>> are
>> > some more tests that come to my mind ...
>> >
>> > Could it be that docker is not letting "nobody" read the sock? Maybe
>> Trying
>> > running Prometheus as another user instead of nobody or root?
>> >
>> > If nobody tries this i can try it tomorrow and maybe open PR to
>> > documentation with info about this.
>>
>> I guess it all depends on your distribution and how you run docker. Can
>> you explain more your setup?
>>
>>
>> >
>> > Kind regards.
>> >
>> > On Sunday, November 15, 2020 at 11:53:50 PM UTC+1
>> > [email protected] wrote:
>> >
>> > > This worked for me , although i'm not sure we should be running
>> prometheus
>> > > as root
>> > >
>> > > version: '3.7'
>> > >
>> > > services:
>> > > prometheus:
>> > > image: prom/prometheus:v2.21.0
>> > >
>> > > command:
>> > > - '--config.file=/etc/prometheus/prometheus.yml'
>> > > - '--storage.tsdb.path=/prometheus'
>> > > - '--storage.tsdb.retention=${PROMETHEUS_RETENTION:-48h}'
>> > > user: root
>> > > volumes:
>> > > - /var/run/docker.sock:/var/run/docker.sock:ro
>> > > - ./prometheus.yml:/etc/prometheus/prometheus.yml
>> > > ports:
>> > > - target: 9090
>> > > published: 9090
>> > > mode: ingress
>> > > deploy:
>> > > labels:
>> > > - prometheus-job=prometheus
>> > >
>> > > mode: replicated
>> > > replicas: 1
>> > > resources:
>> > > limits:
>> > > memory: 2048M
>> > > reservations:
>> > > memory: 512M
>> > >
>> > > On Sun, Nov 15, 2020 at 11:52 PM Kimo <[email protected]> wrote:
>> > >
>> > >> Hello,
>> > >> I've been facing the exact same issue today and its driving me
>> equally
>> > >> crazy. I tried running prometheus as root but still:
>> > >>
>> > >> level=error ts=2020-11-15T21:45:35.983Z caller=refresh.go:98
>> > >> component="discovery manager scrape" discovery=dockerswarm
>> msg="Unable to
>> > >> refresh target groups" err="error while listing swarm *services*:
>> Cannot
>> > >> connect to the Docker daemon at unix:///var/run/docker.sock. Is the
>> docker
>> > >> daemon running?"
>> > >> level=error ts=2020-11-15T21:45:35.984Z caller=refresh.go:98
>> > >> component="discovery manager scrape" discovery=dockerswarm
>> msg="Unable to
>> > >> refresh target groups" err="error while listing swarm *nodes*:
>> Cannot
>> > >> connect to the Docker daemon at unix:///var/run/docker.sock. Is the
>> docker
>> > >> daemon running?"
>> > >>
>> > >> I think I've exhausted all the options I could try by myself and
>> would
>> > >> gladly appreciate any help at this point.
>> > >> Le dimanche 15 novembre 2020 à 21:54:26 UTC+1, Julien Pivotto a
>> écrit :
>> > >>
>> > >>> Can you run prometheus as nobody:docker?
>> > >>> On 15 Nov 12:23, Carlos Colaço wrote:
>> > >>> > sorry .. also tried changing the permissions which changed
>> nothing...
>> > >>> >
>> > >>> > ```
>> > >>> > # chmod +r /var/run/docker.sock
>> > >>> > # ls -la /var/run/docker.sock
>> > >>> > srw-rw-r--. 1 root docker 0 Nov 15 20:12 /var/run/docker.sock
>> > >>> > # docker service update --force monitor_private
>> > >>> > ```
>> > >>> >
>> > >>> > On Sunday, November 15, 2020 at 9:20:07 PM UTC+1 Carlos Colaço
>> wrote:
>> > >>> >
>> > >>> > > Hi all .. Having the same issue...
>> > >>> > >
>> > >>> > > https://github.com/prometheus/prometheus/issues/8185
>> > >>> > >
>> > >>> > >
>> > >>> > > Also don't think changing permissions on docker sock is a good
>> > >>> option ..
>> > >>> > > that way you are giving permissions to anyone to access it and
>> that
>> > >>> is
>> > >>> > > something not desirable ...
>> > >>> > >
>> > >>> > > What i also tried to do instead ... since prometheus runs as
>> Nobody
>> > >>> ( uid:
>> > >>> > > 65534 ) ... i added it to the Docker group which changed
>> nothing =/
>> > >>> > >
>> > >>> > > Any hints or solutions for this? driving me crazy trying
>> different
>> > >>> > > approaches and solutions.. nothing seems to work ...
>> > >>> > >
>> > >>> > > On Tuesday, August 11, 2020 at 7:03:12 AM UTC+2
>> [email protected]
>> > >>> wrote:
>> > >>> > >
>> > >>> > >> Thanks Julien and Tom,
>> > >>> > >>
>> > >>> > >> I got the problem which i was facing, actually when we change
>> the
>> > >>> > >> permissions to read-write for docker.sock, permissions are
>> only
>> > >>> changed
>> > >>> > >> till the docker daemon or docker service is restarted. Once
>> the
>> > >>> > >> docker/daemon is restarted then the permissions for docker
>> sock
>> > >>> changes
>> > >>> > >> back to the original one.
>> > >>> > >>
>> > >>> > >> Is there any way using which we can make permanent changes for
>> the
>> > >>> > >> permission of docker.sock or do we need to file a issue for
>> the
>> > >>> same, as
>> > >>> > >> docker/daemon might be restarted for various reasons
>> > >>> > >>
>> > >>> > >>
>> > >>> > >> ?
>> > >>> > >>
>> > >>> > >> On Monday, 10 August 2020 12:40:17 UTC+5:30, Umang Goel wrote:
>> > >>> > >>>
>> > >>> > >>> Hello Julien,
>> > >>> > >>>
>> > >>> > >>> group_add is not allowed in docker swarm. Do you have any
>> other
>> > >>> > >>> workaround for this?
>> > >>> > >>>
>> > >>> > >>> --
>> > >>> > >>> Umang
>> > >>> > >>>
>> > >>> > >>> On Monday, 10 August 2020 12:20:51 UTC+5:30, Julien Pivotto
>> wrote:
>> > >>> > >>>>
>> > >>> > >>>>
>> > >>> > >>>> Can you use:
>> > >>> > >>>>
>> > >>> > >>>> --group-add docker?
>> > >>> > >>>>
>> > >>> > >>>> or in compose v2 file:
>> > >>> > >>>>
>> > >>> > >>>> version: "2.4"
>> > >>> > >>>> services:
>> > >>> > >>>> prometheus:
>> > >>> > >>>> group_add:
>> > >>> > >>>> - docker
>> > >>> > >>>>
>> > >>> > >>>>
>> > >>> > >>>> On 09 Aug 22:48, Umang Goel wrote:
>> > >>> > >>>> > ls -l /var/run/docker.sock
>> > >>> > >>>> >
>> > >>> > >>>> > - srwxrw-rw- 1 root docker 0 Aug 7 11:31
>> /var/run/docker.sock
>> > >>> > >>>> after
>> > >>> > >>>> > making changes as per Tom,
>> > >>> > >>>> >
>> > >>> > >>>> > On Sunday, 9 August 2020 02:16:28 UTC+5:30, Julien Pivotto
>> > >>> wrote:
>> > >>> > >>>> > >
>> > >>> > >>>> > > On 07 Aug 04:36, Umang Goel wrote:
>> > >>> > >>>> > > > Hello Tom,
>> > >>> > >>>> > > >
>> > >>> > >>>> > > > Even this is not working, I am still facing the same
>> issue.
>> > >>> Can
>> > >>> > >>>> you help
>> > >>> > >>>> > > me
>> > >>> > >>>> > > > how did you implement it.
>> > >>> > >>>> > >
>> > >>> > >>>> > >
>> > >>> > >>>> > > What are you current permissions on the
>> /var/run/docker.sock
>> > >>> ?
>> > >>> > >>>> > >
>> > >>> > >>>> > > ls -l /var/run/docker.sock
>> > >>> > >>>> > >
>> > >>> > >>>> > > >
>> > >>> > >>>> > > > On Friday, 7 August 2020 16:47:23 UTC+5:30, Tom Kun
>> wrote:
>> > >>> > >>>> > > > >
>> > >>> > >>>> > > > > Hello Umang,
>> > >>> > >>>> > > > >
>> > >>> > >>>> > > > > What are you current permissions on the
>> > >>> /var/run/docker.sock ?
>> > >>> > >>>> > > > >
>> > >>> > >>>> > > > > I faced the same issue, and to start and no rebuild
>> the
>> > >>> > >>>> Prometheus
>> > >>> > >>>> > > image
>> > >>> > >>>> > > > > with the appropriate user.
>> > >>> > >>>> > > > > I put the rights to read and write the
>> docker.socket.
>> > >>> > >>>> > > > >
>> > >>> > >>>> > > > > sudo chmod 766 /var/run/docker.sock
>> > >>> > >>>> > > > >
>> > >>> > >>>> > > > > I hope this gonna help you.
>> > >>> > >>>> > > > >
>> > >>> > >>>> > > > >
>> > >>> > >>>> > > > > On Friday, 7 August 2020 11:59:32 UTC+2, Umang Goel
>> > >>> wrote:
>> > >>> > >>>> > > > >>
>> > >>> > >>>> > > > >> Hello Community,
>> > >>> > >>>> > > > >>
>> > >>> > >>>> > > > >> I tired using Docker Swarm Service Discovery in
>> > >>> prometheus,
>> > >>> > >>>> but
>> > >>> > >>>> > > facing
>> > >>> > >>>> > > > >> problems using it. I followed the docker swarm
>> support
>> > >>> > >>>> documentation
>> > >>> > >>>> > > > >> <https://prometheus.io/docs/guides/dockerswarm/>.
>> > >>> 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:
>> > >>> > >>>> > > > >> [email protected]
>> > >>> > >>>> <javascript:> |
>> > >>> > >>>> > > 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
>> > >>> > >>>> > > > >>
>> > >>> > >>>> > > > >
>> > >>> > >>>> > > >
>> > >>> > >>>> > > > --
>> > >>> > >>>> > > > You received this message because you are subscribed
>> to the
>> > >>> > >>>> Google
>> > >>> > >>>> > > Groups "Prometheus Users" group.
>> > >>> > >>>> > > > To unsubscribe from this group and stop receiving
>> emails
>> > >>> from it,
>> > >>> > >>>> send
>> > >>> > >>>> > > an email to [email protected] <javascript:>.
>> > >>> > >>>> > > > To view this discussion on the web visit
>> > >>> > >>>> > >
>> > >>> > >>>>
>> > >>>
>> https://groups.google.com/d/msgid/prometheus-users/e5e55a73-7cc1-4c0c-99e3-0a09270df62bo%40googlegroups.com.
>>
>>
>> > >>>
>> > >>> > >>>>
>> > >>> > >>>> > >
>> > >>> > >>>> > >
>> > >>> > >>>> > >
>> > >>> > >>>> > > --
>> > >>> > >>>> > > Julien Pivotto
>> > >>> > >>>> > > @roidelapluie
>> > >>> > >>>> > >
>> > >>> > >>>> >
>> > >>> > >>>> > --
>> > >>> > >>>> > You received this message because you are subscribed to
>> the
>> > >>> Google
>> > >>> > >>>> Groups "Prometheus Users" group.
>> > >>> > >>>> > To unsubscribe from this group and stop receiving emails
>> from
>> > >>> it,
>> > >>> > >>>> send an email to [email protected].
>> > >>> > >>>> > To view this discussion on the web visit
>> > >>> > >>>>
>> > >>>
>> https://groups.google.com/d/msgid/prometheus-users/e5614621-f57a-466e-befd-269bf77d69c8o%40googlegroups.com.
>>
>>
>> > >>>
>> > >>> > >>>>
>> > >>> > >>>>
>> > >>> > >>>>
>> > >>> > >>>> --
>> > >>> > >>>> Julien Pivotto
>> > >>> > >>>> @roidelapluie
>> > >>> > >>>>
>> > >>> > >>>
>> > >>> >
>> > >>> > --
>> > >>> > You received this message because you are subscribed to the
>> Google
>> > >>> Groups "Prometheus Users" group.
>> > >>> > To unsubscribe from this group and stop receiving emails from it,
>> send
>> > >>> an email to [email protected].
>> > >>> > To view this discussion on the web visit
>> > >>>
>> https://groups.google.com/d/msgid/prometheus-users/e058c64f-3db4-45c2-9550-c8db557d2a2cn%40googlegroups.com.
>>
>>
>> > >>>
>> > >>>
>> > >>>
>> > >>> --
>> > >>> Julien Pivotto
>> > >>> @roidelapluie
>> > >>>
>> > >> --
>> > >> You received this message because you are subscribed to the Google
>> Groups
>> > >> "Prometheus Users" group.
>> > >> To unsubscribe from this group and stop receiving emails from it,
>> send an
>> > >> email to [email protected].
>> > >>
>> > > To view this discussion on the web visit
>> > >>
>> https://groups.google.com/d/msgid/prometheus-users/50d9a66e-5319-41a6-83ff-1836d86272d3n%40googlegroups.com
>>
>> > >> <
>> https://groups.google.com/d/msgid/prometheus-users/50d9a66e-5319-41a6-83ff-1836d86272d3n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>
>>
>> > >> .
>> > >>
>> > >
>> > >
>> > > --
>> > > Alexandru Duzsardi,
>> > > *DevOps Engineer*
>> > > *Skype:* alexinno83
>> > > *GPG/PGP Key*: https://keybase.io/aduzsardi/pgp_keys.asc
>> > > *GitLab:* https://gitlab.com/aduzsardi
>> > > *GitHub:* https://github.com/aduzsardi
>> > > *LinkedIn:* https://www.linkedin.com/in/aduzsardi
>> > > *E-mail:* [email protected]
>> > >
>> > > InFinIT Partners,
>> > > *Address:* Str. Macinului Nr. 17, Cluj-Napoca, Romania
>> > > *Web:* www.infinitpartners.com
>> > >
>> > >
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups "Prometheus Users" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to [email protected].
>> > To view this discussion on the web visit
>> https://groups.google.com/d/msgid/prometheus-users/f1962c97-b545-47e8-9877-3482bdfaadean%40googlegroups.com.
>>
>>
>>
>>
>> --
>> Julien Pivotto
>> @roidelapluie
>>
>
--
You received this message because you are subscribed to the Google Groups
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/prometheus-users/135b6338-030d-4f76-b75d-3038a7c98ec7n%40googlegroups.com.