- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
Datadog에서 HAProxy 활동을 캡처하여 다음을 수행합니다.
이 통합은 프로메테우스(Prometheus) 엔드포인트(권장) 또는 소켓 기반 통합에서 통계 엔드포인트(더 이상 사용되지 않음)를 통해 메트릭을 수집할 수 있습니다. 프로메테우스 엔드포인트를 사용하려면 HAProxy 버전 2(엔터프라이즈 버전 1.9rc1) 이상이 필요합니다.
프로메테우스 엔드포인트를 사용하는 경우 버전 4.0.0부터 개방형메트릭 기반 통합에는 최신 모드(use_openmetrics
: true)와 레거시 모드(use_openmetrics
: false 및 use_prometheus
: true)가 포함되어 있습니다. 최신 기능을 모두 사용하려면 Datadog에서 최신 모드를 활성화할 것을 권장합니다. 자세한 내용은 [개방형메트릭 기반 통합을 위한 최신 및 레거시 버전 관리]를 참조하세요.
소켓 기반 통합을 사용하려면 use_openmetrics
와 use_prometheus
를 모두 false로 설정하고 설정 섹션의 해당 지침을 따르세요.
use_openmetrics
옵션은 최신 모드의 개방형메트릭를 사용해야 합니다. 메트릭 수집을 위해 에이전트 v7.35 이상이 필요하거나 에이전트 v6.35 이상에서 파이썬(Python) 3를 활성화해야 합니다.. 파이썬 3을 사용할 수 없거나 에이전트 v7.34 이하를 사용하는 호스트의 경우 레거시 모드나 개방형메트릭 또는 소켓 기반 레거시 통합을 사용하세요.
[OpenMetrics V1]
또는 [OpenMetrics V2]
로 표시된 메트릭은 해당 HAProxy 통합 모드에서만 사용할 수 있습니다. [OpenMetrics V1 and V2]
로 표시된 메트릭은 두 모드 모두에서 수집됩니다.
Datadog 에이전트 패키지에 HAProxy 점검이 포함되어 있으므로 HAProxy 서버에 아무 것도 설치할 필요가 없습니다.
통합을 설정하는 권장 방법은 HAProxy에서 프로메테우스 엔드포인트를 활성화하는 것입니다. 이 엔드포인트는 버전 2(엔터프라이즈 버전 1.9rc1)부터 HAProxy에 내장되어 있습니다. 이전 버전을 사용하는 경우, HAProxy 프로메테우스 내보내기를 설정하거나 다음 섹션에 설명된 레거시 소켓 기반 통합을 설정하는 것을 고려하세요.
레거시 개방형메트릭 모드를 최신 모드 대신 사용하려면 use_openmetrics
옵션을 use_prometheus
로 변경하고 openmetrics_endpoint
옵션을 prometheus_url
로 변경하세요. 자세한 내용은 호스트 설명서의 프로메테우스 및 개방형메트릭 메트릭 수집을 참조하세요.
haproxy.conf
를 설정하세요.호스트에서 실행 중인 에이전트에 대해 이 점검을 구성하려면
에이전트의 설정 디렉터리 루트에 있는 conf.d/
폴더에서 haproxy.d/conf.yaml
파일을 편집하여 HAProxy 메트릭 수집을 시작합니다. 사용 가능한 모든 설정 옵션은 haproxy.d/conf.yaml 샘플을 참조하세요.
instances:
## @param use_openmetrics - boolean - optional - default: false
## Enable to preview the new version of the check which supports HAProxy version 2 or later
## or environments using the HAProxy exporter.
##
## OpenMetrics-related options take effect only when this is set to `true`.
##
## Uses the latest OpenMetrics V2 implementation for more features and better performance.
## Note: To see the configuration options for the OpenMetrics V1 implementation (Agent v7.33 or earlier),
## https://github.com/DataDog/integrations-core/blob/7.33.x/haproxy/datadog_checks/haproxy/data/conf.yaml.example
#
- use_openmetrics: true # Enables OpenMetrics V2
## @param openmetrics_endpoint - string - optional
## The URL exposing metrics in the OpenMetrics format.
#
openmetrics_endpoint: http://localhost:<PORT>/metrics
레거시 구현에 대한 설정 옵션을 보려면 에이전트 v7.34 이전 버전에 대한 haproxy.d/conf.yaml 샘플 파일을 참조하세요.
에이전트를 재시작하세요.
컨테이너화된 환경의 경우 자동탐지 통합 템플릿에 아래 파라미터를 적용하는 방법이 안내되어 있습니다.
파라미터 | 값 |
---|---|
<INTEGRATION_NAME> | haproxy |
<INIT_CONFIG> | 비어 있음 또는 {} |
<INSTANCE_CONFIG> | {"openmetrics_endpoint": "http://%%host%%:<PORT>/metrics", "use_openmetrics": "true"} |
배포를 위해 .spec.template.metadata
아래에 포드 주석을 추가합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: haproxy
spec:
template:
metadata:
labels:
name: haproxy
annotations:
ad.datadoghq.com/haproxy.check_names: '["haproxy"]'
ad.datadoghq.com/haproxy.init_configs: '[{}]'
ad.datadoghq.com/haproxy.instances: |
[
{
"openmetrics_endpoint": "http://%%host%%:<PORT>/metrics", "use_openmetrics": "true"
}
]
spec:
containers:
- name: haproxy
이 설정 전략은 레거시 사용자를 위한 참조용으로 제공됩니다. 통합을 처음 설정하는 경우 이전 섹션에서 설명한 프로메테우스 기반 전략을 사용하는 것이 좋습니다.
에이전트는 통계 엔드포인트를 사용하여 메트릭을 수집합니다.
haproxy.conf
에서 메트릭을 설정합니다.
listen stats # Define a listen section called "stats"
bind :9000 # Listen on localhost:9000
mode http
stats enable # Enable stats page
stats hide-version # Hide HAProxy version
stats realm Haproxy\ Statistics # Title text for popup window
stats uri /haproxy_stats # Stats URI
stats auth Username:Password # Authentication credentials
호스트에서 실행 중인 에이전트에 대해 이 점검을 구성하려면,
메트릭에이전트의 설정 디렉토리 루트의 conf.d/
폴더에 있는 haproxy.d/conf.yaml
파일을 편집하여 HAProxy 메트릭 및 로그 수집을 시작합니다. 사용 가능한 모든 설정 옵션은 haproxy.d/conf.yaml 샘플을 참조하세요.
haproxy.d/conf.yaml
파일에 설정 블록을 추가하여 HAProxy 메트릭 수집을 시작하세요.
init_config:
instances:
## @param url - string - required
## Haproxy URL to connect to gather metrics.
## Set the according <USERNAME> and <PASSWORD> or use directly a unix stats
## or admin socket: unix:///var/run/haproxy.sock
#
- url: http://localhost/admin?stats
에이전트를 재시작하세요.
기본적으로 Haproxy는 UDP를 통해 포트 514로 로그를 전송합니다. 에이전트는 이 포트에서 로그를 수신할 수 있지만 1024 미만의 포트 번호에 바인딩하려면 더 높은 권한이 필요합니다. 아래 지침에 따라 설정하세요. 또는 다른 포트를 사용하고 3단계를 건너뛸 수 있습니다.
Datadog 에이전트에서 로그 수집은 기본적으로 사용하지 않도록 설정되어 있습니다. datadog.yaml
파일에서 로그 수집을 사용하도록 설정합니다.
logs_enabled: true
haproxy.d/conf.yaml
파일에 설정 블록을 추가하여 Haproxy 로그 수집을 시작하세요.
logs:
- type: udp
port: 514
service: <SERVICE_NAME>
source: haproxy
service
파라미터 값을 변경하고 환경에 맞춰 설정을 변경합니다. 사용 가능한 모든 설정 옵션은 haproxy.d/conf.yaml 샘플을 참조하세요.
setcap
명령을 사용하여 포트 514에 대한 액세스 권한을 부여합니다.
sudo setcap CAP_NET_BIND_SERVICE=+ep /opt/datadog-agent/bin/agent/agent
getcap
명령을 실행하여 설정이 올바른지 확인합니다.
sudo getcap /opt/datadog-agent/bin/agent/agent
예상 결과:
/opt/datadog-agent/bin/agent/agent = cap_net_bind_service+ep
참고: 에이전트를 업그레이드할 때마다 이 setcap
명령을 다시 실행합니다.
에이전트를 재시작하세요.
컨테이너에서 실행 중인 에이전트에 이 점검을 구성하는 방법:
애플리케이션 컨테이너에 자동탐지 통합 템플릿을 Docker 레이블로 설정하세요.
LABEL "com.datadoghq.ad.check_names"='["haproxy"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"url": "https://%%host%%/admin?stats"}]''
기본적으로 로그 수집은 Datadog 에이전트에서 비활성화되어 있습니다. 활성화하려면 Docker 로그 수집을 참고하세요.
그런 다음 Docker 레이블로 로그 통합을 설정하세요.
LABEL "com.datadoghq.ad.logs"='[{"source":"haproxy","service":"<SERVICE_NAME>"}]'
쿠버네티스에서 실행 중인 에이전트에 이 점검을 구성하는 방법:
자동탐지 통합 템플릿을 애플리케이션 컨테이너의 포드 주석으로 설정합니다. 이외 템플릿은 또한 파일, configmap, key-value store로 설정할 수 있습니다.
주석 v1(Datadog 에이전트 v7.36 이전)
apiVersion: v1
kind: Pod
metadata:
name: haproxy
annotations:
ad.datadoghq.com/haproxy.check_names: '["haproxy"]'
ad.datadoghq.com/haproxy.init_configs: '[{}]'
ad.datadoghq.com/haproxy.instances: |
[
{
"url": "https://%%host%%/admin?stats"
}
]
spec:
containers:
- name: haproxy
주석 v2(Datadog 에이전트 v7.36 이상)
apiVersion: v1
kind: Pod
metadata:
name: haproxy
annotations:
ad.datadoghq.com/haproxy.checks: |
{
"haproxy": {
"init_config": {},
"instances": [
{
"url": "https://%%host%%/admin?stats"
}
]
}
}
spec:
containers:
- name: haproxy
에이전트 버전 6.0 이상에서 사용 가능
Datadog 에이전트에서 기본적으로 로그 수집이 비활성화되어 있습니다. 활성화하려면 [쿠버네티스 로그 수집]을 확인하세요.
그런 다음 로그 통합을 포드 주석으로 설정합니다. 또한 파일, configmap, 또는 key-value store로 설정할 수 있습니다.
주석 v1/v2
apiVersion: v1
kind: Pod
metadata:
name: haproxy
annotations:
ad.datadoghq.com/haproxy.logs: '[{"source":"haproxy","service":"<SERVICE_NAME>"}]'
spec:
containers:
- name: haproxy
ECS에서 실행 중인 에이전트에 이 점검을 구성하는 방법:
애플리케이션 컨테이너에 자동탐지 통합 템플릿을 Docker 레이블로 설정하세요.
{
"containerDefinitions": [{
"name": "haproxy",
"image": "haproxy:latest",
"dockerLabels": {
"com.datadoghq.ad.check_names": "[\"haproxy\"]",
"com.datadoghq.ad.init_configs": "[{}]",
"com.datadoghq.ad.instances": "[{\"url\": \"https://%%host%%/admin?stats\"}]"
}
}]
}
에이전트 버전 6.0 이상에서 사용 가능
기본적으로 로그 수집은 Datadog 에이전트에서 비활성화되어 있습니다. 활성화하려면 ECS 로그 수집을 참조하세요.
그런 다음 Docker 레이블로 로그 통합을 설정하세요.
{
"containerDefinitions": [{
"name": "haproxy",
"image": "haproxy:latest",
"dockerLabels": {
"com.datadoghq.ad.logs": "[{\"source\":\"haproxy\",\"service\":\"<SERVICE_NAME>\"}]"
}
}]
}
에이전트의 상태 하위 명령을 실행하고 점검 섹션에서 haproxy
를 찾습니다.
HAProxy 점검은 이벤트를 포함하지 않습니다.
syslog를 사용하는 시스템의 에이전트가 포트 514에서 HAProxy 로그를 수신 대기 중인 경우 에이전트 로그에 다음 오류가 나타날 수 있습니다.
Can't start UDP forwarder on port 514: listen udp :514: bind: address already in use
.
기본적으로 syslog가 포트 514에서 수신 대기 중이기 때문에 이 오류가 발생합니다. 이 오류를 해결하려면 syslog를 사용하지 않도록 설정하거나 로그를 포트 514로 전달하고 에이전트 이 로그를 수신 대기 중인 다른 포트로 전달하도록 HAProxy를 설정할 수 있습니다. 에이전트가 수신 대기하는 포트는 haproxy.d/conf.yaml 파일 여기에서 정의할 수 있습니다.
도움이 필요하신가요? Datadog 고객 지원팀에 문의해주세요.