The following section outlines the steps to configure DNS statistics.
props.conf
file. For more information, refer to the Splunk documentation.To configure DNS statistics on a DNS/DHCP Server:
- Select the Servers tab in the sidebar, then select Servers.
- Select the name of a server.
- Select the Services tab.
- Under Monitoring and analytics, locate the DNS statistics service panel and select Edit service.
-
Under General, set the following parameters:
- Enabled—select this check box to enable DNS
Statistics service; deselect this check box to disable DNS statistics
service.Note: When you enabled DNS Statistics, the firewall rules on the DNS/DHCP Server are modified to allow egress to the specified URI endpoint. Outbound traffic is allowed for the specified IP address.
- Max buffered events—enter the maximum number of DNS statistics events to be stored in the memory buffer. The maximum value is 36,436,000 events.
- Polling interval—set the frequency at which the DNS statistics events are polled. The minimum value is 1 minute and the maximum value is 30 days.
- Enabled—select this check box to enable DNS
Statistics service; deselect this check box to disable DNS statistics
service.
-
On the Destination tab, set the following
parameters:
- Sink type—select where the DNS statistics data
will be logged. You can log data to an HTTP endpoint,
Splunk server, Kafka cluster, or Elasticsearch
server.If you select HTTP, the following fields appear:
- Healthcheck—select this check box to enable health check service; deselect this check box to disable health check service. Upon initialization, the healthcheck ensure that the downstream service is accessible and can accept the DNS statistics data.
- Healthcheck URI—enter the URI of the HTTP endpoint that will be consuming the health check information.
- Output URI—enter the URI of the HTTP
endpoint that will be consuming the DNS statistics
information. Note:
- BlueCat recommends entering the IP address of the endpoint in this field. If you are entering a hostname, you must use a different DNS server as the resolver for that host. The DNS/DHCP server you are configuring DNS statistics on can still be used as a resolver for clients, but cannot be used as a resolver for its own OS related lookups.
- If the domain name is used in the URI, you must ensure that the domain name can be resolved on the DNS/DHCP Server.
- The URI for the Output URI field must follow the format outlined in RFC2396.
- Token—enter the bearer token used to authenticate with the HTTP endpoint.
If you select Splunk, the following fields appear:- Healthcheck—select this check box to
enable health check service; deselect this check box to
disable health check service. Upon initialization, the
healthcheck ensures that the downstream service is
accessible and can accept the DNS statistics data. Note: When selecting this check box, the DNS/DHCP Server uses the default Splunk healthcheck endpoint at
/services/collector/health/1.0. - Host—enter the URI of the Splunk HEC
host. The standard format of the HEC URI in Splunk
Enterprise is as
follows:
<protocol>://<FQDN or IP address of the host only>:<port>Note:- BlueCat recommends entering the IP address of the endpoint in this field. If you are entering a hostname, you must use a different DNS server as the resolver for that host. The DNS/DHCP server you are configuring DNS statistics on can still be used as a resolver for clients, but cannot be used as a resolver for its own OS related lookups.
- If the domain name is used in the URI, you must ensure that the domain name can be resolved on the DNS/DHCP Server.
- Ensure that the HEC URI format is followed exactly as described above without adding or omitting any pieces. The port is required, even if default. Do not include extra slashes or folders in the URI.
- The URI for the Host field must follow the format outlined in RFC2396.
- Token—enter the Splunk HEC token.
If you select Kafka, the following fields appear:- Healthcheck—select this check box to
enable health check service; deselect this check box to
disable health check service. Upon initialization, the
healthcheck ensures that the downstream service is
accessible and can accept the DNS statistics data. Note: The health check URI is configured based on the Kafka Broker address.
- Topic—enter the name of the Kafka topic to write events to.
- Key field—enter the log field name or tags key to use for the topic key. If the field does not exist in the log or in tags, a blank value will be used. If unspecified, the key is not sent. Kafka uses a hash of the key to choose the partition or uses round-robin if the record has no key.
- Bootstrap servers—enter a host and
port pair that is the address of the Kafka broker in a
“bootstrap” Kafka cluster. This is the address that a Kafka
client connects to initially to bootstrap itself. This field
supports IPv4, IPv6, and FQDN values.
Example:
10.14.22.123:9092Click + to add the host and port pair to the list of Bootstrap servers.
Note:- BlueCat recommends using IP addresses in this field. If you are entering a hostname, you must use a different DNS server as the resolver for that host. The DNS/DHCP server you are configuring DNS statistics on can still be used as a resolver for clients, but cannot be used as a resolver for its own OS related lookups.
- Do not include
httporhttpsin the addresses of the Kafka brokers. - If a domain name is used, you must ensure that the domain name can be resolved on the DNS/DHCP Server.
If you select Elasticsearch, the following fields appear:- Healthcheck—select this check box to
enable health check service; deselect this check box to
disable health check service. Upon initialization, the
healthcheck ensures that the downstream service is
accessible and can accept the DNS statistics data. Note: The health check URI is configured based on the Elasticsearch instance.
- Endpoint—enter the Elasticsearch
endpoint to send logs to. This field supports IPv4, IPv6,
and FQDN values.
Example:
http://10.24.32.122:9000Example:
https://example.comExample:
https://user:password@example.comNote:- BlueCat recommends using the IP address of the endpoint in this field. If you are entering a hostname, you must use a different DNS server as the resolver for that host. The DNS/DHCP server you are configuring DNS statistics on can still be used as a resolver for clients, but cannot be used as a resolver for its own OS related lookups.
- If the domain name is used, you must ensure that the domain name can be resolved on the DNS/DHCP Server.
- Index—enter Elasticsearch index name to write events to.
- Username—enter the basic authentication user name.
- Password—enter the basic authentication password.
- Sink type—select where the DNS statistics data
will be logged. You can log data to an HTTP endpoint,
Splunk server, Kafka cluster, or Elasticsearch
server.
-
On the Certificate tab, configure TLS information if
necessary:
Attention: If you enter a HTTPS endpoint in the Output URI, Healthcheck URI, Host, Bootstrap servers, or Endpoint field when configuring output, you must configure TLS information.
- Select the Verify certificate check box to
attempt a TLS handshake using the uploaded CA certificate with the
remote host's TLS server certificate.Note: Verify certificate does not verify the authenticity of the uploaded certificate. Verify certificate in this context only checks if the CA certificate matches correctly with the TLS server certificate to create a successful handshake.Note: If encountering errors with Verify certificate, the CA/chain-CA certificates may have to be installed manually on the DNS/DHCP Server. Refer to KB-17944 on the BlueCat Customer Care portal for manual installation instructions.
- Select the Verify hostname check box to validate
the hostname part of the URI against the CN (Common Name) or SAN
(Subject Alternative Name) of the server certificate during the TLS
handshake.Note: If using self-signed certificates, users are advised to add a subject alternative name with the IP address (see RFC 5280 4.2.1.6), or disable the Verify hostname check.
- Under CA certificate upload, drag and drop or
select the CA certificate (trusted third party or self-signed) that will
be used to authenticate the CA signature on the TLS server certificate
of the remote host.Note: The file containing the CA certificate or certificate bundle must be in .pem, .cer, .cert, or .crt format. To ensure a successful TLS handshake, the CA certificate uploaded to the client (BDDS) should be the same CA certificate (and intermediate certificates if applicable) used by the server to authenticate the CA signature of its TLS server certificate. The CA certificate can be acquired via browser export or other trusted source, and converted to PEM format.
- Select the Verify certificate check box to
attempt a TLS handshake using the uploaded CA certificate with the
remote host's TLS server certificate.
-
Select Save.
If you do not have DNS service deployed to the DNS/DHCP Server, after you select Save, you must perform a DNS deployment on the DNS/DHCP Server for DNS Statistics events to be generated. If DNS service is already configured on the DNS/DHCP Server, the DNS Statistics service is enabled upon selecting Save.
The service batches data that is sent to the configured destination. Batches are flushed from the system and sent to the configured destination when the age of the batch reaches 1 second, or when the size of the batch reaches 1049000 bytes.
If the service receives an HTTP response status code of 429 or greater than 500 except for 501, the service attempts to retry sending the failed request 5 times. If the service still cannot send the failed request after 5 attempts, the event message is dropped and an error message is logged.
In the event of a service disruption, such as a network error or the system crashes, DNS statistics service attempts to mitigate event loss. If there are network connectivity issues, the service retries failed requests. There might be a loss of data if the DNS statistics process stops on the DNS/DHCP Server while DNS service is running and processing DNS statistics.