🚀 DevOps & SRE Certification Program 📅 Starting: 1st of Every Month 🤝 +91 8409492687 🔍 Contact@DevOpsSchool.com

Upgrade & Secure Your Future with DevOps, SRE, DevSecOps, MLOps!

We spend hours on Instagram and YouTube and waste money on coffee and fast food, but won’t spend 30 minutes a day learning skills to boost our careers.
Master in DevOps, SRE, DevSecOps & MLOps!

Learn from Guru Rajesh Kumar and double your salary in just one year.


Get Started Now!

Configure Ansible for Deployment of Datadog Agent in Multiple Linux Servers

Step 1 – Install Ansible tool in your workstation

Step 2 – Write a Ansible playbook

## All options defined here are available to all instances.
#
init_config:
## @param proxy - mapping - optional
## Set HTTP or HTTPS proxies for all instances. Use the `no_proxy` list
## to specify hosts that must bypass proxies.
##
## The SOCKS protocol is also supported like so:
##
## socks5://user:pass@host:port
##
## Using the scheme `socks5` causes the DNS resolution to happen on the
## client, rather than on the proxy server. This is in line with `curl`,
## which uses the scheme to decide whether to do the DNS resolution on
## the client or proxy. If you want to resolve the domains on the proxy
## server, use `socks5h` as the scheme.
#
# proxy:
# http: http://<PROXY_SERVER_FOR_HTTP>:<PORT>
# https: https://<PROXY_SERVER_FOR_HTTPS>:<PORT>
# no_proxy:
# - <HOSTNAME_1>
# - <HOSTNAME_2>
## @param skip_proxy - boolean - optional - default: false
## If set to `true`, this makes the check bypass any proxy
## settings enabled and attempt to reach services directly.
#
# skip_proxy: false
## @param timeout - number - optional - default: 10
## The timeout for connecting to services.
#
# timeout: 10
## @param service - string - optional
## Attach the tag `service:<SERVICE>` to every metric, event, and service check emitted by this integration.
##
## Additionally, this sets the default `service` for every log source.
#
# service: <SERVICE>
## Every instance is scheduled independent of the others.
#
instances:
## @param apache_status_url - string - required
## Status url of your Apache server.
#
- apache_status_url: http://localhost/server-status?auto
## @param proxy - mapping - optional
## This overrides the `proxy` setting in `init_config`.
##
## Set HTTP or HTTPS proxies for this instance. Use the `no_proxy` list
## to specify hosts that must bypass proxies.
##
## The SOCKS protocol is also supported, for example:
##
## socks5://user:pass@host:port
##
## Using the scheme `socks5` causes the DNS resolution to happen on the
## client, rather than on the proxy server. This is in line with `curl`,
## which uses the scheme to decide whether to do the DNS resolution on
## the client or proxy. If you want to resolve the domains on the proxy
## server, use `socks5h` as the scheme.
#
# proxy:
# http: http://<PROXY_SERVER_FOR_HTTP>:<PORT>
# https: https://<PROXY_SERVER_FOR_HTTPS>:<PORT>
# no_proxy:
# - <HOSTNAME_1>
# - <HOSTNAME_2>
## @param skip_proxy - boolean - optional - default: false
## This overrides the `skip_proxy` setting in `init_config`.
##
## If set to `true`, this makes the check bypass any proxy
## settings enabled and attempt to reach services directly.
#
# skip_proxy: false
## @param auth_type - string - optional - default: basic
## The type of authentication to use. The available types (and related options) are:
##
## - basic
## |__ username
## |__ password
## |__ use_legacy_auth_encoding
## - digest
## |__ username
## |__ password
## - ntlm
## |__ ntlm_domain
## |__ password
## - kerberos
## |__ kerberos_auth
## |__ kerberos_cache
## |__ kerberos_delegate
## |__ kerberos_force_initiate
## |__ kerberos_hostname
## |__ kerberos_keytab
## |__ kerberos_principal
## - aws
## |__ aws_region
## |__ aws_host
## |__ aws_service
##
## The `aws` auth type relies on boto3 to automatically gather AWS credentials, for example: from `.aws/credentials`.
## Details: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html#configuring-credentials
#
# auth_type: basic
## @param use_legacy_auth_encoding - boolean - optional - default: true
## When `auth_type` is set to `basic`, this determines whether to encode as `latin1` rather than `utf-8`.
#
# use_legacy_auth_encoding: true
## @param username - string - optional
## The username to use if services are behind basic or digest auth.
#
# username: <USERNAME>
## @param password - string - optional
## The password to use if services are behind basic or NTLM auth.
#
# password: <PASSWORD>
## @param ntlm_domain - string - optional
## If your services use NTLM authentication, specify
## the domain used in the check. For NTLM Auth, append
## the username to domain, not as the `username` parameter.
#
# ntlm_domain: <NTLM_DOMAIN>\<USERNAME>
## @param kerberos_auth - string - optional - default: disabled
## If your services use Kerberos authentication, you can specify the Kerberos
## strategy to use between:
##
## - required
## - optional
## - disabled
##
## See https://github.com/requests/requests-kerberos#mutual-authentication
#
# kerberos_auth: disabled
## @param kerberos_cache - string - optional
## Sets the KRB5CCNAME environment variable.
## It should point to a credential cache with a valid TGT.
#
# kerberos_cache: <KERBEROS_CACHE>
## @param kerberos_delegate - boolean - optional - default: false
## Set to `true` to enable Kerberos delegation of credentials to a server that requests delegation.
##
## See https://github.com/requests/requests-kerberos#delegation
#
# kerberos_delegate: false
## @param kerberos_force_initiate - boolean - optional - default: false
## Set to `true` to preemptively initiate the Kerberos GSS exchange and
## present a Kerberos ticket on the initial request (and all subsequent).
##
## See https://github.com/requests/requests-kerberos#preemptive-authentication
#
# kerberos_force_initiate: false
## @param kerberos_hostname - string - optional
## Override the hostname used for the Kerberos GSS exchange if its DNS name doesn't
## match its Kerberos hostname, for example: behind a content switch or load balancer.
##
## See https://github.com/requests/requests-kerberos#hostname-override
#
# kerberos_hostname: <KERBEROS_HOSTNAME>
## @param kerberos_principal - string - optional
## Set an explicit principal, to force Kerberos to look for a
## matching credential cache for the named user.
##
## See https://github.com/requests/requests-kerberos#explicit-principal
#
# kerberos_principal: <KERBEROS_PRINCIPAL>
## @param kerberos_keytab - string - optional
## Set the path to your Kerberos key tab file.
#
# kerberos_keytab: <KEYTAB_FILE_PATH>
## @param aws_region - string - optional
## If your services require AWS Signature Version 4 signing, set the region.
##
## See https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
#
# aws_region: <AWS_REGION>
## @param aws_host - string - optional
## If your services require AWS Signature Version 4 signing, set the host.
##
## Note: This setting is not necessary for official integrations.
##
## See https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
#
# aws_host: <AWS_HOST>
## @param aws_service - string - optional
## If your services require AWS Signature Version 4 signing, set the service code. For a list
## of available service codes, see https://docs.aws.amazon.com/general/latest/gr/rande.html
##
## Note: This setting is not necessary for official integrations.
##
## See https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
#
# aws_service: <AWS_SERVICE>
## @param tls_verify - boolean - optional - default: true
## Instructs the check to validate the TLS certificate of services.
#
# tls_verify: true
## @param tls_use_host_header - boolean - optional - default: false
## If a `Host` header is set, this enables its use for SNI (matching against the TLS certificate CN or SAN).
#
# tls_use_host_header: false
## @param tls_ignore_warning - boolean - optional - default: false
## If `tls_verify` is disabled, security warnings are logged by the check.
## Disable those by setting `tls_ignore_warning` to true.
##
## Note: `tls_ignore_warning` set to true is currently only reliable if used by one instance of one integration.
## If enabled for multiple instances, spurious warnings might still appear even if `tls_ignore_warning` is set
## to true.
#
# tls_ignore_warning: false
## @param tls_cert - string - optional
## The path to a single file in PEM format containing a certificate as well as any
## number of CA certificates needed to establish the certificate's authenticity for
## use when connecting to services. It may also contain an unencrypted private key to use.
#
# tls_cert: <CERT_PATH>
## @param tls_private_key - string - optional
## The unencrypted private key to use for `tls_cert` when connecting to services. This is
## required if `tls_cert` is set and it does not already contain a private key.
#
# tls_private_key: <PRIVATE_KEY_PATH>
## @param tls_ca_cert - string - optional
## The path to a file of concatenated CA certificates in PEM format or a directory
## containing several CA certificates in PEM format. If a directory, the directory
## must have been processed using the c_rehash utility supplied with OpenSSL. See:
## https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html
#
# tls_ca_cert: <CA_CERT_PATH>
## @param headers - mapping - optional
## The headers parameter allows you to send specific headers with every request.
## You can use it for explicitly specifying the host header or adding headers for
## authorization purposes.
##
## This overrides any default headers.
#
# headers:
# Host: <ALTERNATIVE_HOSTNAME>
# X-Auth-Token: <AUTH_TOKEN>
## @param extra_headers - mapping - optional
## Additional headers to send with every request.
#
# extra_headers:
# Host: <ALTERNATIVE_HOSTNAME>
# X-Auth-Token: <AUTH_TOKEN>
## @param timeout - number - optional - default: 10
## The timeout for accessing services.
##
## This overrides the `timeout` setting in `init_config`.
#
# timeout: 10
## @param connect_timeout - number - optional
## The connect timeout for accessing services. Defaults to `timeout`.
#
# connect_timeout: <CONNECT_TIMEOUT>
## @param read_timeout - number - optional
## The read timeout for accessing services. Defaults to `timeout`.
#
# read_timeout: <READ_TIMEOUT>
## @param log_requests - boolean - optional - default: false
## Whether or not to debug log the HTTP(S) requests made, including the method and URL.
#
# log_requests: false
## @param persist_connections - boolean - optional - default: false
## Whether or not to persist cookies and use connection pooling for increased performance.
#
# persist_connections: false
## @param tags - list of strings - optional
## A list of tags to attach to every metric and service check emitted by this instance.
##
## Learn more about tagging at https://docs.datadoghq.com/tagging
#
# tags:
# - <KEY_1>:<VALUE_1>
# - <KEY_2>:<VALUE_2>
## @param service - string - optional
## Attach the tag `service:<SERVICE>` to every metric, event, and service check emitted by this integration.
##
## Overrides any `service` defined in the `init_config` section.
#
# service: <SERVICE>
## @param min_collection_interval - number - optional - default: 15
## This changes the collection interval of the check. For more information, see:
## https://docs.datadoghq.com/developers/write_agent_check/#collection-interval
#
# min_collection_interval: 15
## @param empty_default_hostname - boolean - optional - default: false
## This forces the check to send metrics with no hostname.
##
## This is useful for cluster-level checks.
#
# empty_default_hostname: false
## Log Section
##
## type - required - Type of log input source (tcp / udp / file / windows_event)
## port / path / channel_path - required - Set port if type is tcp or udp.
## Set path if type is file.
## Set channel_path if type is windows_event.
## source - required - Attribute that defines which Integration sent the logs.
## service - optional - The name of the service that generates the log.
## Overrides any `service` defined in the `init_config` section.
## tags - optional - Add tags to the collected logs.
##
## Discover Datadog log collection: https://docs.datadoghq.com/logs/log_collection/
#
# logs:
# - type: file
# path: /var/log/apache2/access.log
# source: apache
# service: apache
# - type: file
# path: /var/log/apache2/error.log
# source: apache
# service: apache
#########################
## Basic Configuration ##
#########################
## @param api_key - string - required
## The Datadog API key to associate your Agent's data with your organization.
## Create a new API key here: https://app.datadoghq.com/account/settings
#
api_key: c56b6585cafb2349950cf846e7bd9e82
## @param site - string - optional - default: datadoghq.com
## The site of the Datadog intake to send Agent data to.
## Set to 'datadoghq.eu' to send data to the EU site.
#
site: datadoghq.com
## @param dd_url - string - optional - default: https://app.datadoghq.com
## The host of the Datadog intake server to send metrics to, only set this option
## if you need the Agent to send metrics to a custom URL, it overrides the site
## setting defined in "site". It does not affect APM, Logs or Live Process intake which have their
## own "*_dd_url" settings.
#
# dd_url: https://app.datadoghq.com
## @param proxy - custom object - optional
## If you need a proxy to connect to the Internet, provide it here (default:
## disabled). Refer to https://docs.datadoghq.com/agent/proxy/ to understand how to use these settings.
## For Logs proxy information, refer to https://docs.datadoghq.com/agent/proxy/#proxy-for-logs
#
# proxy:
# https: http://<USERNAME>:<PASSWORD>@<PROXY_SERVER_FOR_HTTPS>:<PORT>
# http: http://<USERNAME>:<PASSWORD>@<PROXY_SERVER_FOR_HTTP>:<PORT>
# no_proxy:
# - <HOSTNAME-1>
# - <HOSTNAME-2>
## @param skip_ssl_validation - boolean - optional - default: false
## Setting this option to "true" tells the Agent to skip validation of SSL/TLS certificates.
#
# skip_ssl_validation: false
## @param force_tls_12 - boolean - optional - default: false
## Setting this option to "true" forces the Agent to only use TLS 1.2 when
## pushing data to the Datadog intake specified in "site" or "dd_url".
#
# force_tls_12: false
## @param hostname - string - optional - default: auto-detected
## Force the hostname name.
#
# hostname: <HOSTNAME_NAME>
## @param hostname_fqdn - boolean - optional - default: false
## When the Agent relies on the OS to determine the hostname, make it use the
## FQDN instead of the short hostname. Recommended value: true
## More information at https://dtdg.co/flag-hostname-fqdn
#
# hostname_fqdn: false
## @param tags - list of key:value elements - optional
## List of host tags. Attached in-app to every metric, event, log, trace, and service check emitted by this Agent.
##
## Learn more about tagging: https://docs.datadoghq.com/tagging/
#
# tags:
# - environment:dev
# - <TAG_KEY>:<TAG_VALUE>
## @param env - string - optional
## The environment name where the agent is running. Attached in-app to every
## metric, event, log, trace, and service check emitted by this Agent.
#
# env: <environment name>
## @param tag_value_split_separator - list of key:value elements - optional
## Split tag values according to a given separator. Only applies to host tags,
## and tags coming from container integrations. It does not apply to tags on dogstatsd metrics,
## and tags collected by other integrations.
##
## Example use-case:
##
## With a raw collected tag "foo:1;2;3", using the following configuration:
##
## tag_value_split_separator:
## foo: ;
##
## results in the raw tag being transformed into "foo:1", "foo:2", "foo:3" tags
#
# tag_value_split_separator:
# - <TAG_KEY>: <SEPARATOR>
## @param checks_tag_cardinality - string - optional - default: low
## Configure the level of granularity of tags to send for checks metrics and events. Choices are:
## * low: add tags about low-cardinality objects (clusters, hosts, deployments, container images, ...)
## * orchestrator: add tags about pod, (in Kubernetes), or task (in ECS or Mesos) -level of cardinality
## * high: add tags about high-cardinality objects (individual containers, user IDs in requests, ...)
## WARNING: sending container tags for checks metrics may create more metrics
## (one per container instead of one per host). This may impact your custom metrics billing.
#
# checks_tag_cardinality: low
## @param dogstatsd_tag_cardinality - string - optional - default: low
## Configure the level of granularity of tags to send for DogStatsD metrics and events. Choices are:
## * low: add tags about low-cardinality objects (clusters, hosts, deployments, container images, ...)
## * orchestrator: add tags about pod, (in Kubernetes), or task (in ECS or Mesos) -level of cardinality
## * high: add tags about high-cardinality objects (individual containers, user IDs in requests, ...)
##
## WARNING: sending container tags for dogstatsd metrics may create more metrics
## (one per container instead of one per host). This may impact your custom metrics billing.
#
# dogstatsd_tag_cardinality: low
## @param histogram_aggregates - list of strings - optional - default: ["max", "median", "avg", "count"]
## Configure which aggregated value to compute.
## Possible values are: min, max, median, avg, sum and count.
#
# histogram_aggregates:
# - max
# - median
# - avg
# - count
## @param histogram_percentiles - list of strings - optional - default: ["0.95"]
## Configure which percentiles are computed by the Agent. It must be a list of float between 0 and 1.
## Warning: percentiles must be specified as yaml strings
#
# histogram_percentiles:
# - "0.95"
## @param histogram_copy_to_distribution - boolean - optional - default: false
## Copy histogram values to distributions for true global distributions (in beta)
## Note: This increases the number of custom metrics created.
#
# histogram_copy_to_distribution: false
## @param histogram_copy_to_distribution_prefix - string - optional
## A prefix to add to distribution metrics created when histogram_copy_to_distributions is true
#
# histogram_copy_to_distribution_prefix: "<PREFIX>"
## @param aggregator_stop_timeout - integer - optional - default: 2
## When stopping the agent, the Aggregator will try to flush out data ready for
## aggregation (metrics, events, ...). Data are flushed to the Forwarder in order
## to be sent to Datadog, therefore the Agent might take at most
## 'aggregator_stop_timeout'+'forwarder_stop_timeout' seconds to exit.
##
## You can set the maximum amount of time, in seconds, allocated to the
## Aggregator to do so. You can disable this feature by setting
## 'aggregator_stop_timeout' to 0.
#
# aggregator_stop_timeout: 2
#
# @param aggregator_buffer_size - integer - optional - default: 100
# The default buffer size for the aggregator use a sane value for most of the
# use cases, however, it could be useful to manually set it in order to trade
# RSS usage with better performances.
#
# aggregator_buffer_size: 100
## @param forwarder_timeout - integer - optional - default: 20
## Forwarder timeout in seconds
#
# forwarder_timeout: 20
## @param forwarder_retry_queue_max_size - integer - optional - default: 30
## The forwarder retries failed requests. Use this setting to change the
## maximum length of the forwarder's retry queue (each request in the queue
## takes no more than 2MB in memory)
#
# forwarder_retry_queue_max_size: 30
## @param forwarder_num_workers - integer - optional - default: 1
## The number of workers used by the forwarder.
#
# forwarder_num_workers: 1
## @param forwarder_stop_timeout - integer - optional - default: 2
## When stopping the agent, the Forwarder will try to flush all new
## transactions (not the ones in retry state). New transactions will be created
## as the Aggregator flush it's internal data too, therefore the Agent might take
## at most 'aggregator_stop_timeout'+'forwarder_stop_timeout' seconds to exit.
##
## You can set the maximum amount of time, in seconds, allocated to the
## Forwarder to send those transactions. You can disable this feature by setting
## 'forwarder_stop_timeout' to 0.
#
# forwarder_stop_timeout: 2
## @param cloud_provider_metadata - list of strings - optional - default: ["aws", "gcp", "azure", "alibaba"]
## This option restricts which cloud provider endpoint will be used by the
## agent to retrieve metadata. By default the agent will try # AWS, GCP, Azure
## and alibaba providers. Some cloud provider are not enabled by default to not
## trigger security alert when querying unknown IP (for example, when enabling
## Tencent on AWS).
## Setting an empty list will disable querying any cloud metadata endpoints
## (falling back on system metadata). Disabling metadata for the cloud provider in which an Agent runs may result in
## duplicated hosts in your Datadog account and missing Autodiscovery features
##
## Possible values are:
## "aws" AWS EC2, ECS/Fargate
## "gcp" Google Cloud Provider
## "azure" Azure
## "alibaba" Alibaba
## "tencent" Tencent
#
# cloud_provider_metadata:
# - "aws"
# - "gcp"
# - "azure"
# - "alibaba"
## @param collect_ec2_tags - boolean - optional - default: false
## Collect AWS EC2 custom tags as host tags.
#
# collect_ec2_tags: false
## @param ec2_metadata_timeout - integer - optional - default: 300
## Timeout in milliseconds on calls to the AWS EC2 metadata endpoints.
#
# ec2_metadata_timeout: 300
## @param ec2_prefer_imdsv2 - boolean - optional - default: false
## If this flag is true then the agent will request EC2 metadata using IMDS v2,
## which offers additional security for accessing metadata. However, in some
## situations (such as a containerized agent on a plain EC2 instance) it may
## require additional configuration on the AWS side. See the AWS guidelines
## for further details:
## https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html#instance-metadata-transition-to-version-2
#
# ec2_prefer_imdsv2: false
## @param collect_gce_tags - boolean - optional - default: true
## Collect Google Cloud Engine metadata as host tags
#
# collect_gce_tags: true
## @param exclude_gce_tags - list of strings - optional - default: ["kube-env", "kubelet-config", "containerd-configure-sh", "startup-script", "shutdown-script", "configure-sh", "sshKeys", "ssh-keys", "user-data", "cli-cert", "ipsec-cert", "ssl-cert", "google-container-manifest", "bosh_settings"]
## Google Cloud Engine metadata attribute to exclude from being converted into
## host tags -- only applicable when collect_gce_tags is true.
#
# exclude_gce_tags:
# - "kube-env"
# - "kubelet-config"
# - "containerd-configure-sh"
# - "startup-script"
# - "shutdown-script"
# - "configure-sh"
# - "sshKeys"
# - "ssh-keys"
# - "user-data"
# - "cli-cert"
# - "ipsec-cert"
# - "ssl-cert"
# - "google-container-manifest"
# - "bosh_settings"
## @param gce_send_project_id_tag - bool - optional - default: false
## Send the project ID host tag with the `project_id:` tag key in addition to
## the `project:` tag key.
#
# gce_send_project_id_tag: false
## @param gce_metadata_timeout - integer - optional - default: 1000
## Timeout in milliseconds on calls to the GCE metadata endpoints.
#
# gce_metadata_timeout: 1000
## @param flare_stripped_keys - list of strings - optional
## By default, the Agent removes known sensitive keys from Agent and Integrations yaml configs before
## including them in the flare.
## Use this parameter to define additional sensitive keys that the Agent should scrub from
## the yaml files included in the flare.
#
# flare_stripped_keys:
# - "sensitive_key_1"
# - "sensitive_key_2"
############################
## Advanced Configuration ##
############################
## @param confd_path - string - optional
## The path containing check configuration files. By default, uses the conf.d folder
## located in the Agent configuration folder.
#
# confd_path: ""
## @param additional_checksd - string - optional
## Additional path indicating where to search for Python checks. By default, uses the checks.d folder
## located in the Agent configuration folder.
#
# additional_checksd: <CHECKD_FOLDER_PATH>
## @param expvar_port - integer - optional - default: 5000
## The port for the go_expvar server.
#
# expvar_port: 5000
## @param cmd_port - integer - optional - default: 5001
## The port on which the IPC api listens.
#
# cmd_port: 5001
## @param GUI_port - integer - optional
## The port for the browser GUI to be served.
## Setting 'GUI_port: -1' turns off the GUI completely
## Default is:
## * Windows & macOS : `5002`
## * Linux: `-1`
##
#
# GUI_port: <GUI_PORT>
## @param health_port - integer - optional - default: 0
## The Agent can expose its health check on a dedicated http port.
## This is useful for orchestrators that support http probes.
## Default is 0 (disabled), set a valid port number (eg. 5555) to enable.
#
# health_port: 0
## @param check_runners - integer - optional - default: 4
## The `check_runners` refers to the number of concurrent check runners available for check instance execution.
## The scheduler attempts to spread the instances over the collection interval and will _at most_ be
## running the number of check runners instances concurrently.
## Setting the value to 1 would result in checks running sequentially.
##
## This is a sensitive setting, and we do NOT recommend changing the default number
## of check runners in the general case. The level of concurrency has effects on
## the Agent's: RSS memory, CPU load, resource contention overhead, etc.
#
# check_runners: 4
## @param enable_metadata_collection - boolean - optional - default: true
## Metadata collection should always be enabled, except if you are running several
## agents/dsd instances per host. In that case, only one Agent should have it on.
## WARNING: disabling it on every Agent leads to display and billing issues.
#
# enable_metadata_collection: true
## @param enable_gohai - boolean - optional - default: true
## Enable the gohai collection of systems data.
#
# enable_gohai: true
## @param server_timeout - integer - optional - default: 15
## IPC api server timeout in seconds.
#
# server_timeout: 15
## @param procfs_path - string - optional
## Some environments may have the procfs file system mounted in a miscellaneous
## location. The procfs_path configuration parameter provides a mechanism to
## override the standard default location: '/proc' - this setting trickles down to
## integrations and affect their behavior if they rely on the psutil python package.
#
# procfs_path: <PROCFS_PATH>
## @param disable_py3_validation - boolean - optional - default: false
## Disable Python3 validation of python checks.
#
# disable_py3_validation: false
#
## @param python3_linter_timeout - integer - optional - default: 120
## Timeout in seconds for validation of compatibility with python 3 when running python 2.
#
# python3_linter_timeout: 120
## @param memtrack_enabled - boolean - optional - default: true
## Enables tracking of memory allocations made from the python runtime loader.
#
# memtrack_enabled: true
## @param tracemalloc_debug - boolean - optional - default: false
## Enables debugging with tracemalloc for python checks.
## Please note that this option is only available when python_version is set to "3".
## Additionally when this option becomes effective the number of check runners is
## overridden to 1.
#
# tracemalloc_debug: false
## @param tracemalloc_whitelist - string - optional
## Comma-separated list of Python checks to enable tracemalloc for when `tracemalloc_debug` is true.
## By default, all Python checks are enabled.
#
# tracemalloc_whitelist: <TRACEMALLOC_WHITELIST>
## @param tracemalloc_blacklist - string - optional
## Comma-separated list of Python checks to disable tracemalloc for when `tracemalloc_debug` is true.
## By default, all Python checks are enabled. This setting takes precedence over `tracemalloc_whitelist`.
#
# tracemalloc_blacklist: <TRACEMALLOC_BLACKLIST>
## @param windows_use_pythonpath - boolean - optional
## Whether to honour the value of the PYTHONPATH env var when set on Windows.
## Disabled by default, so we only load Python libraries bundled with the Agent.
#
# windows_use_pythonpath: false
## @param secret_backend_command - string - optional
## `secret_backend_command` is the path to the script to execute to fetch secrets.
## The executable must have specific rights that differ on Windows and Linux.
##
## For more information see: https://github.com/DataDog/datadog-agent/blob/master/docs/agent/secrets.md
#
# secret_backend_command: <COMMAND_PATH>
## @param secret_backend_arguments - list of strings - optional
## If secret_backend_command is set, specify here a list of arguments to give to the command at each run.
#
# secret_backend_arguments:
# - <ARGUMENT_1>
# - <ARGUMENT_2>
## @param secret_backend_output_max_size - integer - optional - default: 1048576
## The size in bytes of the buffer used to store the command answer (apply to both stdout and stderr)
#
# secret_backend_output_max_size: 1048576
## @param secret_backend_timeout - integer - optional - default: 5
## The timeout to execute the command in second
#
# secret_backend_timeout: 5
## @param snmp_listener - custom object - optional
## Creates and schedules a listener to automatically discover your SNMP devices.
## Discovered devices can then be monitored with the SNMP integration by using
## the auto_conf.yaml file provided by default.
#
# snmp_listener:
## @param workers - integer - optional - default: 2
## The number of concurrent tasks used to discover SNMP devices. Increasing this value
## discovers devices faster but at the cost of increased resource consumption.
#
# workers: 2
## @param discovery_interval - integer - optional - default: 3600
## How often to discover new SNMP devices, in seconds. Decreasing this value
## discovers devices faster (within the limit of the time taken to scan subnets)
## but at the cost of increased resource consumption.
#
# discovery_interval: 3600
## @param allowed_failures - integer - optional - default: 3
## The number of failed requests to a given SNMP device before removing it from the list of monitored
## devices.
## If a device shuts down, the Agent stops monitoring it after `discovery_interval * allowed_failures` seconds.
#
# allowed_failures: 3
## @param configs - list - required
## The actual list of configurations used to discover SNMP devices in various subnets.
## Example:
## configs:
## - network: 10.0.0.0/24
## version: 1
## community: public
## - network: 10.0.1.0/28
## community: public
## ignored_ip_addresses:
## - 10.0.1.0
## - 10.0.1.1
#
# configs:
## @param network - string - required
## The subnet in CIDR format to scan for SNMP devices.
## All unignored IP addresses in the CIDR range are scanned.
## For optimal discovery time, be sure to use the smallest network mask
## possible as is appropriate for your network topology.
## Ex: 10.0.1.0/24
#
# - network: <NETWORK>
## @param ignored_ip_addresses - list of strings - optional
## A list of IP addresses to ignore when scanning the network.
#
# ignored_ip_addresses:
# - <IP_ADDRESS_1>
# - <IP_ADDRESS_2>
## @param port - integer - optional - default: 161
## The UDP port to use when connecting to SNMP devices.
#
# port: 161
## @param version - integer - optional - default: <BEST_GUESS>
## Set the version of the SNMP protocol. Available options are: `1`, `2` or `3`.
## If unset, the Agent tries to guess the correct version based on other configuration
## parameters, for example: if `user` is set, the Agent uses SNMP v3.
#
# version: <VERSION>
## @param timeout - integer - optional - default: 5
## The number of seconds before timing out.
#
# timeout: 5
## @param retries - integer - optional - default: 3
## The number of retries before failure.
#
# retries: 3
## @param community - string - optional
## Required for SNMP v1 & v2.
## Ex: 'public'
#
# community: <COMMUNITY>
## @param user - string - optional
## The username to connect to your SNMP devices.
## SNMPv3 only.
#
# user: <USERNAME>
## @param authentication_key - string - optional
## The passphrase to use with your Authentication type.
## SNMPv3 only.
#
# authentication_key: <AUTHENTICATION_KEY>
## @param authentication_protocol - string - optional
## The authentication protocol to use when connecting to your SNMP devices.
## Available options are: MD5, SHA.
## Defaults to MD5 when `authentication_key` is specified.
## SNMPv3 only.
#
# authentication_protocol: <AUTHENTICATION_PROTOCOL>
## @param privacy_key - string - optional
## The passphrase to use with your privacy protocol.
## SNMPv3 only.
#
# privacy_key: <PRIVACY_KEY>
## @param privacy_protocol - string - optional
## The privacy protocol to use when connecting to your SNMP devices.
## Available options are: DES, 3DES, AES, AES192, AES256, AES192C, AES256C.
## Defaults to DES when `privacy_key` is specified.
## SNMPv3 only.
#
# privacy_protocol: <PRIVACY_PROTOCOL>
## @param context_name - string - optional
## The name of your context (optional SNMP v3-only parameter).
#
# context_name: <CONTEXT_NAME>
## @param ad_identifier - string - optional - default: snmp
## A unique identifier to attach to devices from that subnetwork.
## When configuring the SNMP integration in snmp.d/auto_conf.yaml,
## specify the corresponding ad_identifier at the top of the file.
#
# ad_identifier: snmp
##################################
## Log collection Configuration ##
##################################
## @param logs_enabled - boolean - optional - default: false
## Enable Datadog Agent log collection by setting logs_enabled to true.
#
# logs_enabled: false
## @param logs_config - custom object - optional
## Enter specific configurations for your Log collection.
## Uncomment this parameter and the one below to enable them.
## See https://docs.datadoghq.com/agent/logs/
#
# logs_config:
## @param container_collect_all - boolean - optional - default: false
## Enable container log collection for all the containers (see ac_exclude to filter out containers)
#
# container_collect_all: false
## @param logs_dd_url - string - optional
## Define the endpoint and port to hit when using a proxy for logs. The logs are forwarded in TCP
## therefore the proxy must be able to handle TCP connections.
#
# logs_dd_url: <ENDPOINT>:<PORT>
## @param logs_no_ssl - boolean - optional - default: false
## Disable the SSL encryption. This parameter should only be used when logs are
## forwarded locally to a proxy. It is highly recommended to then handle the SSL encryption
## on the proxy side.
#
# logs_no_ssl: false
## @param processing_rules - list of custom objects - optional
## Global processing rules that are applied to all logs. The available rules are
## "exclude_at_match", "include_at_match" and "mask_sequences". More information in Datadog documentation:
## https://docs.datadoghq.com/agent/logs/advanced_log_collection/#global-processing-rules
#
# processing_rules:
# - type: <RULE_TYPE>
# name: <RULE_NAME>
# pattern: <RULE_PATTERN>
## @param use_http - boolean - optional - default: false
## By default, logs are sent through TCP, use this parameter
## to send logs in HTTPS batches to port 443
#
# use_http: true
## @param use_tcp - boolean - optional - default: false
## By default, logs are sent through HTTP if possible, use this parameter
## to send logs in TCP
#
# use_tcp: true
## @param use_compression - boolean - optional - default: false
## This parameter is available when sending logs with HTTPS. If enabled, the Agent
## compresses logs before sending them.
#
# use_compression: true
## @param compression_level - integer - optional - default: 6
## The compression_level parameter accepts values from 0 (no compression)
## to 9 (maximum compression but higher resource usage).
#
# compression_level: 6
####################################
## Trace Collection Configuration ##
####################################
## @param apm_config - custom object - optional
## Enter specific configurations for your trace collection.
## Uncomment this parameter and the one below to enable them.
## See https://docs.datadoghq.com/agent/apm/
#
# apm_config:
## @param enabled - boolean - optional - default: true
## Set to true to enable the APM Agent.
#
# enabled: true
## @param env - string - optional - default: none
## The environment tag that Traces should be tagged with.
## If not set the value will be inherited, in order, from the top level
## "env" config option if set and then from the 'env:' tag if present in the
## 'tags' top level config option.
#
# env: none
## @param receiver_port - integer - optional - default: 8126
## The port that the trace receiver should listen on.
#
# receiver_port: 8126
## @param receiver_socket - string - optional
## Accept traces through Unix Domain Sockets.
## It is off by default. When set, it must point to a valid socket file.
#
# receiver_socket: <UNIX_SOCKET_PATH>
## @param apm_non_local_traffic - boolean - optional - default: false
## Set to true so the Trace Agent listens for non local traffic,
## i.e if Traces are being sent to this Agent from another host/container
#
# apm_non_local_traffic: false
## @param apm_dd_url - string - optional
## Define the endpoint and port to hit when using a proxy for APM. The traces are forwarded in TCP
## therefore the proxy must be able to handle TCP connections.
#
# apm_dd_url: <ENDPOINT>:<PORT>
## @param extra_sample_rate - float - optional - default: 1.0
## Extra global sample rate to apply on all the traces
## This sample rate is combined to the sample rate from the sampler logic, still promoting interesting traces.
## From 1 (no extra rate) to 0 (don't sample at all)
#
# extra_sample_rate: 1.0
## @param max_traces_per_second - integer - optional - default: 10
## Maximum number of traces per second to sample. The limit is applied over an average over
## a few minutes ; much bigger spikes are possible. Set to 0 to disable the limit.
#
# max_traces_per_second: 10
## @param max_events_per_second - integer - optional - default: 200
## Maximum number of APM events per second to sample.
#
# max_events_per_second: 200
## @param max_memory - integer - optional - default: 500000000
## This value is what the Agent aims to use in terms of memory. If surpassed, the API
## rate limits incoming requests to aim and stay below this value.
## Note: The Agent process is killed if it uses more than 150% of `max_memory`.
## Set the `max_memory` parameter to `0` to disable the memory limitation.
#
# max_memory: 500000000
## @param max_cpu_percent - integer - optional - default: 50
## The CPU percentage that the Agent aims to use. If surpassed, the API rate limits
## incoming requests to aim and stay below this value. Examples: 50 = half a core, 200 = two cores.
## Set `max_cpu_percent` to `0` to disable rate limiting based on CPU usage.
#
# max_cpu_percent: 50
## @param obfuscation - object - optional
## Defines obfuscation rules for sensitive data. Disabled by default.
## See https://docs.datadoghq.com/tracing/guide/agent-obfuscation
#
# obfuscation:
# <OBFUSCATION_CONFIGURATION>
## @param replace_tags - list of objects - optional
## Defines a set of rules to replace or remove certain resources, tags containing
## potentially sensitive information.
## Each rules has to contain:
## * name - string - The tag name to replace, for resources use "resource.name".
## * pattern - string - The pattern to match the desired content to replace
## * repl - string - what to inline if the pattern is matched
##
## See https://docs.datadoghq.com/tracing/guide/security/#replace-rules
##
#
# replace_tags:
# - name: "<TAG_NAME>"
# pattern: "<REGEX_PATTERN>"
# repl: "<PATTERN_TO_INLINE>"
## @param ignore_resources - list of strings - optional
## A blacklist of regular expressions can be provided to disable certain traces based on their resource name
## all entries must be surrounded by double quotes and separated by commas.
#
# ignore_resources: ["(GET|POST) /healthcheck"]
## @param log_file - string - optional
## The full path to the file where APM-agent logs are written.
#
# log_file: <APM_LOG_FILE_PATH>
## @param log_throttling - boolean - default: true
## Limits the total number of warnings and errors to 10 for every 10 second interval.
#
# log_throttling: true
######################################
## Process Collection Configuration ##
######################################
## @param process_config - custom object - optional
## Enter specific configurations for your Process data collection.
## Uncomment this parameter and the one below to enable them.
## See https://docs.datadoghq.com/graphing/infrastructure/process/
#
process_config:
## @param enabled - string - optional - default: "false"
## A string indicating the enabled state of the Process Agent:
## * "false" : The Agent collects only containers information.
## * "true" : The Agent collects containers and processes information.
## * "disabled" : The Agent process collection is disabled.
#
enabled: "true"
## @param expvar_port - string - optional - default: 6062
## Port for the debug endpoints for the process Agent.
#
# expvar_port: 6062
## @param log_file - string - optional
## The full path to the file where process Agent logs are written.
#
# log_file: <PROCESS_LOG_FILE_PATH>
## @param intervals - custom object - optional - default: 10s for normal checks and 2s for others.
## The interval, in seconds, at which the Agent runs each check. If you want consistent
## behavior between real-time, set the `container_realtime` and `process_realtime` intervals to 10.
#
# intervals:
# container: 10
# container_realtime: 2
# process: 10
# process_realtime: 2
## @param blacklist_patterns - list of strings - optional
## A list of regex patterns that exclude processes if matched.
#
# blacklist_patterns:
# - <REGEX>
## @param queue_size - integer - optional - default: 20
## How many check results to buffer in memory when POST fails.
#
# queue_size: 20
## @param max_per_message - integer - optional - default: 100
## The maximum number of processes or containers per message.
#
# max_per_message: 100
## @param dd_agent_bin - string - optional
## Overrides the path to the Agent bin used for getting the hostname. Defaults are:
## * Windows: <AGENT_DIRECTORY>\embedded\\agent.exe
## * Unix: /opt/datadog-agent/bin/agent/agent
#
# dd_agent_bin: <AGENT_BIN_PATH>
## @param dd_agent_env - string - optional - default: ""
## Overrides of the environment we pass to fetch the hostname.
#
# dd_agent_env: ""
## @param scrub_args - boolean - optional - default: true
## Hide sensitive data on the Live Processes page.
#
# scrub_args: true
## @param custom_sensitive_words - list of strings - optional
## Define your own list of sensitive data to be merged with the default one.
## Read more on Datadog documentation:
## https://docs.datadoghq.com/graphing/infrastructure/process/#process-arguments-scrubbing
#
# custom_sensitive_words:
# - 'personal_key'
# - '*token'
# - 'sql*'
# - '*pass*d*'
#############################################
## Security Agent Compliance Configuration ##
#############################################
## @param compliance_config - custom object - optional
## Enter specific configuration for continuous compliance checks.
# compliance_config:
## @param enabled - boolean - optional - default: false
## Set to true to enable continuous compliance checks
#
# enabled: false
## @param dir - string - optional - default: /etc/datadog-agent/compliance.d
## Directory path for compliance checks configuration containing enabled benchmarks
#
# dir: /etc/datadog-agent/compliance.d
## @param check_interval - duration - optional - default: 20m
## Check interval (see https://golang.org/pkg/time/#ParseDuration for available options)
# check_interval: 20m
#############################
## DogStatsD Configuration ##
#############################
## @param use_dogstatsd - boolean - optional - default: true
## Set this option to false to disable the Agent DogStatsD server.
#
# use_dogstatsd: true
## @param dogstatsd_port - integer - optional - default: 8125
## Override the Agent DogStatsD port.
## Note: Make sure your client is sending to the same UDP port.
#
# dogstatsd_port: 8125
## @param bind_host - string - optional - default: localhost
## The host to listen on for Dogstatsd and traces. This is ignored by APM when
## `apm_config.non_local_traffic` is enabled and ignored by DogStatsD when `dogstatsd_non_local_traffic`
## is enabled. The trace-agent uses this host to send metrics to.
## The `localhost` default value is invalid in IPv6 environments where dogstatsd listens on "::1".
## To solve this problem, ensure Dogstatsd is listening on IPv4 by setting this value to "127.0.0.1".
#
# bind_host: localhost
## @param dogstatsd_socket - string - optional - default: ""
## Listen for Dogstatsd metrics on a Unix Socket (*nix only). Set to a valid filesystem path to enable.
#
# dogstatsd_socket: ""
## @param dogstatsd_origin_detection - boolean - optional - default: false
## When using Unix Socket, DogStatsD can tag metrics with container metadata.
## If running DogStatsD in a container, host PID mode (e.g. with --pid=host) is required.
#
# dogstatsd_origin_detection: false
## @param dogstatsd_buffer_size - integer - optional - default: 8192
## The buffer size use to receive statsd packets, in bytes.
#
# dogstatsd_buffer_size: 8192
## @param dogstatsd_non_local_traffic - boolean - optional - default: false
## Set to true to make DogStatsD listen to non local UDP traffic.
#
# dogstatsd_non_local_traffic: false
## @param dogstatsd_stats_enable - boolean - optional - default: false
## Publish DogStatsD's internal stats as Go expvars.
#
# dogstatsd_stats_enable: false
## @param dogstatsd_queue_size - integer - optional - default: 1024
## Configure the internal queue size of the Dogstatsd server.
## Reducing the size of this queue will reduce the maximum memory usage of the
## Dogstatsd server but as a trade-off, it could increase the number of packet drops.
#
# dogstatsd_queue_size: 1024
## @param dogstatsd_stats_buffer - integer - optional - default: 10
## Set how many items should be in the DogStatsD's stats circular buffer.
#
# dogstatsd_stats_buffer: 10
## @param dogstatsd_stats_port - integer - optional - default: 5000
## The port for the go_expvar server.
#
# dogstatsd_stats_port: 5000
## @param dogstatsd_so_rcvbuf - integer - optional - default: 0
## The number of bytes allocated to DogStatsD's socket receive buffer (POSIX system only).
## By default, the system sets this value. If you need to increase the size of this buffer
## but keep the OS default value the same, you can set DogStatsD's receive buffer size here.
## The maximum accepted value might change depending on the OS.
#
# dogstatsd_so_rcvbuf: 0
## @param dogstatsd_metrics_stats_enable - boolean - optional - default: false
## Set this parameter to true to have DogStatsD collects basic statistics (count/last seen)
## about the metrics it processsed. Use the Agent command "dogstatsd-stats" to visualize
## those statistics.
#
# dogstatsd_metrics_stats_enable: false
## @param dogstatsd_tags - list of key:value elements - optional
## Additional tags to append to all metrics, events and service checks received by
## this DogStatsD server.
#
# dogstatsd_tags:
# - <TAG_KEY>:<TAG_VALUE>
## @param dogstatsd_mapper_profiles - list of custom object - optional
## The profiles will be used to convert parts of metrics names into tags.
## If a profile prefix is matched, other profiles won't be tried even if that profile matching rules doesn't match.
## The profiles and matching rules are processed in the order defined in this configuration.
##
## For each profile, following fields are available:
## name (required): profile name
## prefix (required): mapping only applies to metrics with the prefix. If set to `*`, it will match everything.
## mappings: mapping rules, see below.
## For each mapping, following fields are available:
## match (required): pattern for matching the incoming metric name e.g. `test.job.duration.*`
## match_type (optional): pattern type can be `wildcard` (default) or `regex` e.g. `test\.job\.(\w+)\.(.*)`
## name (required): the metric name the metric should be mapped to e.g. `test.job.duration`
## tags (optional): list of key:value pair of tag key and tag value
## The value can use $1, $2, etc, that will be replaced by the corresponding element capture by `match` pattern
## This alternative syntax can also be used: ${1}, ${2}, etc
#
# dogstatsd_mapper_profiles:
# - name: <PROFILE_NAME> # e.g. "airflow", "consul", "some_database"
# prefix: <PROFILE_PREFIX> # e.g. "airflow.", "consul.", "some_database."
# mappings:
# - match: <METRIC_TO_MATCH> # e.g. `test.job.duration.*` to match `test.job.duration.my_job_name`
# match_type: <MATCH_TYPE> # e.g. `wildcard` or `regex`
# name: <MAPPED_METRIC_NAME> # e.g. `test.job.duration`
# tags:
# <TAG_KEY>: <TAG_VALUE_TO_EXPAND> # e.g. `job_name: "$1"`, $1 is replaced by value capture by *
# - match: 'test.worker.*.*.start_time' # to match `test.worker.<worker_type>.<worker_name>.start_time`
# name: 'test.worker.start_time'
# tags:
# worker_type: '$1'
# worker_name: '$2'
# - match: 'test\.task\.duration\.(\w+)\.(.*)' # no need to escape in yaml context using single quote
# match_type: regex
# name: 'test.task'
# tags:
# task_type: '$1'
# task_name: '$2'
## @param dogstatsd_mapper_cache_size - integer - optional - default: 1000
## Size of the cache (max number of mapping results) used by Dogstatsd mapping feature.
#
# dogstatsd_mapper_cache_size: 1000
## @param dogstatsd_entity_id_precedence - boolean - optional - default: false
## Disable enriching Dogstatsd metrics with tags from "origin detection" when Entity-ID is set.
#
# dogstatsd_entity_id_precedence: false
## @param statsd_forward_host - string - optional - default: ""
## Forward every packet received by the DogStatsD server to another statsd server.
## WARNING: Make sure that forwarded packets are regular statsd packets and not "DogStatsD" packets,
## as your other statsd server might not be able to handle them.
#
# statsd_forward_host: ""
## @param statsd_forward_port - integer - optional - default: 0
## Port or the "statsd_forward_host" to forward StatsD packet to.
#
# statsd_forward_port: 0
## @param statsd_metric_namespace - string - optional - default: ""
## Set a namespace for all StatsD metrics coming from this host.
## Each metric received is prefixed with the namespace before it's sent to Datadog.
#
# statsd_metric_namespace: ""
## @param metadata_providers - list of custom object - optional
## Metadata providers, add or remove from the list to enable or disable collection.
## Intervals are expressed in seconds. You can also set a provider's interval to 0
## to disable it.
#
# metadata_providers:
# - name: k8s
# interval: 60
#######################
## JMX Configuration ##
#######################
## @param jmx_custom_jars - list of strings - optional
## If you only run Autodiscovery tests, jmxfetch might fail to pick up custom_jar_paths
## set in the check templates. If that is the case, force custom jars here.
#
# jmx_custom_jars:
# - /jmx-jars/jboss-cli-client.jar
## @param jmx_use_cgroup_memory_limit - boolean - optional - default: false
## When running in a memory cgroup, openjdk 8u131 and higher can automatically adjust
## its heap memory usage in accordance to the cgroup/container's memory limit.
## The Agent set a Xmx of 200MB if none is configured.
## Note: OpenJDK version &lt; 8u131 or >= 10 as well as other JVMs might fail
## to start if this option is set.
#
# jmx_use_cgroup_memory_limit: false
## @param jmx_use_container_support - boolean - optional - default: false
## When running in a container, openjdk 10 and higher can automatically detect
## container specific configuration instead of querying the operating system
## to adjust resources allotted to the JVM.
## Note: openjdk versions prior to 10 and other JVMs might fail to start if
## this option is set.
#
# jmx_use_container_support: false
## @param jmx_max_restarts - integer - optional - default: 3
## Number of JMX restarts allowed in the restart-interval before giving up.
#
# jmx_max_restarts: 3
## @param jmx_restart_interval - integer - optional - default: 5
## Duration of the restart interval in seconds.
#
# jmx_restart_interval: 5
## @param jmx_check_period - integer - optional - default: 15000
## Duration of the period for check collections in milliseconds.
#
# jmx_check_period: 15000
## @param jmx_thread_pool_size - integer - optional - default: 3
## JMXFetch collects multiples instances concurrently. Defines the maximum level of concurrency:
## * Higher concurrency increases CPU utilization during metric collection.
## * Lower concurrency results in lower CPU usage but may increase the total collection time.
## A value of 1 processes instances serially.
#
# jmx_thread_pool_size: 3
## @param jmx_collection_timeout - integer - optional - default: 60
## Defines the maximum waiting period in seconds before timing up on metric collection.
#
# jmx_collection_timeout: 60
## @param jmx_reconnection_thread_pool_size - integer - optional - default: 3
## JMXFetch reconnects to multiples instances concurrently. Defines the maximum level of concurrency:
## * Higher concurrency increases CPU utilization during reconnection.
## * Lower concurrency results in lower CPU usage but may increase the total reconnection time
## A value of 1 processes instance reconnections serially.
#
# jmx_reconnection_thread_pool_size: 3
## @param jmx_reconnection_timeout - integer - optional - default: 60
## Determines the maximum waiting period in seconds before timing up on instance reconnection.
#
# jmx_reconnection_timeout: 60
###########################
## Logging Configuration ##
###########################
## @param log_level - string - optional - default: info
## Minimum log level of the Datadog Agent.
## Valid log levels are: trace, debug, info, warn, error, critical, and off.
## Note: When using the 'off' log level, quotes are mandatory.
#
# log_level: 'info'
## @param log_file - string - optional
## Path of the log file for the Datadog Agent.
## See https://docs.datadoghq.com/agent/guide/agent-log-files/
#
# log_file: <AGENT_LOG_FILE_PATH>
## @param log_format_json - boolean - optional - default: false
## Set to 'true' to output Agent logs in JSON format.
#
# log_format_json: false
## @param log_to_console - boolean - optional - default: true
## Set to 'false' to disable Agent logging to stdout.
#
# log_to_console: true
## @param disable_file_logging - boolean - optional - default: false
## Set to 'true' to disable logging to the log file.
#
# disable_file_logging: false
## @param log_file_max_size - custom - optional - default: 10MB
## Maximum size of one log file. Use either a size (e.g. 10MB) or
## provide value in bytes: 10485760
#
# log_file_max_size: 10MB
## @param log_file_max_rolls - integer - optional - default: 1
## Maximum amount of "old" log files to keep.
## Set to 0 to not limit the number of files to create.
#
# log_file_max_rolls: 1
## @param log_to_syslog - boolean - optional - default: false
## Set to 'true' to enable logging to syslog.
## Note: Even if this option is set to 'false', the service launcher of your environment
## may redirect the Agent process' stdout/stderr to syslog. In that case, if you wish
## to disable logging to syslog entirely, set 'log_to_console' to 'false' as well.
#
# log_to_syslog: false
## @param syslog_uri - string - optional
## Define a custom remote syslog uri if needed. If 'syslog_uri' is left undefined/empty,
## a local domain socket connection is attempted.
#
# syslog_uri: <SYSLOG_URI>
## @param syslog_rfc - boolean - optional - default: false
## Set to 'true' to output in an RFC 5424-compliant format for Agent logs.
#
# syslog_rfc: false
## @param syslog_pem - string - optional
## If TLS enabled, you must specify a path to a PEM certificate here.
#
# syslog_pem: <PEM_CERTIFICATE_PATH>
## @param syslog_key - string - optional
## If TLS enabled, you must specify a path to a private key here.
#
# syslog_key: <PEM_KEY_PATH>
## @param syslog_tls_verify - boolean - optional - default: true
## If TLS enabled, you may enforce TLS verification here.
#
# syslog_tls_verify: true
## @param log_format_rfc3339 - boolean - optional - default false
## If enabled the Agent will log using the RFC3339 format for the log time.
#
# log_format_rfc3339: false
##############################
## Autoconfig Configuration ##
##############################
## @param autoconf_template_dir - string - optional - default: /datadog/check_configs
## Directory containing configuration templates for Autoconfig.
#
# autoconf_template_dir: /datadog/check_configs
## @param config_providers - List of custom object - optional
## The providers the Agent should call to collect checks configurations. Available providers are:
## * kubelet - The kubelet provider handles templates embedded in pod annotations.
## * docker - The Docker provider handles templates embedded in container labels.
## * clusterchecks - The clustercheck provider retrieves cluster-level check configurations from the cluster-agent.
## * kube_services - The kube_services provider watches Kubernetes services for cluster-checks
##
## See https://docs.datadoghq.com/guides/autodiscovery/ to learn more
#
# config_providers:
# - name: kubelet
# polling: true
# - name: docker
# polling: true
# - name: clusterchecks
# grace_time_seconds: 60
# - name: etcd
# polling: true
# template_dir: /datadog/check_configs
# template_url: http://127.0.0.1
# username:
# password:
# - name: consul
# polling: true
# template_dir: datadog/check_configs
# template_url: http://127.0.0.1
# ca_file:
# ca_path:
# cert_file:
# key_file:
# username:
# password:
# token:
# - name: zookeeper
# polling: true
# template_dir: /datadog/check_configs
# template_url: 127.0.0.1
# username:
# password:
## @param extra_config_providers - list of strings - optional
## Add additional config providers by name using their default settings, and pooling enabled.
## This list is available as an environment variable binding.
#
# extra_config_providers:
# - clusterchecks
###########################################
## Container Autodiscovery Configuration ##
###########################################
## @param container_cgroup_root - string - optional - default: /host/sys/fs/cgroup/
## Change the root directory to look at to get cgroup statistics.
## Default if environment variable "DOCKER_DD_AGENT" is set to "/host/sys/fs/cgroup"
## and "/sys/fs/cgroup" if not.
#
# container_cgroup_root: /host/sys/fs/cgroup/
## @param container_proc_root - string - optional - default: /host/proc
## Change the root directory to look at to get proc statistics.
## Default if environment variable "DOCKER_DD_AGENT" is set "/host/proc" and "/proc" if not.
#
# container_proc_root: /host/proc
## @param listeners - list of key:value elements - optional
## Choose "auto" if you want to let the Agent find any relevant listener on your host
## At the moment, the only auto listener supported is Docker
## If you have already set Docker anywhere in the listeners, the auto listener is ignored
#
# listeners:
# - name: auto
# - name: docker
## @param extra_listeners - list of strings - optional
## You can also add additional listeners by name using their default settings.
## This list is available as an environment variable binding.
#
# extra_listeners:
# - kubelet
## @param ac_exclude - list of comma separated strings - optional
## Exclude containers from metrics and AD based on their name or image.
## If a container matches an exclude rule, it won't be included unless it first matches an include rule.
## An excluded container won't get any individual container metric reported for it.
## See: https://docs.datadoghq.com/agent/autodiscovery/#include-or-exclude-containers
#
# ac_exclude: []
## @param ac_include - list of comma separated strings - optional
## Include containers from metrics and AD based on their name or image:
## See: https://docs.datadoghq.com/agent/autodiscovery/#include-or-exclude-containers
#
# ac_include: []
## @param exclude_pause_container - boolean - optional - default: true
## Exclude default pause containers from orchestrators.
## By default the Agent doesn't monitor kubernetes/openshift pause container.
## They are still counted in the container count (just like excluded containers).
#
# exclude_pause_container: true
## @param docker_query_timeout - integer - optional - default: 5
## Set the default timeout value when connecting to the Docker daemon.
#
# docker_query_timeout: 5
## @param ad_config_poll_interval - integer - optional - default: 10
## The default interval in second to check for new autodiscovery configurations
## on all registered configuration providers.
#
# ad_config_poll_interval: 10
## @param cloud_foundry_garden - custom object - optional
## Settings for Cloudfoundry application container autodiscovery.
#
# cloud_foundry_garden:
## @param listen_network - string - optional - default: unix
## The network on which the garden API is listening. Possible values are `unix` or `tcp`
#
# listen_network: unix
## @param listen_address - string - optional - default: /var/vcap/data/garden/garden.sock
## The address on which the garden API is listening.
#
# listen_address: /var/vcap/data/garden/garden.sock
#########################
## Container detection ##
#########################
## @param container_cgroup_prefix - string - optional - default: /docker/
## On hosts with mixed workloads, non-containernized processes can
## mistakenly be detected as containerized. Use this parameter to
## tune the detection logic to your system and avoid false-positives.
#
# container_cgroup_prefix: "/docker/"
###########################
## Docker tag extraction ##
###########################
## @param docker_labels_as_tags - map - optional
## The Agent can extract container label values and set them as metric tags values associated to a <TAG_KEY>.
## If you prefix your tag name with `+`, it will only be added to high cardinality metrics (Docker check).
#
# docker_labels_as_tags:
# <LABEL_NAME>: <TAG_KEY>
# <HIGH_CARDINALITY_LABEL_NAME>: +<TAG_KEY>
## @param docker_env_as_tags - map - optional
## The Agent can extract environment variables values and set them as metric tags values associated to a <TAG_KEY>.
## If you prefix your tag name with `+`, it will only be added to high cardinality metrics (Docker check).
#
# docker_env_as_tags:
# <ENVVAR_NAME>: <TAG_KEY>
###############################
## Kubernetes tag extraction ##
###############################
## @param kubernetes_pod_labels_as_tags - map - optional
## The Agent can extract pod labels values and set them as metric tags values associated to a <TAG_KEY>.
## If you prefix your tag name with +, it will only be added to high cardinality metrics.
#
# kubernetes_pod_labels_as_tags:
# <POD_LABEL>: <TAG_KEY>
# <HIGH_CARDINALITY_LABEL_NAME>: +<TAG_KEY>
## @param kubernetes_pod_annotations_as_tags - map - optional
## The Agent can extract annotations values and set them as metric tags values associated to a <TAG_KEY>.
## If you prefix your tag name with +, it will only be added to high cardinality metrics.
#
# kubernetes_pod_annotations_as_tags:
# <ANNOTATION>: <TAG_KEY>
# <HIGH_CARDINALITY_ANNOTATION>: +<TAG_KEY>
###################################
## ECS integration Configuration ##
###################################
## @param ecs_agent_container_name - string - optional - default: ecs-agent
## The ECS Agent container should be autodetected when running with the
## default (ecs-agent) name. If not, change the container name here:
#
# ecs_agent_container_name: ecs-agent
## @param ecs_agent_url - string - optional - default: http://localhost:51678
## The ECS Agent container should be autodetected when running with the
## default (ecs-agent) name. If not, change the container name the
## Agent should look for with ecs_agent_container_name, or force a fixed url here:
#
# ecs_agent_url: http://localhost:51678
## @param ecs_collect_resource_tags_ec2 - boolean - optional - default: false
## The Agent can collect resource tags from the metadata API exposed by the
## ECS Agent for tasks scheduled with the EC2 launch type.
#
# ecs_collect_resource_tags_ec2: false
###################################
## CRI integration Configuration ##
###################################
## @param cri_socket_path - string - optional - default: ""
## To activate the CRI check, indicate the path of the CRI socket you're using
## and mount it in the container if needed.
## If left empty, the CRI check is disabled.
## see: https://docs.datadoghq.com/integrations/cri/
#
# cri_socket_path: ""
## @param cri_connection_timeout - integer - optional - default: 5
## Configure the initial connection timeout in seconds.
#
# cri_connection_timeout: 5
## @param cri_query_timeout - integer - optional - default: 5
## Configure the timeout in seconds for querying the CRI.
#
# cri_query_timeout: 5
##########################################
## Containerd integration Configuration ##
##########################################
## @param cri_socket_path - string - optional - default: /var/run/containerd/containerd.sock
## To activate the Containerd check, indicate the path of the Containerd socket you're using
## and mount it in the container if needed.
## see: https://docs.datadoghq.com/integrations/containerd/
#
# cri_socket_path: /var/run/containerd/containerd.sock
## @param cri_query_timeout - integer - optional - default: 5
## Configure the timeout in seconds for querying the Containerd API.
#
# cri_query_timeout: 5
## @param containerd_namespace - string - optional - default: k8s.io
## Activating the Containerd check also activates the CRI check, as it contains an additional subset of useful metrics.
## Specify here the namespace that Containerd is using on your system. As the Containerd check
## only supports Kubernetes, the default value is `k8s.io`
## https://github.com/containerd/cri/blob/release/1.2/pkg/constants/constants.go#L22-L23
#
# containerd_namespace: k8s.io
###################################################
## Kubernetes kubelet connectivity Configuration ##
###################################################
## @param kubernetes_kubelet_host - string - optional
## The kubelet host should be autodetected when running inside a pod.
## If you run into connectivity issues, set the host here according to your cluster setup.
#
# kubernetes_kubelet_host: <KUBLET_HOST>
## @param kubernetes_http_kubelet_port - integer - optional - default: 10255
## The kubelet http port should be autodetected when running inside a pod.
## If you run into connectivity issues, set the http port here according to your cluster setup.
#
# kubernetes_http_kubelet_port: 10255
## @param kubernetes_https_kubelet_port - integer - optional - default: 10250
## The kubelet https port should be autodetected when running inside a pod.
## If you run into connectivity issues, set the https port here according to your cluster setup.
#
# kubernetes_https_kubelet_port: 10250
## @param kubelet_tls_verify - boolean - optional - default: true
## Set to false if you don't want the Agent to verify the kubelet's certificate when using HTTPS.
#
# kubelet_tls_verify: true
## @param kubelet_client_ca - string - optional - default: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
## Kublet client CA file path.
#
# kubelet_client_ca: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
## @param kubelet_auth_token_path - string - optional
## If authentication is needed, the Agent uses the pod's service account's
## credentials. If you want to use a different account, or are running the Agent
## on the host, set a custom token file path here.
#
# kubelet_auth_token_path: <TOKEN_FILE_PATH>
## @param kubelet_client_crt - string - optional
## Set a custom Client CRT file path.
#
# kubelet_client_crt: <CRT_FILE_PATH>
## @param kubelet_client_key - string - optional
## Set a custom Client key file path.
#
# kubelet_client_key: <CLIENT_KEY_FILE_PATH>
## @param kubelet_wait_on_missing_container - integer - optional - default: 0
## On some kubelet versions, containers can take up to a second to
## register in the podlist. This option allows to wait for up to a given
## number of seconds (in 250ms chunks) when a container does not exist in the podlist.
#
# kubelet_wait_on_missing_container: 0
## @param kubelet_cache_pods_duration - integer - optional - default: 5
## Polling frequency in seconds of the Agent to the kubelet "/pods" endpoint.
#
# kubelet_cache_pods_duration: 5
## @param kubernetes_pod_expiration_duration - integer - optional - default: 900
## Set the time in second after which the Agent ignores the pods that have exited.
## Set the duration to 0 to disable this filtering.
#
# kubernetes_pod_expiration_duration: 900
## @param kubelet_listener_polling_interval - integer - optional - default: 5
## Polling frequency in seconds at which autodiscovery will query the pod watcher to detect new pods/containers.
## Note that kubelet_cache_pods_duration needs to be lower than this setting, or autodiscovery will only poll more frequently the same cached data (kubelet_cache_pods_duration controls the cache refresh frequency).
#
# kubelet_listener_polling_interval: 5
####################################################
## Kubernetes apiserver integration Configuration ##
####################################################
## @param kubernetes_kubeconfig_path - string - optional - default: ""
## When running in a pod, the Agent automatically uses the pod's service account
## to authenticate with the API server.
## Provide the path to a custom KubeConfig file if you wish to install the Agent out of a pod
## or customize connection parameters.
## See https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/
#
# kubernetes_kubeconfig_path: ""
## @param kubernetes_apiserver_use_protobuf - boolean - optional - default: false
## By default, communication with the apiserver is in json format. Setting the following
## option to true allows communication in the binary protobuf format.
#
# kubernetes_apiserver_use_protobuf: false
## @param kubernetes_collect_metadata_tags - boolean - optional - default: true
## Set this to false to disable tag collection for the Agent.
## Note: In order to collect Kubernetes service names, the Agent needs certain rights.
## See https://github.com/DataDog/datadog-agent/blob/master/Dockerfiles/agent/README.md#kubernetes
#
# kubernetes_collect_metadata_tags: true
## @param kubernetes_metadata_tag_update_freq - integer - optional - default: 60
## Set how often in secons the Agent refreshes the internal mapping of services to ContainerIDs.
#
# kubernetes_metadata_tag_update_freq: 60
## @param kubernetes_apiserver_client_timeout - integer - optional - default: 10
## Set the timeout for the Agent when connecting to the Kubernetes API server.
#
# kubernetes_apiserver_client_timeout: 10
## @param collect_kubernetes_events - boolean - optional - default: false
## Set `collect_kubernetes_events` to true to enable log collection.
## Note: leader election must be enabled must be enabled bellow to to collect events.
## Only the leader Agent collects events.
## See https://github.com/DataDog/datadog-agent/blob/master/Dockerfiles/agent/README.md#event-collection
#
# collect_kubernetes_events: false
## @param kubernetes_event_collection_timeout - integer - optional - default: 100
## Set the timeout between two successful event collections in milliseconds.
#
# kubernetes_event_collection_timeout: 100
## @param leader_election - boolean - optional - default: false
## Set the parameter to true to enable leader election on this node.
## See https://github.com/DataDog/datadog-agent/blob/master/Dockerfiles/agent/README.md#leader-election
#
# leader_election: false
## @param leader_lease_duration - integer - optional - default: 60
## Set the leader election lease in seconds.
#
# leader_lease_duration: 60
## @param kubernetes_node_labels_as_tags - map - optional
## Configure node labels that should be collected and their name as host tags.
## Note: Some of these labels are redundant with metadata collected by cloud provider crawlers (AWS, GCE, Azure)
#
# kubernetes_node_labels_as_tags:
# kubernetes.io/hostname: nodename
# beta.kubernetes.io/os: os
## @param cluster_name - string - optional
## Set a custom kubernetes cluster identifier to avoid host alias collisions.
## The cluster name can be up to 40 characters with the following restrictions:
## * Lowercase letters, numbers, and hyphens only.
## * Must start with a letter.
## * Must end with a number or a letter.
##
## These are the same rules as the ones enforced by GKE:
## https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#Cluster.FIELDS.name
#
# cluster_name: <CLUSTER_IDENTIFIER>
## @param disable_cluster_name_tag_key - boolean - optional - default: false
## Disable using the 'cluster_name' tag key to submit orchestrator cluster name tag.
## The Agent will continue sending the cluster name tag with 'kube|ecs_cluster_name' key
## regardless of the value of this parameter.
#
# disable_cluster_name_tag_key: false
########################
## SNMP Configuration ##
########################
## @param snmp_traps_enabled - boolean - optional - default: false
## Set to true to enable collection of traps.
#
# snmp_traps_enabled: false
## @param snmp_traps_config - custom object - optional
## This section configures SNMP traps collection. Traps are forwarded as logs to Datadog.
## NOTE: This feature is currently **EXPERIMENTAL**. Both behavior and configuration options may
## change in the future. Only SNMPv2 is supported.
#
# snmp_traps_config:
## @param port - integer - optional - default: 162
## The UDP port to use when listening for incoming trap packets.
#
# port: 162
## @param community_strings - list of strings - required
## A list of known SNMPv2 community strings that devices can use to send traps to the Agent.
## Traps with an unknown community string are ignored.
## Must be non-empty.
#
# community_strings:
# - <COMMUNITY_1>
# - <COMMUNITY_2>
## @param bind_host - string - optional
## The hostname to listen on for incoming trap packets.
## Defaults to the global `bind_host` config option value.
#
# bind_host: <BIND_HOST>
## stop_timeout - float - optional - default: 5.0
## The maximum number of seconds to wait for the trap server to stop when the Agent shuts down.
#
# stop_timeout: 5.0
DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=c56b6585cafb2349950cf846e7bd9e82 DD_SITE="datadoghq.com" bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so 'log/access_log'
# with ServerRoot set to '/www' will be interpreted by the
# server as '/www/log/access_log', where as '/log/access_log' will be
# interpreted as '/log/access_log'.
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path. If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used. If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
ServerRoot "/etc/httpd"
#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
Include conf.modules.d/*.conf
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User apache
Group apache
# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. admin@your-domain.com
#
ServerAdmin root@localhost
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
AllowOverride none
Require all denied
</Directory>
#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html"
LoadModule status_module modules/mod_status.so
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
Allow from 172.31.0.16
</Location>
ExtendedStatus On
#
# Relax access to content within /var/www.
#
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
# Further relax access to the default document root:
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ".ht*">
Require all denied
</Files>
#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "logs/error_log"
#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn
<IfModule log_config_module>
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
#
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
#CustomLog "logs/access_log" common
#
# If you prefer a logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
#
# Redirect: Allows you to tell clients about documents that used to
# exist in your server's namespace, but do not anymore. The client
# will make a new request for the document at its new location.
# Example:
# Redirect permanent /foo http://www.example.com/bar
#
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
#
# If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.
#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig /etc/mime.types
#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi
# For type maps (negotiated resources):
#AddHandler type-map var
#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
#
# Specify a default charset for all content served; this enables
# interpretation of all content as UTF-8 by default. To use the
# default browser choice (ISO-8859-1), or to allow the META tags
# in HTML content to override this choice, comment out this
# directive:
#
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
#
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type. The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
MIMEMagicFile conf/magic
</IfModule>
#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#
#
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall may be used to deliver
# files. This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
# Defaults if commented: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
EnableSendfile on
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
---
- name: newrelic agent setup
hosts: all
tasks:
- script: ddagent-install.sh
- name: Copy file with owner and permissions
copy:
src: datadog.yaml
dest: /etc/datadog-agent/datadog.yaml
owner: dd-agent
group: dd-agent
mode: '0644'
- name: Install HTTPD server
command: yum install httpd -y
- name: Copy httpd.conf file in All Machine
copy:
src: httpd.conf
dest: /etc/httpd/conf/httpd.conf
- name: Restart DD agent
command: systemctl restart httpd
- name: Copy file with owner and permissions
copy:
src: apache-conf.yaml
dest: /etc/datadog-agent/conf.d/apache.d/conf.yaml
owner: dd-agent
group: dd-agent
mode: '0644'
- name: Restart DD agent
command: systemctl restart datadog-agent
---
- name: newrelic agent setup
hosts: all
tasks:
- script: ddagent-install.sh
- name: Setup a apps
command: systemctl stop datadog-agent
- name: Setup a apps
command: systemctl start datadog-agent
---
- name: newrelic agent setup
hosts: all
tasks:
- script: ddagent-install.sh
- name: Copy file with owner and permissions
copy:
src: datadog.yaml
dest: /etc/datadog-agent/datadog.yaml
owner: dd-agent
group: dd-agent
mode: '0644'
- name: Setup a apps
command: systemctl restart datadog-agent

Step 3 – Create a Ansible inventory file consist of Multiple Linux Servers

Step 4 – Run Ansible Playbook Commands

Reference

  • https://github.com/devopsschool-training-notes/datadog-fid-dec-2020
  • https://github.com/devopsschool-training-notes/Datadog-LNT-Pune-2020/blob/master/Datadog-LNT-Pune-2020/Day3.txt

Certification Courses

DevOpsSchool has introduced a series of professional certification courses designed to enhance your skills and expertise in cutting-edge technologies and methodologies. Whether you are aiming to excel in development, security, or operations, these certifications provide a comprehensive learning experience. Explore the following programs:

DevOps Certification, SRE Certification, and DevSecOps Certification by DevOpsSchool

Explore our DevOps Certification, SRE Certification, and DevSecOps Certification programs at DevOpsSchool. Gain the expertise needed to excel in your career with hands-on training and globally recognized certifications.