datadog.datadog

Rola Ansible dla Agenta Datadog

Rola Ansible dla Agenta Datadog instaluje i konfiguruje Agenta Datadog oraz jego integracje.

Rola Ansible a kolekcja Ansible

Rola Ansible dla Agenta Datadog jest dostępna na 2 różne sposoby:

  • Jako część kolekcji Datadog, dostępnej pod nazwą datadog.dd na Ansible Galaxy (zalecane).
  • Jako samodzielna rola, dostępna pod nazwą datadog.datadog na Ansible Galaxy (starsza wersja).

Wersja 4 roli i wersja 5 kolekcji domyślnie instalują Agenta Datadog v7.

Ustawienia

Pamiętaj, że instrukcje instalacji w tym dokumencie opisują instalację samodzielnej roli Datadog. Aby uzyskać instrukcje instalacji kolekcji Datadog, zapoznaj się z plikem README kolekcji. Zmienne konfiguracyjne są takie same dla obu – zarówno dla samodzielnej roli, jak i roli dostępnej poprzez kolekcję.

Wymagania

  • Wymaga Ansible w wersji 2.6+.

  • Obsługuje większość dystrybucji Linuxa opartych na Debianie i RHEL, macOS oraz Windows.

  • Przy używaniu Ansible w wersji 2.10+ do zarządzania hostami Windows, wymagana jest instalacja kolekcji ansible.windows:

    ansible-galaxy collection install ansible.windows
    
  • Przy używaniu Ansible w wersji 2.10+ do zarządzania hostami openSUSE/SLES, wymagana jest instalacja kolekcji community.general:

    ansible-galaxy collection install community.general
    

Instalacja

Zainstaluj rolę Datadog z Ansible Galaxy na swoim serwerze Ansible:

ansible-galaxy install datadog.datadog

Aby wdrożyć Agenta Datadog na hostach, dodaj rolę Datadog i swoje klucz API do swojego playbooka:

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_api_key: "<TWÓJ_KLUCZ_API_DD>"

Klucz API jest wymagany, a jego brak powoduje, że rola nie powiedzie się. Jeśli chcesz podać go w inny sposób, poza kontrolą Ansible, określ przykładowy klucz i zamień go później.

Zmienne roli

Te zmienne zapewniają dodatkową konfigurację podczas instalacji Agenta Datadog. Należy je określić w sekcji vars swojego playbooka.

Zmienna Opis
datadog_api_key Twój klucz API Datadog. Ta zmienna jest obowiązkowa od wersji 4.21.
datadog_site Strona, na którą wysyłane są dane Agenta. Domyślnie datadoghq.com, ustaw na datadoghq.eu, aby wysyłać dane na stronę UE. Ta opcja jest dostępna tylko dla wersji Agenta >= 6.6.0.
datadog_agent_flavor Nadpisuje domyślny pakiet Debian / RedHat do instalacji IOT na RPI. Domyślnie "datadog-agent" - użyj "datadog-iot-agent" dla RPI.
datadog_agent_version Przypisana wersja Agenta do zainstalowania (opcjonalnie, ale zalecane), na przykład: 7.16.0. Ustawienie datadog_agent_major_version nie jest potrzebne, jeśli używasz datadog_agent_version.
datadog_agent_major_version Główna wersja Agenta do zainstalowania. Możliwe wartości to 5, 6 lub 7 (domyślnie). Jeśli datadog_agent_version jest ustawione, ma pierwszeństwo, w przeciwnym razie instalowana jest najnowsza wersja określonej głównej wersji. Ustawienie datadog_agent_major_version nie jest potrzebne, jeśli używasz datadog_agent_version.
datadog_checks Konfiguracja YAML dla kontrolów Agenta, do zapisania w:
- /etc/datadog-agent/conf.d/<nazwa_kontroli>.d/conf.yaml dla Agenta v6 i v7,
- /etc/dd-agent/conf.d dla Agenta v5.
datadog_disable_untracked_checks Ustaw na true, aby usunąć wszystkie kontrole, które nie są obecne w datadog_checks i datadog_additional_checks.
datadog_additional_checks Lista dodatkowych kontroli, które nie są usuwane, jeśli datadog_disable_untracked_checks jest ustawione na true.
datadog_disable_default_checks Ustaw na true, aby usunąć wszystkie domyślne kontrole.
datadog_config Ustawi konfiguracyjny dla Agenta Datadog. Rola zapisuje konfiguracje w odpowiedniej lokalizacji w zależności od systemu operacyjnego. Pełna lista opcji konfiguracyjnych znajduje się w pliku szablonu datadog.yaml w repozytorium GitHub Datadog Agenta.
datadog_config_ex (Opcjonalnie) Dodatkowe sekcje INI do umieszczenia w /etc/dd-agent/datadog.conf (tylko Agent v5).
datadog_apt_repo Nadpisuje domyślne repozytorium apt Datadog. Upewnij się, że używasz opcji signed-by, jeśli metadane repozytorium są podpisane przy użyciu kluczy podpisujących Datadog: deb [signed-by=/usr/share/keyrings/datadog-archive-keyring.gpg] https://yourrepo.
datadog_apt_cache_valid_time Nadpisuje domyślny czas ważności pamięci podręcznej apt (domyślnie 1 godzina).
datadog_apt_key_url_new Nadpisuje lokalizację, z której należy uzyskać klucz apt Datadog (przestarzała zmienna datadog_apt_key_url odnosi się do wygasłego klucza, który został usunięty z roli). Oczekuje się, że adres URL będzie kluczem GPG zawierającym klucze 382E94DE, F14F620E oraz C0962C7D.
datadog_yum_repo_config_enabled Ustaw na false, aby zapobiec konfiguracji repozytorium yum Datadog (domyślnie true). UWAGA: dezaktywuje to automatyczną aktualizację kluczy GPG.
datadog_yum_repo Nadpisuje domyślne repozytorium yum Datadog.
datadog_yum_repo_proxy Ustaw adres URL proxy do użycia w konfiguracji repozytorium yum Datadog.
datadog_yum_repo_proxy_username Ustaw nazwę użytkownika proxy do użycia w konfiguracji repozytorium yum Datadog.
datadog_yum_repo_proxy_password Ustaw hasło proxy do użycia w konfiguracji repozytorium yum Datadog.
datadog_yum_repo_gpgcheck Nadpisuje domyślną wartość repo_gpgcheck (pusta). Jeśli pusta, wartość jest dynamicznie ustawiana na yes, gdy niestandardowe datadog_yum_repo nie jest używane i system nie jest RHEL/CentOS 8.1 (z powodu błędu w dnf), w przeciwnym przypadku jest ustawione na no. Uwaga: weryfikacja podpisu repodata jest zawsze wyłączona dla Agenta 5.
datadog_yum_gpgcheck Nadpisuje domyślną wartość gpgcheck (yes) - użyj no, aby wyłączyć weryfikację podpisów pakietów GPG.
datadog_yum_gpgkey Usunięto w wersji 4.18.0 Nadpisuje domyślny adres URL klucza yum Datadog używanego do weryfikacji pakietów Agenta v5 i v6 (do 6.13) (ID klucza 4172A230).
datadog_yum_gpgkey_e09422b3 Nadpisuje domyślny adres URL klucza yum Datadog używanego do weryfikacji pakietów Agenta v6.14+ (ID klucza E09422B3).
datadog_yum_gpgkey_e09422b3_sha256sum Nadpisuje domyślną sumę kontrolną klucza datadog_yum_gpgkey_e09422b3.
datadog_zypper_repo Nadpisuje domyślne repozytorium zypper Datadog.
datadog_zypper_repo_gpgcheck Nadpisuje domyślną wartość repo_gpgcheck (pusta). Jeśli pusta, wartość jest dynamicznie ustawiana na yes, gdy niestandardowe datadog_zypper_repo nie jest używane, w przeciwnym przypadku jest ustawiana na no. Uwaga: weryfikacja podpisu repodata jest zawsze wyłączona dla Agenta 5.
datadog_zypper_gpgcheck Nadpisuje domyślną wartość gpgcheck (yes) - użyj no, aby wyłączyć weryfikację podpisów pakietów GPG.
datadog_zypper_gpgkey Usunięto w wersji 4.18.0 Nadpisuje domyślny adres URL klucza zypper Datadog używanego do weryfikacji pakietów Agenta v5 i v6 (do 6.13) (ID klucza 4172A230).
datadog_zypper_gpgkey_sha256sum Usunięto w wersji 4.18.0 Nadpisuje domyślną sumę kontrolną klucza datadog_zypper_gpgkey.
datadog_zypper_gpgkey_e09422b3 Nadpisuje domyślny adres URL klucza zypper Datadog używanego do weryfikacji pakietów Agenta v6.14+ (ID klucza E09422B3).
datadog_zypper_gpgkey_e09422b3_sha256sum Nadpisuje domyślną sumę kontrolną klucza datadog_zypper_gpgkey_e09422b3.
datadog_agent_allow_downgrade Ustaw na yes, aby zezwolić na downgrade Agenta (używaj ostrożnie, zobacz defaults/main.yml dla szczegółów). Uwaga: Downgrady nie są wspierane na systemach Windows.
datadog_enabled Ustaw na false, aby uniemożliwić uruchomienie usługi datadog-agent (domyślnie true).
datadog_additional_groups Lista lub ciąg zawierający przecinkowo oddzieloną listę dodatkowych grup dla datadog_user (tylko Linux).
datadog_windows_ddagentuser_name Nazwa użytkownika Windows do utworzenia/użycia, w formacie <domena>\<użytkownik> (tylko Windows).
datadog_windows_ddagentuser_password Hasło używane do utworzenia użytkownika i/lub zarejestrowania usługi (tylko Windows).
datadog_apply_windows_614_fix Czy pobrać i zastosować plik referencyjny pod datadog_windows_614_fix_script_url (tylko Windows). Zobacz https://dtdg.co/win-614-fix dla bardziej szczegółowych informacji. Możesz ustawić to na false, zakładając, że twoje hosty nie działają na Datadog Agent 6.14.*.
datadog_macos_user Nazwa użytkownika, pod którym działa Agent. Użytkownik musi istnieć, nie zostanie utworzony automatycznie. Domyślnie ansible_user (tylko macOS).
datadog_macos_download_url Nadpisuje adres URL do pobrania instalatora DMG (tylko macOS).
datadog_apm_instrumentation_enabled Konfiguracja instrumentacji APM. Możliwe wartości to:
- host: Zarówno Agent, jak i twoje usługi działają na hoście.
- docker: Agent i twoje usługi działają w oddzielnych kontenerach Docker na tym samym hoście.
- all: Obsługuje wszystkie poprzednie scenariusze dla host i docker jednocześnie.
datadog_apm_instrumentation_libraries Lista bibliotek APM do zainstalowania, jeśli włączona jest injekcja host lub docker (domyślnie ["java", "js", "dotnet", "python", "ruby"]). Możesz znaleźć dostępne wartości w Inject Libraries Locally.
datadog_apm_instrumentation_docker_config Nadpisuje konfigurację APM Docker. Zapoznaj się z konfiguracją injekcji Docker dla bardziej szczegółowych informacji.
datadog_remote_updates Włącza zdalną instalację i aktualizacje za pomocą datadog-installer.

Integracje

Aby skonfigurować integrację Datadog (kontrolę), dodaj wpis do sekcji datadog_checks. Klucz na pierwszym poziomie to nazwa kontroli, a wartość to ładunek YAML do zapisania w pliku konfiguracyjnym. Przykłady podano poniżej.

Aby zainstalować lub usunąć integrację, zapoznaj się z akapitem datadog_integration tutaj.

Kontrola procesów

Aby zdefiniować dwie instancje dla kontroli process, użyj poniższej konfiguracji. Tworzy to odpowiednie pliki konfiguracyjne:

  • Agent v6 i v7: /etc/datadog-agent/conf.d/process.d/conf.yaml
  • Agent v5: /etc/dd-agent/conf.d/process.yaml
    datadog_checks:
      process:
        init_config:
        instances:
          - name: ssh
            search_string: ['ssh', 'sshd']
          - name: syslog
            search_string: ['rsyslog']
            cpu_check_interval: 0.2
            exact_match: true
            ignore_denied_access: true

Niestandardowa kontrola

Aby skonfigurować niestandardową kontrolę, użyj poniższej konfiguracji. Tworzy to odpowiednie pliki konfiguracyjne:

  • Agent v6 i v7: /etc/datadog-agent/conf.d/my_custom_check.d/conf.yaml
  • Agent v5: /etc/dd-agent/conf.d/my_custom_check.yaml
    datadog_checks:
      my_custom_check:
        init_config:
        instances:
          - some_data: true
Niestandardowe kontrole Pythona

Aby przekazać kontrolę Pythona do playbooka, użyj poniższej konfiguracji.

Ta konfiguracja wymaga, aby Datadog play i rola były częścią większego playbooka, w którym wartość przekazana to względna ścieżka do rzeczywistego zadania dla Linux lub Windows.

To jest dostępne tylko dla Agenta v6 lub nowszego.

Klucz powinien być nazwą pliku utworzonego w katalogu kontroli checks.d/{{ item }}.py:

    datadog_checks:
      my_custom_check:
        init_config:
        instances:
          - some_data: true
    datadog_custom_checks:
      my_custom_check: '../../../custom_checks/my_custom_check.py'

Autoodkrywanie

Podczas używania autoodkrywania, nie ma wstępnego przetwarzania ani post przetwarzania YAML. Oznacza to, że każda sekcja YAML jest dodawana do ostatecznego pliku konfiguracyjnego, w tym autoodkrywanie identyfikatorów.

Poniższy przykład konfiguruje kontrolę PostgreSQL przez autoodkrywanie:

    datadog_checks:
      postgres:
        ad_identifiers:
          - db-master
          - db-slave
        init_config:
        instances:
          - host: %%host%%
            port: %%port%%
            username: username
            password: password

Dowiedz się więcej o autoodkrywaniu w dokumentacji Datadog.

Śledzenie

Aby włączyć zbieranie śladów z Agentem v6 lub v7, użyj poniższej konfiguracji:

datadog_config:
  apm_config:
    enabled: true

Aby włączyć zbieranie śladów z Agentem v5, użyj poniższej konfiguracji:

datadog_config:
  apm_enabled: "true" # musi być ciągiem

Procesy na żywo

Aby włączyć zbieranie procesów na żywo z Agentem v6 lub v7, użyj poniższej konfiguracji:

datadog_config:
  process_config:
    enabled: "true" # typ: ciąg

Możliwe wartości dla enabled to: "true", "false" (tylko zbieranie kontenerów) lub "disabled" (całkowicie wyłącz zbieranie procesów na żywo).

Zmienne

Następujące zmienne są dostępne dla procesów na żywo:

  • scrub_args: Włącza usuwanie wrażliwych argumentów z linii poleceń procesu (domyślnie true).
  • custom_sensitive_words: Rozszerza domyślną listę wrażliwych słów używanych przez program usuwający polecenia.

System probe

System probe jest konfigurowany za pomocą zmiennej system_probe_config. Wszelkie zmienne zagnieżdżone pod tym będą zapisywane w system-probe.yaml, w sekcji system_probe_config.

Zarządzanie wydajnością sieci 7 (NPM) jest konfigurowane za pomocą zmiennej network_config. Wszelkie zmienne zagnieżdżone pod tym będą zapisywane w system-probe.yaml, w sekcji network_config.

Zarządzanie bezpieczeństwem w chmurze 8 jest konfigurowane za pomocą zmiennej runtime_security_config. Wszelkie zmienne zagnieżdżone pod tym będą zapisywane w system-probe.yaml i security-agent.yaml, w sekcji runtime_security_config.

Uniwersalne monitorowanie usług 17 (USM) jest konfigurowane za pomocą zmiennej service_monitoring_config. Wszelkie zmienne zagnieżdżone pod tym będą zapisywane w system-probe.yaml, w sekcji service_monitoring_config.

Zgodność 18 jest konfigurowana za pomocą zmiennej compliance_config. Wszelkie zmienne zagnieżdżone pod tym będą zapisywane w security-agent.yaml, w sekcji compliance_config.

Uwaga dla użytkowników Windows: NPM jest wspierany w Windows z Agentem v6.27+ i v7.27+. Jest dostarczany jako opcjonalny komponent, który jest instalowany tylko wtedy, gdy network_config.enabled jest ustawione na true podczas instalacji lub aktualizacji Agenta. Z tego powodu istniejące instalacje mogą wymagać dezinstalacji i reinstalacji Agenta raz, aby zainstalować komponent NPM, chyba że Agent jest aktualizowany jednocześnie.

Przykład konfiguracji

datadog_config:
  process_config:
    enabled: "true" # typ: ciąg
    scrub_args: true
    custom_sensitive_words: ['consul_token','dd_api_key']
system_probe_config:
  sysprobe_socket: /opt/datadog-agent/run/sysprobe.sock
network_config:
  enabled: true
service_monitoring_config:
  enabled: true
runtime_security_config:
  enabled: true

Uwaga: Ta konfiguracja działa z Agentem 6.24.1+ i 7.24.1+. Dla starszych wersji Agenta zobacz dokumentację Zarządzanie wydajnością sieci, aby uzyskać informacje o włączeniu system-probe.

Na systemach Linux, po zakończeniu tej modyfikacji wykonaj poniższe kroki, jeśli zainstalowałeś wersję Agenta starszą niż 6.18.0 lub 7.18.0:

  1. Uruchom system-probe: sudo service datadog-agent-sysprobe start Uwaga: Jeśli wrapper usługi nie jest dostępny na twoim systemie, uruchom to polecenie: sudo initctl start datadog-agent-sysprobe.
  2. Uruchom ponownie Agenta: sudo service datadog-agent restart.
  3. Włącz system-probe, aby uruchamiał się przy starcie: sudo service enable datadog-agent-sysprobe.

W przypadku ręcznej konfiguracji zapoznaj się z dokumentacją NPM.

Agent v5

Aby włączyć zbieranie procesów na żywo z Agentem v5, użyj poniższej konfiguracji:

datadog_config:
  process_agent_enabled: true
datadog_config_ex:
  process.config:
    scrub_args: true
    custom_sensitive_words: "<PIERWSZE_SŁOWO>,<DRUGIE_SŁOWO>"

Wersje

Domyślnie, aktualna główna wersja roli Ansible Datadog instaluje Agenta v7. Zmienne datadog_agent_version i datadog_agent_major_version są dostępne, aby kontrolować wersję Agenta, która ma być zainstalowana.

Dla wersji 4+ tej roli, gdy datadog_agent_version jest używana do przypisania konkretnej wersji Agenta, rola wyprowadza nazwy wersji w zależności od systemu operacyjnego, aby dostosować się do schematów nazewnictwa wersji wspieranych systemów operacyjnych, na przykład:

  • 1:7.16.0-1 dla systemów opartych na Debiana i SUSE
  • 7.16.0-1 dla RedHat
  • 7.16.0-1 dla macOS
  • 7.16.0 dla Windows.

To umożliwia targeting hostów działających na różnych systemach operacyjnych w tym samym uruchomieniu Ansible, na przykład:

Dostarczona Instalacje System
datadog_agent_version: 7.16.0 1:7.16.0-1 Oparte na Debianie i SUSE
datadog_agent_version: 7.16.0 7.16.0-1 Oparte na RedHat
datadog_agent_version: 7.16.0 7.16.0-1 macOS
datadog_agent_version: 7.16.0 7.16.0 Windows
datadog_agent_version: 1:7.16.0-1 1:7.16.0-1 Oparte na Debianie i SUSE
datadog_agent_version: 1:7.16.0-1 7.16.0-1 Oparte na RedHat
datadog_agent_version: 1:7.16.0-1 7.16.0 Windows

Uwaga: Jeśli wersja nie jest podana, rola używa 1 jako epoki i 1 jako numeru wydania.

Agent v5 (starsza wersja):

Rola Ansible Datadog obsługuje Agenta Datadog v5 tylko dla Linuxa. Aby zainstalować Agenta v5, użyj datadog_agent_major_version: 5, aby zainstalować najnowszą wersję Agenta v5 lub ustaw datadog_agent_version na konkretną wersję Agenta v5. Uwaga: Zmienna datadog_agent5 jest przestarzała i została usunięta.

Repozytoria

Linux

Gdy zmienne datadog_apt_repo, datadog_yum_repo i datadog_zypper_repo nie są ustawione, używane są oficjalne repozytoria Datadog dla głównej wersji ustawionej w datadog_agent_major_version:

# Domyślne repozytorium apt Domyślne repozytorium yum Domyślne repozytorium zypper
5 deb https://apt.datadoghq.com stable main https://yum.datadoghq.com/rpm https://yum.datadoghq.com/suse/rpm
6 deb https://apt.datadoghq.com stable 6 https://yum.datadoghq.com/stable/6 https://yum.datadoghq.com/suse/stable/6
7 deb https://apt.datadoghq.com stable 7 https://yum.datadoghq.com/stable/7 https://yum.datadoghq.com/suse/stable/7

Aby nadpisać domyślne zachowanie, ustaw te zmienne na coś innego niż pusty ciąg.

Jeśli wcześniej używałeś zmiennych Agenta v5, użyj nowych zmiennych poniżej z datadog_agent_major_version ustawionym na 5 lub datadog_agent_version przypisanym do konkretnej wersji Agenta v5.

Stara Nowa
datadog_agent5_apt_repo datadog_apt_repo
datadog_agent5_yum_repo datadog_yum_repo
datadog_agent5_zypper_repo datadog_zypper_repo

Od wersji 4.9.0 zmienna use_apt_backup_keyserver została usunięta, ponieważ klucze APT są uzyskiwane z https://keys.datadoghq.com.

Windows

Gdy zmienna datadog_windows_download_url nie jest ustawiona, używany jest oficjalny pakiet MSI Windows odpowiadający datadog_agent_major_version:

Wersja Agenta Domyślny adres URL pakietu Windows MSI
6 https://s3.amazonaws.com/ddagent-windows-stable/datadog-agent-6-latest.amd64.msi
7 https://s3.amazonaws.com/ddagent-windows-stable/datadog-agent-7-latest.amd64.msi

Aby nadpisać domyślne zachowanie, ustaw tę zmienną na cokolwiek innego niż pusty ciąg.

macOS

Gdy zmienna datadog_macos_download_url nie jest ustawiona, używany jest oficjalny pakiet DMG dla macOS odpowiadający datadog_agent_major_version:

Wersja Agenta Domyślny adres URL pakietu DMG dla macOS
6 https://install.datadoghq.com/datadog-agent-6-latest.dmg
7 https://install.datadoghq.com/datadog-agent-7-latest.dmg

Aby nadpisać domyślne zachowanie, ustaw tę zmienną na coś innego niż pusty ciąg.

Aktualizacja

Aby zaktualizować z Agenta v6 do v7, użyj datadog_agent_major_version: 7, aby zainstalować najnowszą wersję lub ustaw datadog_agent_version na konkretną wersję Agenta v7. Użyj podobnej logiki, aby zaktualizować z Agenta v5 do v6.

Instalacja integracji

Dostępne dla Agenta v6.8+

Użyj zasobu datadog_integration, aby zainstalować określoną wersję integracji Datadog. Pamiętaj, że Agent ma już zainstalowane podstawowe integracje. To polecenie jest przydatne do aktualizacji konkretnej integracji bez aktualizacji całego Agenta. Po szczegóły zobacz zarządzanie integracjami.

Jeśli chcesz skonfigurować integrację, odnies się do akapitu datadog_checks tutaj.

Dostępne akcje:

  • install: Instaluje określoną wersję integracji.
  • remove: Usuwa integrację.
Integracje osób trzecich

Integracje społeczności Datadog oraz Rynek Datadog można zainstalować przy użyciu zasobu datadog_integration. Uwaga: Te integracje uważane są za "third party", więc należy ustawić third_party: true – zobacz poniższy przykład.

Składnia
  datadog_integration:
    <NAZWA_INTEGRACJI>:
      action: <DZIAŁANIE>
      version: <WERSJA_DO_ZAINSTALOWANIA>

Aby zainstalować integracje osób trzecich, ustaw third_party na true:

  datadog_integration:
    <NAZWA_INTEGRACJI>:
      action: <DZIAŁANIE>
      version: <WERSJA_DO_ZAINSTALOWANIA>
      third_party: true
Przykład

Ten przykład instaluje wersję 1.11.0 integracji ElasticSearch i usuwa integrację postgres.

 datadog_integration:
   datadog-elastic:
     action: install
     version: 1.11.0
   datadog-postgres:
     action: remove

Aby zobaczyć dostępne wersje integracji Datadog, zobacz ich plik CHANGELOG.md w repozytorium integracji-core.

Downgrade

Aby obniżyć do wcześniejszej wersji Agenta:

  1. Ustaw datadog_agent_version na konkretną wersję, na przykład: 5.32.5.
  2. Ustaw datadog_agent_allow_downgrade na yes.

Uwaga:

  • Downgrady nie są wspierane w systemach Windows.

Playbooki

Poniżej znajdują się przykładowe playbooki, które mogą pomóc w korzystaniu z roli Ansible Datadog.

Poniższy przykład wysyła dane do Datadog US (domyślnie), włącza logi, NPM oraz konfiguruje kilka kontroli.

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_api_key: "<TWÓJ_KLUCZ_API_DD>"
    datadog_agent_version: "7.16.0"
    datadog_config:
      tags:
        - "<KLUCZ>:<WARTOŚĆ>"
        - "<KLUCZ>:<WARTOŚĆ>"
      log_level: INFO
      apm_config:
        enabled: true
      logs_enabled: true  # dostępne w Agencie v6 i v7
    datadog_checks:
      process:
        init_config:
        instances:
          - name: ssh
            search_string: ['ssh', 'sshd' ]
          - name: syslog
            search_string: ['rsyslog' ]
            cpu_check_interval: 0.2
            exact_match: true
            ignore_denied_access: true
      ssh_check:
        init_config:
        instances:
          - host: localhost
            port: 22
            username: root
            password: <TWOJE_HASŁO>
            sftp_check: True
            private_key_file:
            add_missing_keys: True
      nginx:
        init_config:
        instances:
          - nginx_status_url: http://example.com/nginx_status/
            tags:
              - "source:nginx"
              - "instance:foo"
          - nginx_status_url: http://example2.com:1234/nginx_status/
            tags:
              - "source:nginx"
              - "<KLUCZ>:<WARTOŚĆ>"

        # Zbieranie logów jest dostępne w Agencie 6 i 7
        logs:
          - type: file
            path: /var/log/access.log
            service: myapp
            source: nginx
            sourcecategory: http_web_access
          - type: file
            path: /var/log/error.log
            service: nginx
            source: nginx
            sourcecategory: http_web_access
    # datadog_integration jest dostępny w Agencie 6.8+
    datadog_integration:
      datadog-elastic:
        action: install
        version: 1.11.0
      datadog-postgres:
        action: remove
    network_config:
      enabled: true

Agent v6

Ten przykład instaluje najnowszy Agent v6:

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_agent_major_version: 6
    datadog_api_key: "<TWÓJ_KLUCZ_API_DD>"

Konfiguracja strony

Jeśli korzystasz z innej strony niż domyślna datadoghq.com, ustaw zmienną datadog_site na odpowiedni adres URL (np. datadoghq.eu, us3.datadoghq.com).

Ten przykład wysyła dane na stronę UE:

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_site: "datadoghq.eu"
    datadog_api_key: "<TWÓJ_KLUCZ_API_DD>"

Windows

Na Windowsie usuń opcję become: yes, aby rola nie zawiodła. Poniżej znajdują się dwie metody, aby sprawić, że przykładowe playbooki działały z hostami Windows:

Plik inwentarza

Użycie pliku inwentarza jest zalecaną metodą. Ustaw opcję ansible_become na no w pliku inwentarza dla każdego hosta Windows:

[servers]
linux1 ansible_host=127.0.0.1
linux2 ansible_host=127.0.0.2
windows1 ansible_host=127.0.0.3 ansible_become=no
windows2 ansible_host=127.0.0.4 ansible_become=no

Aby uniknąć powtarzania tej samej konfiguracji dla wszystkich hostów Windows, grupuj je i ustaw zmienną na poziomie grupy:

[linux]
linux1 ansible_host=127.0.0.1
linux2 ansible_host=127.0.0.2

[windows]
windows1 ansible_host=127.0.0.3
windows2 ansible_host=127.0.0.4

[windows:vars]
ansible_become=no

Plik playbooka

Alternatywnie, jeśli twój playbook działa tylko na hostach Windows, użyj poniższego wycinka w pliku playbooka:

- hosts: servers
  roles:
    - { role: datadog.datadog }
  vars:
    ...

Uwaga: Ta konfiguracja zakończy się niepowodzeniem na hostach Linux. Używaj jej tylko, jeśli playbook dotyczy wyłącznie hostów Windows. W przeciwnym razie użyj metody pliku inwentarza.

Odinstalowanie

Na Windowsie można odinstalować Agenta używając poniższego kodu w swojej roli Ansible:

- name: Sprawdź, czy Agent Datadog jest zainstalowany
  win_shell: |
    (@(Get-ChildItem -Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -Recurse) | Where {$_.GetValue("DisplayName") -like "Datadog Agent" }).PSChildName
  register: agent_installed_result
- name: Ustaw fakt zainstalowanego Agenta Datadog
  set_fact:
    agent_installed: "{{ agent_installed_result.stdout | trim }}"
- name: Odinstaluj Agenta Datadog
  win_package:
    product_id: "{{ agent_installed }}"
    state: absent
  when: agent_installed != ""

Rozwiązywanie problemów

Debian stretch

Uwaga: ta informacja dotyczy wersji roli przed 4.9.0. Od wersji 4.9.0, moduł apt_key nie jest już używany przez rolę.

Na Debianie Stretch moduł apt_key, używany przez rolę, wymaga dodatkowego zależności systemowego, aby działał poprawnie. Zależność (dirmngr) nie jest dostarczana przez moduł. Dodaj następującą konfigurację do swoich playbooków, aby skorzystać z obecnej roli:

---
- hosts: all
  pre_tasks:
    - name: Debian Stretch wymaga pakietu dirmngr, aby użyć apt_key
      become: yes
      apt:
        name: dirmngr
        state: present
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_api_key: "<TWÓJ_KLUCZ_API_DD>"

CentOS 6/7 z interpreteren Pythona 3 i Ansible 2.10.x lub poniżej

Moduł Pythona yum, który jest używany w tej roli do instalacji Agenta na hostach opartych na CentOS, jest dostępny tylko w Pythonie 2, jeśli używana jest Ansible 2.10.x lub poniżej. W takim przypadku musiałby być użyty menedżer pakietów dnf.

Jednak dnf oraz moduł Pythona dnf nie są domyślnie instalowane na hostach opartych na CentOS przed CentOS 8. W takim przypadku niemożliwe jest zainstalowanie Agenta, gdy używany jest interpreter Pythona 3.

Ta rola kończy się niepowodzeniem wcześnie, gdy ta sytuacja zostanie wykryta, aby wskazać, że potrzebna jest Ansible 2.11+ lub interpreter Pythona 2 podczas instalacji Agenta na CentOS / RHEL < 8.

Aby obejść tę wczesną detekcję błędu (na przykład, jeśli dnf i pakiet python3-dnf są dostępne na twoim hoście), ustaw zmienną datadog_ignore_old_centos_python3_error na true.

Windows

Z powodu krytycznego błędu w wersjach Agenta 6.14.0 i 6.14.1 na Windows, instalacja tych wersji jest zablokowana (począwszy od wersji 3.3.0 tej roli).

UWAGA: Ansible kończy działanie w systemie Windows, jeśli datadog_agent_version jest ustawione na 6.14.0 lub 6.14.1. Użyj 6.14.2 lub wyższej.

Jeśli aktualizujesz z 6.14.0 lub 6.14.1 na Windowsie, użyj następujących kroków:

  1. Zaktualizuj obecną rolę Ansible datadog.datadog do najnowszej wersji (>=3.3.0).
  2. Ustaw datadog_agent_version na 6.14.2 lub wyżej (domyślnie jest to wersja najnowsza).

Dla więcej szczegółów, zobacz Krytyczny błąd w odinstalatorze dla Agenta Datadog 6.14.0 i 6.14.1 na Windows.

Ubuntu 20.04 zepsuty przez service_facts

Uruchamianie modułu service_facts na Ubuntu 20.04 powoduje następujący błąd:

localhost | FAILED! => {
    "changed": false,
    "msg": "Malformed output discovered from systemd list-unit-files: accounts-daemon.service                    enabled         enabled      "
}

Aby to naprawić, zaktualizuj Ansible do v2.9.8 lub wyżej.

Brakujący klucz API

Rozpoczynając od roli 4.21, klucz API jest obligatoryjny, aby rola mogła działać.

Jeśli chcesz zainstalować agenta przez Ansible, ale nie chcesz podać klucza API (na przykład, jeśli wbudowujesz go w obraz kontenera/VM), możesz:

  • Określić przykładowy klucz API i wymienić go później
  • Wyłączyć zarządzanie konfiguracją (datadog_manage_config: false)
O projekcie

Install Datadog agent and configure checks

Zainstaluj
ansible-galaxy install datadog.datadog
Licencja
apache-2.0
Pobrania
16.5M
Właściciel