Grafana Cloud 모니터링 설정 (Apache + PHP-FPM + Alloy)

발행: (2025년 12월 10일 오후 01:42 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Step 1: Install Grafana Alloy on EC2

  • Grafana Cloud → Collector → Configure 로 이동합니다.
  • 새 API 토큰을 생성합니다.
  • Grafana에서 제공한 설치 명령을 복사해 EC2 인스턴스에 붙여넣습니다.

설치가 끝나면 다음을 실행합니다:

cd /etc/alloy

설정 파일을 엽니다:

sudo nano config.alloy
  • Alloy 설정(config.alloy)을 붙여넣습니다. (Prometheus, Loki, remotecfg에 대한 자격 증명은 변경하지 마세요.)
  • config.alloy 파일을 받으려면 GitHub 프로필을 주석 처리해도 됩니다.

Alloy를 재시작합니다:

sudo systemctl restart alloy.service

Grafana Cloud에서 Alloy가 연결되었는지 확인합니다.

Step 2: Verify System Metrics in Grafana

  • Grafana Cloud → Fleet Management 로 이동합니다.
  • IP 주소로 식별되는 EC2 인스턴스를 선택합니다.
  • Explore 를 사용해 CPU, 메모리, 디스크 및 기타 시스템 메트릭이 수집되고 있는지 확인합니다.

Step 3: Enable Apache mod_status

status.conf 를 편집합니다:

sudo nano /etc/apache2/mods-available/status.conf

아래 내용을 추가합니다(이미 있으면 생략):

SetHandler server-status
Require local

Apache를 재시작합니다:

sudo systemctl restart apache2.service

Step 4: Enable PHP‑FPM Status & Ping Pages

4.1 Update www.conf

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

다음 지시자를 추가하거나 수정합니다:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660
ping.path = /ping
pm.status_path = /status
listen = /run/php/php8.1-fpm.sock

PHP‑FPM을 재시작합니다:

sudo systemctl restart php8.1-fpm

소켓 파일 /run/php/php8.1-fpm.sock 가 존재하는지 확인합니다.

4.2 Create php-fpm-status.conf

sudo nano /etc/apache2/conf-available/php-fpm-status.conf

다음 내용을 붙여넣습니다:

SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"

SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"

서비스를 재시작합니다:

sudo systemctl restart apache2
sudo systemctl restart php8.1-fpm

Step 5: Enable Required Apache Modules

sudo a2enmod proxy proxy_fcgi setenvif
sudo a2enconf php-fpm-status
sudo systemctl restart apache2

Step 6: Install PHP‑FPM Exporter

6.1 Download & Install Exporter

wget https://github.com/hipages/php-fpm_exporter/releases/download/v2.2.0/php-fpm_exporter_2.2.0_linux_amd64.tar.gz
tar -xvzf php-fpm_exporter_2.2.0_linux_amd64.tar.gz
sudo mv php-fpm_exporter /usr/local/bin/

6.2 Create Exporter User

sudo useradd --system --no-create-home --shell /usr/sbin/nologin phpfpm_exporter
sudo usermod -aG www-data phpfpm_exporter

6.3 Create Systemd Service

sudo nano /etc/systemd/system/php-fpm-exporter.service

다음 내용을 붙여넣습니다:

[Unit]
Description=PHP-FPM Prometheus Exporter
After=network.target

[Service]
User=phpfpm_exporter
Group=www-data
ExecStart=/usr/local/bin/php-fpm_exporter server \
  --phpfpm.scrape-uri='unix:///run/php/php8.1-fpm.sock;/status' \
  --web.listen-address=':9253'
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

6.4 Start the Service

sudo systemctl daemon-reload
sudo systemctl enable --now php-fpm-exporter
sudo systemctl status php-fpm-exporter

6.5 Test Metrics

curl http://127.0.0.1/status
curl http://127.0.0.1:9253/metrics

새로운 Exporter를 인식하도록 Alloy를 재시작합니다:

sudo systemctl restart alloy

Step 7: Verify PHP‑FPM Metrics in Grafana

  • Grafana Cloud → Explore 에서 다음과 같은 PHP‑FPM 메트릭을 검색합니다:
phpfpm_active_processes
phpfpm_requests_total
phpfpm_slow_requests
  • 이제 Apache, 시스템, PHP‑FPM 메트릭이 모두 표시되는지 확인합니다.
Back to Blog

관련 글

더 보기 »