😇
Docker上で起動しているWebアプリのSupervisorをDatadogで監視する
結論
/var/run/supervisor.sock
をVolumeマウントして、
WebアプリコンテナとDatadogAgentコンテナ間で/var/run/supervisor.sock
を使用できるようにする。
経緯
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
[unix_http_server]
file=/var/run/supervisor.sock
chmod=777
chown=nobody:nogroup
こちらの設定だけで、DatadogでSupervisorが監視できるとのこと。
だが、Connection refuseされまくる。。。
そもそもDatadogAgentで、unix:///var/run/supervisor.sock
に接続できないっぽい。。。
結論にも書いてある通りですが、
/var/run/supervisor.sock
を、DatadogAgentコンテナにだけ記述しても、そんなものはDatadogAgentコンテナには存在しない。ここに気づくまでだいぶ時間飛ばしました。
対応策
/var/run/supervisor.sock
をVolumeマウントして、
WebアプリコンテナとDatadogAgentコンテナ間で/var/run/supervisor.sock
を使用できるようにする。
具体例
supervisorsocketという名称のVolumeマウント作成し、
WebアプリコンテナとDatadogAgentコンテナ間で/var/run/supervisor.sock
を使用できるようにする。
version: '3'
services:
# Webアプリコンテナ
app:
build:
.
.
.
volumes:
- supervisorsocket:/var/run
# DatadogAgentコンテナ
dd-agent:
image: datadog/agent:7
.
.
.
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- supervisorsocket:/var/run
.
.
.
#Volumes
volumes:
supervisorsocket:
driver: local
Discussion