Skip to content

arenadotio/ansible-datadog

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ansible Datadog Role

Ansible Galaxy Build Status

Install and configure Datadog base agent & checks.

Supports most Debian and RHEL-based Linux distributions.

Installation

ansible-galaxy install Datadog.datadog

Role Variables

  • datadog_api_key - Your Datadog API key.
  • datadog_agent_version - The pinned version of the Agent to install (optional, but highly recommended) Examples: 1:5.12.3-1 on apt-based platforms, 5.12.3-1 on yum-based platforms
  • datadog_checks - YAML configuration for agent checks to drop into /etc/dd-agent/conf.d.
  • datadog_config - Settings to place in the /etc/dd-agent/datadog.conf INI file that go under the [Main] section.
  • datadog_config_ex - Extra INI sections to go in /etc/dd-agent/datadog.conf (optional).
  • datadog_process_checks - Array of process checks and options (DEPRECATED: use process under datadog_checks instead)
  • datadog_apt_repo - Override default Datadog apt repository
  • datadog_apt_key_url - Override default url to Datadog apt key
  • datadog_apt_key_url_new - Override default url to the new Datadog apt key (in the near future the apt repo will have to be checked against this new key instead of the current key)
  • datadog_agent_allow_downgrade - Set to yes to allow agent downgrades on apt-based platforms (use with caution, see defaults/main.yml for details)

Agent 6 (beta)

This role includes experimental support of the beta versions of Datadog Agent 6.0 on apt-based platforms. See below for usage. General information on the Datadog Agent 6 is available in the datadog-agent repo.

To upgrade or install agent6, you need to:

  • set datadog_agent6 to true
  • either set datadog_agent_version to an existing agent6 version (recommended) or leave it empty to always install the latest version.

To downgrade from agent6 to agent5, you need to:

  • set datadog_agent6 to false
  • pin datadog_agent_version to an existing agent5 version
  • set datadog_agent_allow_downgrade to yes

Variables:

  • datadog_agent6 - install an agent6 instead of agent5 (default to false)
  • datadog_agent6_apt_repo - Override default Datadog apt repository for agent6

Dependencies

None

Example Playbooks

- hosts: servers
  roles:
    - { role: Datadog.datadog, become: yes }  # On Ansible < 1.9, use `sudo: yes` instead of `become: yes`
  vars:
    datadog_api_key: "123456"
    datadog_agent_version: "1:5.12.3-1" # for apt-based platforms, use a `5.12.3-1` format on yum-based platforms
    datadog_config:
      tags: "mytag0, mytag1"
      log_level: INFO
      apm_enabled: "true" # has to be set as a string
      log_enabled: true   # log collection is available on agent 6
    datadog_config_ex:
      trace.config:
        env: dev
      trace.concentrator:
        extra_aggregators: version
    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: changeme
            sftp_check: True
            private_key_file:
            add_missing_keys: True
      nginx:
        init_config:
        instances:
          - nginx_status_url: http://example.com/nginx_status/
            tags:
              - instance:foo
          - nginx_status_url: http://example2.com:1234/nginx_status/
            tags:
              - instance:bar
        #Log collection is available on agent 6
        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
         
- hosts: servers
  roles:
    - { role: Datadog.datadog, become: yes, datadog_api_key: "mykey" }  # On Ansible < 1.9, use `sudo: yes` instead of `become: yes`

Known Issues and Workarounds

On Debian Stretch, the apt_key module that the role uses requires an additional system dependency to work correctly. Unfortunately that dependency (dirmngr) is not provided by the module. To work around this, you can add the following to the playbooks that make use of the present role:

---
- hosts: all
  pre_tasks:
    - name: Debian Stretch requires dirmngr package to be installed in order to use apt_key
      become: yes  # On Ansible < 1.9, use `sudo: yes` instead of `become: yes`
      apt:
        name: dirmngr
        state: present

  roles:
    - { role: Datadog.datadog, become: yes, datadog_api_key: "mykey" }  # On Ansible < 1.9, use `sudo: yes` instead of `become: yes`

License

Apache2

Author Information

[email protected]

[email protected] --Forked from [email protected]

Datadog [email protected] --Forked from [email protected]

Packages

No packages published

Languages

  • Ruby 100.0%