dmachard / go-dnscollector

Ingesting, pipelining, and enhancing your DNS logs with usage indicators, security analysis, and additional metadata.
MIT License
215 stars 48 forks source link
collector coredns dns dns-server dnstap fluentd golang grafana logs loki openmetrics pcap powerdns prometheus security-tools sniffer statistics

Go Report Go version Go tests Go bench Go lines

release docker

DNS-collector

DNS-collector acts as a passive high speed ingestor with pipelining support for your DNS logs, written in Golang. It allows enhancing your DNS logs by adding metadata, extracting usage patterns, and facilitating security analysis.

Additionally, DNS-collector also support

Features

Get Started

Download the latest release binary and start the DNS-collector with the provided configuration file. The default configuration listens on tcp/6000 for a DNSTap stream and DNS logs are printed on standard output.

./go-dnscollector -config config.yml

run

If you prefer run it from docker, follow this guide.

Configuration

The configuration of DNS-collector is done through a file named config.yml. When the DNS-collector starts, it will look for the config.yml from the current working directory. A typical configuration in pipeline mode includes one or more collectors to receive DNS traffic and several loggers to process the incoming data.

To get started quickly, you can use this default config.yml. You can also see the _examples folder from documentation witch contains a number of various configurations to get you started with the DNS-collector in different ways.

For advanced settings, see the advanced configuration guide.

Additionally, the _integration folder contains preconfigured files and docker compose examples for integrating DNS-collector with popular tools:

DNS Telemetry

DNS-collector provides telemetry capabilities with the Prometheus logger, you can easily monitor key performance indicators and detect anomalies in real-time.

dashboard

Performance

Tuning may be necessary to deal with a large traffic loads. Please refer to the performance tuning guide if needed.

Performance metrics are available to evaluate the efficiency of your pipelines. These metrics allow you to track:

A build-in dashboard is available for monitoring these metrics.

dashboard

Contributing

See the development guide for more information on how to build it yourself.