본문 바로가기
WIKI 기술 지식 베이스

SaltStack으로 Datadog 에이전트 설치

원문 보기 위키 갱신

Datadog SaltStack formula를 사용해 Datadog 에이전트와 에이전트 기반 통합(체크)을 설치해요.

출처: 문서

본문

Datadog SaltStack formula는 Datadog 에이전트와 에이전트 기반 통합(체크)을 설치하는 데 사용돼요. SaltStack formula에 대한 자세한 내용은 Salt formulas 설치 및 사용 지침을 참고하세요.

셋업

요구사항

Datadog SaltStack formula는 Debian 기반 및 RedHat 기반 시스템에서의 설치만 지원해요.

설치

Fleet Automation의 인앱 설치 가이드를 따라 필수 설정을 선택하고, 생성된 pillar 스니펫을 복사해 Salt pillar 파일에 추가하고, 평소처럼 Salt state를 실행해 Datadog 에이전트를 배포하세요. 에이전트 업그레이드 관리, 에이전트 통합 활성화, 추가 기능 토글, 트러블슈팅을 포함한 고급 옵션은 고급 구성 섹션을 참고하세요.

고급 설치 옵션

옵션 1 - gitfs_remotes 사용

Salt 마스터 구성 파일(기본 /etc/salt/master)의 gitfs_remotes 옵션을 사용해 Salt 마스터 노드의 base 환경에 Datadog formula를 설치하세요.

fileserver_backend:
  - roots # Active by default, necessary to be able to use the local salt files we define in the next steps
  - gitfs # Adds gitfs as a fileserver backend to be able to use gitfs_remotes
gitfs_remotes:
  - https://github.com/DataDog/datadog-formula.git:
    - saltenv:
      - base:
        - ref: 3.0 # Pin the version of the formula you want to use

그런 다음 구성 변경을 적용하려면 Salt Master 서비스를 재시작하세요.

systemctl restart salt-master
# OR
service salt-master restart
옵션 2 - file_roots에 추가

또는 Salt 마스터 노드에 Datadog formula를 클론하세요.

mkdir -p /srv/formulas && cd /srv/formulas
git clone https://github.com/DataDog/datadog-formula.git

그런 다음 Salt 마스터 구성 파일(기본 /etc/salt/master)의 file_roots 아래 base 환경에 추가하세요.

file_roots:
  base:
    - /srv/salt/
    - /srv/formulas/datadog-formula/

배포

호스트에 Datadog 에이전트를 배포하려면:

  1. top file(기본 /srv/salt/top.sls)에 Datadog formula를 추가하세요.

    base:
      '*':
        - datadog
    
  2. pillar 디렉터리(기본 /srv/pillar/)에 datadog.sls를 만드세요. 다음을 추가하고 Datadog API 키를 업데이트하세요.

    datadog:
      config:
        api_key: <YOUR_DD_API_KEY>
      install_settings:
        agent_version: <AGENT7_VERSION>
    
  3. top pillar 파일(기본 /srv/pillar/top.sls)에 datadog.sls를 추가하세요.

    base:
      '*':
        - datadog
    

구성

formula 구성은 pillar 파일의 datadog 키에 작성해야 해요. config, install_settings, checks의 세 부분으로 구성돼요.

Config

config 아래에 minion의 에이전트 구성 파일(에이전트 v6 & v7용 datadog.yaml, 에이전트 v5용 datadog.conf)에 작성할 구성 옵션을 추가하세요.

설치된 에이전트 버전에 따라 다른 옵션을 설정할 수 있어요.

  • 에이전트 v6 & v7: 에이전트 구성 파일이 지원하는 모든 옵션이 지원돼요.
  • 에이전트 v5: api_key 옵션만 지원돼요.

아래 예제는 Datadog API 키를 설정하고 Datadog 사이트를 datadoghq.eu로 설정해요(에이전트 v6 & v7에서 사용 가능).

  datadog:
    config:
      api_key: <YOUR_DD_API_KEY>
      site: datadoghq.eu
설치 설정

install_settings 아래에 에이전트 설치 옵션을 구성하세요.

  • agent_version: 설치할 에이전트 버전(기본값은 최신 에이전트 v7).

아래 예제는 에이전트 v6.14.1을 설치해요.

  datadog:
    install_settings:
      agent_version: 6.14.1
Checks

호스트에 에이전트 통합을 추가하려면 checks 변수를 체크 이름을 키로 사용하세요. 각 체크에는 두 가지 옵션이 있어요.

옵션 설명
config 체크 구성 파일에 작성할 구성 옵션을 추가하세요. 에이전트 v6 & v7: <confd_path>/<check>.d/conf.yaml 에이전트 v5: <confd_path>/<check>.yaml.
version 에이전트 v6 & v7에서 설치할 체크 버전(기본값은 에이전트에 번들된 버전).
third_party 에이전트 v6 & v7(버전 v6.21.0/v7.21.0 이상만)에서 설치할 통합이 서드파티 통합임을 나타내는 부울. version 옵션과 함께 사용해야 해요.

아래는 /srv/pillar 디렉터리를 모니터링하는 Directory 통합 v1.4.0을 사용하는 예제예요.

datadog:
  config:
    api_key: <YOUR_DD_API_KEY>
  install_settings:
    agent_version: <AGENT7_VERSION>
  checks:
    directory:
      config:
        instances:
          - directory: "/srv/pillar"
            name: "pillars"
      version: 1.4.0

아래는 "third-party-integration"이라는 샘플 서드파티 통합 v1.0.0을 사용하는 예제예요.

datadog:
  config:
    api_key: <YOUR_DD_API_KEY>
  install_settings:
    agent_version: <AGENT7_VERSION>
  checks:
    third-party-integration:
      config:
        instances:
          - some_config: "some value"
      version: 1.0.0
      third_party: true
Logs

로그 수집을 활성화하려면 메인 구성에서 logs_enabled을 true로 설정하세요.

datadog:
  config:
    logs_enabled: true

로그를 Datadog로 보내려면 체크에서 logs 키를 사용하세요(통합에 로그를 설정하기 위한 기존 체크 또는 커스텀 로그 수집을 설정하기 위한 커스텀 체크). 다음 예제는 system_logs라는 커스텀 체크를 사용해요.

이 체크의 config: 키 내용은 /etc/datadog-agent/conf.d/<check_name>.d/conf.yaml 파일(이 예제에서는 /etc/datadog-agent/conf.d/system_logs.d/conf.yaml)에 작성돼요.

수집할 로그를 나열하려면 커스텀 로그 수집 구성 파일의 conf.yaml 파일을 채우는 것과 같은 방식으로 config 섹션을 채우세요(공식 문서의 커스텀 로그 수집 섹션 참고).

예를 들어 /var/log/syslog와 /var/log/auth.log에서 로그를 수집하려면 구성은 다음과 같아요.

datadog:
[...]
  checks:
    system_logs:
      config:
        logs:
          - type: file
            path: "/var/log/syslog"
            service: "system"
          - type: file
            path: "/var/log/auth.log"
            service: "system"

States

Salt formulas는 미리 작성된 Salt states예요. Datadog formula에서 다음 states를 사용할 수 있어요.

State 설명
datadog Datadog 에이전트 서비스를 설치, 구성, 시작해요.
datadog.install 올바른 repo를 구성하고 Datadog 에이전트를 설치해요.
datadog.config pillar 데이터를 사용해 Datadog 에이전트와 통합을 구성해요(pillar.example 참고).
datadog.service 에이전트와 체크의 구성 파일 변경을 감시하는 Datadog 에이전트 서비스를 실행해요.
datadog.uninstall 서비스를 중지하고 Datadog 에이전트를 제거해요.

참고: datadog.config를 사용해 다른 머신에 다른 체크 인스턴스를 구성할 때는 Salt 마스터 구성 또는 masterless 실행 시 Salt minion 구성에서 pillar_merge_lists가 True로 설정되어야 해요.