aziascreations/Technitium-QueryLogsAMQP
A simple application for Technitium DNS that logs queries to an AMQP broker.
AMQP Query Logging Technitium App
A simple application for Technitium DNS
that logs queries to an AMQP broker using
RabbitMQ's client library.
Installation
- Download the latest
.zipfile from the
releases page. - Login into your Technitium administration panel and go into the "Apps" tab.

- Click on the "Install" button.

- Give the application a name, select the downloaded
.zipfile and click on install.

- Configure the application by following the Configuration section.
Configuration
This application can be made to suit a variety of situations and log throughput via Technitium's administration panel.
- Go into the "Apps" tab, find the installed application and click on "".
- Make changes to the configuration inside the modal.
- Any error should be reported ???.
Click here to see an example configuration
{
"enabled": true,
"amqpHost": "127.0.0.1",
"amqpPort": 5672,
"amqpVirtualHost": "/technitium",
"amqpAuthUsername": "technitium-na1",
"amqpAuthPassword": "change-me",
"amqpRoutingKey": "dns-na1",
"amqpExchangeName": "amq.topic",
"amqpHeartbeat": 30,
"amqpReconnectInDispose": true,
"ampqsEnabled": false,
"ampqsRequired": true,
"queueMaxSize": 10000,
"queueMaxFailures": 5,
"queueFailuresBypassSizeLimits": true,
"senderColdDelayMs": 5000,
"senderInterBatchDelayMs": 500,
"senderBatchMaxSize": 100,
"senderPostFailureDelayMs": 250
}AMQP Connection
| Field | Description |
|---|---|
enabled |
Allows or prevent the app from processing logs |
amqpHost |
Broker's [???] |
amqpPort |
Broker's exposed port |
amqpVirtualhost |
Broker's virtual host |
amqpAuthUsername |
Username with which to connect to the broker |
amqpAuthPassword |
Password with which to connect to the broker |
amqpHeartbeat |
|
amqpReconnectInDispose |
|
ampqsEnabled |
|
ampqsRequired |
AMQP Messages
| Field | Description |
|---|---|
amqpRoutingKey |
Routing key used by every message |
amqpExchangeName |
Exchange's name to which messages are sent |
Internal Log Queue
| Field | Description |
|---|---|
queueMaxSize |
|
queueMaxFailures |
|
queueFailuresBypassSizeLimits |
AMQP Client Task
| Field | Description |
|---|---|
senderColdDelayMs |
|
senderInterBatchDelayMs |
|
senderBatchMaxSize |
|
senderPostFailureDelayMs |
Building
This sections assumes you already have git and dotnet installed.
Cloning Git Submodules
If you're cloning the repository for the first time:
git clone --recurse-submodules https://github.com/aziascreations/Technitium-QueryLogsAMQP.git
If you cloned the repository with the submodules:
git submodule update --init
Building using scripts
The application can be built by using the build.cmd script.
If you don't want to use it or are on Linux, you can simply run the appropriate
commands present in that script.
Licenses
The code in this repository is licensed under the GNU GPLv3.
External licenses
- RabbitMQ.Client - Apache-2.0 license
- Newtonsoft.Json - MIT License