Skip to content
Advertisement

instrument datadog agent by the location of logs file with datadog ansible role

I tried to enable logs collecting with datadog ansible role,

but I can’t figure out why the logs are not sent to the Datadog ui

I found an example of a playbook in the role GitHub repo,

- hosts: servers
  roles:
    - { role: datadog.datadog, become: yes }
  vars:
    datadog_api_key: "<YOUR_DD_API_KEY>"
    datadog_agent_version: "7.16.0"
    datadog_config:
      tags:
        - "<KEY>:<VALUE>"
        - "<KEY>:<VALUE>"
      log_level: INFO
      apm_config:
        enabled: true
      logs_enabled: true  # available with Agent v6 and 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: <YOUR_PASSWORD>
            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"
              - "<KEY>:<VALUE>"

        #Log collection is available on Agent 6 and 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 is available on Agent 6.8+
    datadog_integration:
      datadog-elastic:
        action: install
        version: 1.11.0
      datadog-postgres:
        action: remove
    network_config:
      enabled: true

i have just a tomcat server logging to a file and I want datadog to take those logs file and send them to my datadog account!

thanks in advance

# my code
- name: install the agent on targets
          include_role:
            name: datadog.datadog
          vars: 
            datadog_api_key: "myApiKey"
            datadog_site: "datadoghq.com"
            datadog_config:
              log_level: INFO
              apm_config:
                enabled: true
              logs_enabled: true
              logs:
                - type: file
                  path: /home/ubuntu/web-app/tomcatlogs/logs/*.log
                  service: myapp
                  source: tomcat

Advertisement

Answer

I figured out how to do it,

at the bottom line is just about specifying a service (tomcat, nginx, java …) and the Ansible role will create the files needed to complete your configuration,

hope this can help someone

- name: install the agent on targets
      include_role:
        name: datadog.datadog
      vars: 
        datadog_api_key: "YOUR_API"
        datadog_site: "datadoghq.com"
        datadog_config:
          log_level: INFO
          apm_config:
            enabled: true
          logs_enabled: true
        datadog_checks:
          tomcat:
            logs:
              - type: file
                path: /home/ubuntu/web-app/tomcatlogs/logs/*.log
                service: myapp
                source: tomcat
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement