Home

Awesome

<p align="center"> <img src="https://goreportcard.com/badge/github.com/dmachard/go-dns-collector" alt="Go Report"/> <img src="https://img.shields.io/badge/go%20version-min%201.21-green" alt="Go version"/> <img src="https://img.shields.io/badge/go%20tests-500-green" alt="Go tests"/> <img src="https://img.shields.io/badge/go%20bench-21-green" alt="Go bench"/> <img src="https://img.shields.io/badge/go%20lines-31528-green" alt="Go lines"/> </p> <p align="center"> <img src="docs/dns-collector_logo.png" alt="DNS-collector"/> </p> <p align="center"> <img src="https://img.shields.io/github/v/release/dmachard/go-dnscollector?logo=github&sort=semver" alt="release"/> </p>

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.

See the full configuration guide for more details.

Run the DNS-collector in dry mode to verify the configuration.

./go-dnscollector -config config.yml -test-config
INFO: 2023/12/24 14:43:29.043730 main - config OK!

Usage examples

The _examples folder from documentation contains a number of various configurations to get you started with the DNS-collector in different ways.

The _integration folder contains DNS-collector configuration files and docker compose examples for 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.