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 재기동 후 확인
'Server 운영 > server' 카테고리의 다른 글
[Linux] 일반 사용자로 httpd 80 port 사용하기 (0) | 2024.07.17 |
---|---|
[Linux] rsync로 암호 입력 없이 파일 동기화 하기 (0) | 2024.06.11 |
[Linux] LVM 구성 (0) | 2024.03.13 |
[Zabbix] Zabbix 구조 이해하기 (0) | 2024.03.08 |
apache + tomcat + DB (0) | 2022.01.26 |