summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHéctor Molinero Fernández <hector@molinero.dev>2023-04-18 17:39:22 +0200
committerGitHub <noreply@github.com>2023-04-18 08:39:22 -0700
commit2e168e9a74eceeb058ce77d9512cee37579a7c3f (patch)
tree20e549a649deddeac9788f89f8bb3bd82eafb2c6
parent9dea17ac2dcb1373483918bf64e5eecb3c4e2139 (diff)
Document CetusGuard as a Docker socket proxy solution (#14806)
* Document CetusGuard as a Docker socket proxy solution * Re-add Docker Socket Proxy to docs
-rw-r--r--collectors/cgroups.plugin/README.md5
-rw-r--r--packaging/docker/README.md41
2 files changed, 37 insertions, 9 deletions
diff --git a/collectors/cgroups.plugin/README.md b/collectors/cgroups.plugin/README.md
index 9424ba736a..2e4fff2303 100644
--- a/collectors/cgroups.plugin/README.md
+++ b/collectors/cgroups.plugin/README.md
@@ -120,8 +120,9 @@ container names. To do this, ensure `podman system service` is running and Netda
to `/run/podman/podman.sock` (the default permissions as specified by upstream are `0600`, with owner `root`, so you
will have to adjust the configuration).
-[docker-socket-proxy](https://github.com/Tecnativa/docker-socket-proxy) can also be used to give Netdata restricted
-access to the socket. Note that `PODMAN_HOST` in Netdata's environment should be set to the proxy's URL in this case.
+[Docker Socket Proxy (HAProxy)](https://github.com/Tecnativa/docker-socket-proxy) or [CetusGuard](https://github.com/hectorm/cetusguard)
+can also be used to give Netdata restricted access to the socket. Note that `PODMAN_HOST` in Netdata's environment should
+be set to the proxy's URL in this case.
### Charts with zero metrics
diff --git a/packaging/docker/README.md b/packaging/docker/README.md
index f5f23eaa6d..4b3655d83b 100644
--- a/packaging/docker/README.md
+++ b/packaging/docker/README.md
@@ -331,17 +331,17 @@ your machine from within the container. Please read the following carefully.
#### Docker socket proxy (safest option)
Deploy a Docker socket proxy that accepts and filters out requests using something like
-[HAProxy](https://github.com/netdata/netdata/blob/master/docs/Running-behind-haproxy.md) so that it restricts connections to read-only access to the CONTAINERS
+[HAProxy](https://github.com/netdata/netdata/blob/master/docs/Running-behind-haproxy.md) or
+[CetusGuard](https://github.com/hectorm/cetusguard) so that it restricts connections to read-only access to the `/containers`
endpoint.
The reason it's safer to expose the socket to the proxy is because Netdata has a TCP port exposed outside the Docker
network. Access to the proxy container is limited to only within the network.
-Below is [an example repository (and image)](https://github.com/Tecnativa/docker-socket-proxy) that provides a proxy to
-the socket.
+Here are two examples, the first using [a Docker image based on HAProxy](https://github.com/Tecnativa/docker-socket-proxy)
+and the second using [CetusGuard](https://github.com/hectorm/cetusguard).
-You run the Docker Socket Proxy in its own Docker Compose file and leave it on a private network that you can add to
-other services that require access.
+##### Docker Socket Proxy (HAProxy)
```yaml
version: '3'
@@ -356,13 +356,40 @@ services:
proxy:
image: tecnativa/docker-socket-proxy
volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro
+ - /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- CONTAINERS=1
-
```
**Note:** Replace `2375` with the port of your proxy.
+##### CetusGuard
+
+```yaml
+version: '3'
+services:
+ netdata:
+ image: netdata/netdata
+ # ... rest of your config ...
+ ports:
+ - 19999:19999
+ environment:
+ - DOCKER_HOST=cetusguard:2375
+ cetusguard:
+ image: hectorm/cetusguard:v1
+ read_only: true
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock:ro
+ environment:
+ CETUSGUARD_BACKEND_ADDR: unix:///var/run/docker.sock
+ CETUSGUARD_FRONTEND_ADDR: tcp://:2375
+ CETUSGUARD_RULES: |
+ ! Inspect a container
+ GET %API_PREFIX_CONTAINERS%/%CONTAINER_ID_OR_NAME%/json
+```
+
+You can run the socket proxy in its own Docker Compose file and leave it on a private network that you can add to
+other services that require access.
+
#### Giving group access to the Docker socket (less safe)
> :warning: Caution