{"id":13581712,"url":"https://github.com/dmachard/DNS-collector","last_synced_at":"2025-08-22T14:31:19.849Z","repository":{"id":37809344,"uuid":"382687132","full_name":"dmachard/DNS-collector","owner":"dmachard","description":"Grab your DNS logs, detect anomalies, and finally understand what's happening on your network. The missing piece between DNS servers and your data stack.","archived":false,"fork":false,"pushed_at":"2025-08-16T06:52:28.000Z","size":32934,"stargazers_count":277,"open_issues_count":56,"forks_count":55,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-08-18T20:14:48.694Z","etag":null,"topics":["collector","coredns","dns","dns-server","dnstap","fluentd","golang","grafana","logs","loki","openmetrics","pcap","powerdns","prometheus","security-tools","sniffer","statistics"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmachard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["dmachard"]}},"created_at":"2021-07-03T18:39:54.000Z","updated_at":"2025-08-15T00:57:57.000Z","dependencies_parsed_at":"2023-07-14T00:47:30.505Z","dependency_job_id":"c400f2d5-3f7f-412c-beac-be7a8c8dd9ba","html_url":"https://github.com/dmachard/DNS-collector","commit_stats":null,"previous_names":["dmachard/go-dns-collector","dmachard/go-dnslogger","dmachard/dns-collector"],"tags_count":97,"template":false,"template_full_name":null,"purl":"pkg:github/dmachard/DNS-collector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmachard%2FDNS-collector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmachard%2FDNS-collector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmachard%2FDNS-collector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmachard%2FDNS-collector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmachard","download_url":"https://codeload.github.com/dmachard/DNS-collector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmachard%2FDNS-collector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271652340,"owners_count":24797049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collector","coredns","dns","dns-server","dnstap","fluentd","golang","grafana","logs","loki","openmetrics","pcap","powerdns","prometheus","security-tools","sniffer","statistics"],"created_at":"2024-08-01T15:02:11.940Z","updated_at":"2025-08-22T14:31:19.837Z","avatar_url":"https://github.com/dmachard.png","language":"Go","funding_links":["https://github.com/sponsors/dmachard"],"categories":["Go"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://goreportcard.com/badge/github.com/dmachard/DNS-collector\" alt=\"Go Report\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/go%20version-min%201.24-green\" alt=\"Go version\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/go%20tests-509-green\" alt=\"Go tests\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/go%20coverage-68%25-green\" alt=\"Go coverage\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/go%20bench-21-green\" alt=\"Go bench\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/go%20lines-15389-green\" alt=\"Go lines\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/v/release/dmachard/DNS-collector?logo=github\u0026sort=semver\" alt=\"release\"/\u003e\n  \u003cimg src=\"https://img.shields.io/docker/pulls/dmachard/go-dnscollector.svg\" alt=\"docker\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/dns-collector_logo.png\" alt=\"DNS-collector\"/\u003e\n\u003c/p\u003e\n\n## What is DNS-collector?\n\n**DNS-collector** is a lightweight tool that captures DNS queries and responses from your DNS servers, processes them intelligently, and sends clean data to your monitoring or analytics systems.\n\nWhat it does:\n- **Captures DNS data** from your DNS servers (BIND, PowerDNS, Unbound, etc.) via DNStap protocol or live network capture\n- **Filters out noise** like health checks, internal queries, or spam before storage\n- **Enriches data** with GeoIP, threat intelligence, or custom metadata  \n- **Outputs clean data** to files, databases, SIEM tools, or monitoring dashboards\n\n## Why DNS-collector?\n\nThe missing piece between DNS servers and your data stack.\n\n- **DNS-native processing**: Understands DNS protocol, EDNS, query types natively\n- **Process at the edge**: Clean, filter and enrich DNS data before storage - not after\n- **Multiple input sources**: DNStap streams, live network capture, log files\n- **DNS-aware transformations**: Filtering noise upstream, user privacy\n- **Flexible outputs**: Files, syslog, databases, monitoring tools and more...\n- **Production ready**: Used in real networks, tested with major DNS servers\n- **Enhanced DNStap**: TLS encryption, compression, and more metadata capabilities\n\n## 🚀 Quick Start\n\nDownload the [latest release](https://github.com/dmachard/DNS-collector/releases) and run with default config:\nDefault setup listens on tcp/6000 for DNStap streams and outputs to stdout.\nTo get started quickly, you can use this default [`config.yml`](config.yml).\n\n```bash\n./dnscollector -config config.yml\n```\n\n![run](docs/_images/terminal.gif)\n\n## 📚 Documentation\n\n| Topic | Description |\n|-------|-------------|\n| [🔧 Configuration](docs/configuration.md) | Complete config reference |\n| [📤 Workers](docs/workers.md) | Input sources and output destinations setup |\n| [🔄 Transformers](docs/transformers.md) | Data enrichment options |\n| [🐳 Docker](docs/docker.md) | Container deployment |\n| [🔍 Examples](docs/examples.md) | Ready-to-use configs |\n| [🔗 Integrations](docs/integrations.md) | Integrationn with popular tools and DNS servers |\n| [⭐ Extended DNStap](docs/extended_dnstap.md) | Extended DNSTap |\n| [📊 Telemetry](docs/telemetry.md) | REST API and Prometheus metrics |\n| [⚡ Performance](docs/performance.md) | Tuning guide |\n\n## 👥 Contributions\n\nContributions are welcome!\nCheck out:\n- [Contribution Guide](CONTRIBUTING.md)\n- [Architecture Guide](docs/architecture.md)\n- [Development Guide](docs/development.md)\n\n## 🧰 Related Projects:\n\n- [DNS-tester](https://github.com/dmachard/DNS-tester) - DNS testing toolkit\n- [CoreDNS-GSLB](https://github.com/dmachard/coredns-gslb) - Global Server Load Balancing functionality in CoreDNS\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmachard%2FDNS-collector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmachard%2FDNS-collector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmachard%2FDNS-collector/lists"}