Server 운영/server

[Datadog] Rocky9 datadog 구성

rnany 2025. 4. 23. 14:25

0. 환경

- datadog agent 는 이미 설치 되어있는 환경이다.

- rocky9 서버에 apache, php-fpm, redis가 설치된 환경이다.

 

1. APM 구성

PHP-FPM ↔ ddtrace 연결이 되어야 APM 모니터링이 가능하다.

  • ddtrace는 Datadog에서 제공하는 Application Performance Monitoring(APM) 기능을 PHP, Python, Java 같은 애플리케이션에 직접 연결해주는 라이브러리!

php -m | grep ddtrace 으로 ddtrace가 깔려있는지 확인한다.

  • datadog 설정 (apm을 하려면 해당 설정이 있어야한다.)
# vim datadog.yaml
apm_config:
 enabled: true

아래 두 개 중 선택해서 진행 (둘 다 하면 명시되지 않은 서비스는 전체 설정을 따라간다.)

  • php-fpm 설정(전체 설정)
# vim php.ini
[datadog]
extension = ddtrace.so
datadog.trace.enabled = 1
datadog.service = service-name
datadog.env = production
datadog.agent_host = 127.0.0.1
  • php-fpm 설정(서비스 당 설정)
# vim /usr/local/php/etc/php-fpm.d/www.conf
env[DD_SERVICE] = service-name
env[DD_ENV] = production
env[DD_AGENT_HOST] = 127.0.0.1

php의 www.conf 외에 설정 파일의 [pool] 설정마다 해주어야 한다.(서비스가 다를 경우)

datadog-agent, php-fpm 재기동하면 완료!

 

2-1. Apache 구성

  • datadog 설정 변경
# vim /etc/datadog-agent/conf.d/apache.d/conf.yaml

instances:
  - apache_status_url: https://localhost/server-status?auto
    disable_ssl_validation: true

 

  • apache 설정 변경
# vim httpd.conf

LoadModule status_module modules/mod_status.so

<IfModule mod_status.c>
    ExtendedStatus On
    <Location "/server-status">
        SetHandler server-status
        Require local
    </Location>
</IfModule>
  • datadog-agent, httpd 재기동 후 확인
 # curl -vk https://localhost/server-status
 # datadog-agent status | grep apache

이때 curl에서 302, 404가 뜨면 통신이 안되는 것이니 httpd 설정을 바꿔봐야한다.

통신이 가능하면 datadog-agent 상태에서 apache [ok]로 뜬다.

 

2-2. php-fpm 구성

datadog 설정 변경

# vim /etc/datadog-agent/conf.d/php_fpm.d/conf.yaml

instances:
  - status_url: https://localhost/status
    ping_url: https://localhost/ping
      #ping_reply: pong
    tls_verify: false
    use_fastcgi: false
    pool: name
    tags:
      - service:service-name
      - env:production

 

여러 pool을 모니터링 하고 싶으면 status_url 부터 반복해서 쓴 뒤 status_url, ping_url 경로를 바꿔서 설정해주면 된다.(물론 하단 apache, php 설정도 두 번 해줘야한다.)

apache 설정 변경

# vim httpd.conf

<LocationMatch "^/(status|ping)$">
    SetHandler "proxy:unix:/run/php-fpm.sock|fcgi://localhost"
    Require ip 127.0.0.1 ::1
</LocationMatch>

 

php 설정 변경

# vim php.ini

pm.status_path = /status
ping.path = /ping
;ping.response = pong

 

datadog-agent, httpd 재기동 후 확인

# curl -vk https://localhost/status
# datadog-agent status | grep php

 

2-3. redis 구성

datadog 설정 변경

# vim /etc/datadog-agent/conf.d/redisdb.d/conf.yaml

instances:
  - host: localhost
    port: 6379
    password: "password"           # 비밀번호가 있다면 설정
    db: 0                          # 기본 DB 선택
    command_stats: true            # Redis 명령어 통계 활성화
    latency: true                  # Redis latency monitor 활성화
    slowlog-max-len: 128
    tags:
      - service:service-name
      - env:production

datadog-agent 재기동 후 확인