From 47072710b2982ae59260a1e5aba3e000d17570d0 Mon Sep 17 00:00:00 2001 From: Leonard Jonathan Oh Date: Tue, 14 Mar 2023 13:21:48 +0000 Subject: [PATCH] Change `php-fpm` to listen on `:9000` to expose prometheus metrics via `php-fpm_exporter` --- .docker/release/Dockerfile | 1 + .docker/release/files/etc/nginx/nginx.conf | 2 +- .../files/usr/local/etc/php-fpm.d/php-fpm.conf | 3 ++- examples/docker-compose.mysql.yml | 12 +++++++++++- examples/docker-compose.postgres.yml | 12 +++++++++++- examples/docker-compose.simple.yml | 12 +++++++++++- examples/docker-compose.traefik.yml | 12 +++++++++++- 7 files changed, 48 insertions(+), 6 deletions(-) diff --git a/.docker/release/Dockerfile b/.docker/release/Dockerfile index 31b431e34..a8e19a801 100644 --- a/.docker/release/Dockerfile +++ b/.docker/release/Dockerfile @@ -107,4 +107,5 @@ RUN set -eux; \ WORKDIR /snappymail VOLUME /var/lib/snappymail EXPOSE 8888 +EXPOSE 9000 CMD ["/entrypoint.sh"] diff --git a/.docker/release/files/etc/nginx/nginx.conf b/.docker/release/files/etc/nginx/nginx.conf index a024932e8..ed87cb201 100644 --- a/.docker/release/files/etc/nginx/nginx.conf +++ b/.docker/release/files/etc/nginx/nginx.conf @@ -95,7 +95,7 @@ http { fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTP_PROXY ""; fastcgi_index index.php; - fastcgi_pass unix:/tmp/php-fpm.sock; + fastcgi_pass 127.0.0.1:9000; fastcgi_intercept_errors on; fastcgi_request_buffering off; fastcgi_param REMOTE_ADDR $http_x_real_ip; diff --git a/.docker/release/files/usr/local/etc/php-fpm.d/php-fpm.conf b/.docker/release/files/usr/local/etc/php-fpm.d/php-fpm.conf index e7870fdf0..fbee3d4e0 100644 --- a/.docker/release/files/usr/local/etc/php-fpm.d/php-fpm.conf +++ b/.docker/release/files/usr/local/etc/php-fpm.d/php-fpm.conf @@ -4,7 +4,7 @@ error_log = /dev/stderr log_buffering = no [default] -listen = /tmp/php-fpm.sock +listen = 9000 user = www-data listen.owner = www-data listen.group = www-data @@ -15,6 +15,7 @@ pm.max_requests = 500 catch_workers_output = yes decorate_workers_output = no chdir = / +pm.status_path = /status php_admin_value[log_errors] = On php_admin_value[expose_php] = Off php_admin_value[display_errors] = Off diff --git a/examples/docker-compose.mysql.yml b/examples/docker-compose.mysql.yml index 92ffed1e0..791fad283 100644 --- a/examples/docker-compose.mysql.yml +++ b/examples/docker-compose.mysql.yml @@ -1,7 +1,7 @@ version: '2' services: snappymail: - image: leojonathanoh/snappymail:merge + image: leojonathanoh/snappymail:pr-1 ports: - 8888:8888 volumes: @@ -12,6 +12,16 @@ services: - redis-network restart: unless-stopped + # This provides prometheus metrics for snappymail's php-fpm + php-fpm-exporter: + image: hipages/php-fpm_exporter:2.2.0 + ports: + - 9253:9253 + environment: + - PHP_FPM_SCRAPE_URI=tcp://snappymail:9000/status + networks: + - default + mysql: image: mariadb:10 environment: diff --git a/examples/docker-compose.postgres.yml b/examples/docker-compose.postgres.yml index 37c2e37e8..9f521b21d 100644 --- a/examples/docker-compose.postgres.yml +++ b/examples/docker-compose.postgres.yml @@ -1,7 +1,7 @@ version: '2' services: snappymail: - image: leojonathanoh/snappymail:merge + image: leojonathanoh/snappymail:pr-1 ports: - 8888:8888 volumes: @@ -12,6 +12,16 @@ services: - redis-network restart: unless-stopped + # This provides prometheus metrics for snappymail's php-fpm + php-fpm-exporter: + image: hipages/php-fpm_exporter:2.2.0 + ports: + - 9253:9253 + environment: + - PHP_FPM_SCRAPE_URI=tcp://snappymail:9000/status + networks: + - default + db: image: postgres:15-alpine environment: diff --git a/examples/docker-compose.simple.yml b/examples/docker-compose.simple.yml index e80f79f25..9625ac24f 100644 --- a/examples/docker-compose.simple.yml +++ b/examples/docker-compose.simple.yml @@ -1,7 +1,7 @@ version: '2' services: snappymail: - image: leojonathanoh/snappymail:merge + image: leojonathanoh/snappymail:pr-1 ports: - 8888:8888 volumes: @@ -10,6 +10,16 @@ services: - default restart: unless-stopped + # This provides prometheus metrics for snappymail's php-fpm + php-fpm-exporter: + image: hipages/php-fpm_exporter:2.2.0 + ports: + - 9253:9253 + environment: + - PHP_FPM_SCRAPE_URI=tcp://snappymail:9000/status + networks: + - default + networks: default: diff --git a/examples/docker-compose.traefik.yml b/examples/docker-compose.traefik.yml index 111597a1d..7bed2918b 100644 --- a/examples/docker-compose.traefik.yml +++ b/examples/docker-compose.traefik.yml @@ -38,7 +38,7 @@ services: # snappymail will be available at: https://snappymail.example.com snappymail: - image: leojonathanoh/snappymail:merge + image: leojonathanoh/snappymail:pr-1 labels: - "traefik.enable=true" - "traefik.docker.network=traefik-network" @@ -62,6 +62,16 @@ services: - traefik-network restart: unless-stopped + # This provides prometheus metrics for snappymail's php-fpm + php-fpm-exporter: + image: hipages/php-fpm_exporter:2.2.0 + ports: + - 9253:9253 + environment: + - PHP_FPM_SCRAPE_URI=tcp://snappymail:9000/status + networks: + - default + networks: default: traefik-network: