AdGuard Home is a network-wide ad blocking and tracking software. Once you've set it up, it will cover your devices without the need for any client-side software.
If you want to monitor your AdGuard Home instance with Zabbix, this template provides some useful monitoring items. \ The monitoring is done via "REST-ish" API as AdGuard Home offers an OpenAPI specification.
The main focus is on monitoring statistics from AdGuard Home.
For more flexibility, the release includes templates that cover two monitoring methods, one for native HTTP data retrieval and another for Zabbix Agent Active. Both methods provide the same monitoring items, but with different item types. They are not intended to be used together on the same host.
There are also two independent template types. One is for HTTP AdGuard Home general status and statistics, and the other is for filter parameters discovery. \
In total, the released yaml
file contains four templates.
AdGuard Home Stats by HTTP
AdGuard Home Stats by Zabbix Agent Active
AdGuard Home Filters by HTTP
AdGuard Home Filters by Zabbix Agent Active
- _The template uses the
system.run[*]
key for active monitoring with the Zabbix Agent. TheAllowKey=system.run[*]
parameter must be enabled to allow the agent to collect data locally._- Accordingly, AdGuard Home must allow requests from itself when using an active Zabbix Agent.
This template has been tested with AdGuard Home version > 0.107
on an Asus RT-AX86U router running an Asus Merlin firmware, a Mikrotik RouterOS and a standard Linux distribution running Oracle Linux 9. It should work with any recent version of AdGuard Home.
If the AdGuard Home web user is password protected, the client must use an authentication mechanism when sending requests to the server. Basic access authentication is the offered method. A client must include an
Authorization
HTTP header along with all requests:Authorization: Basic BASE64_DATA
Where
BASE64_DATA
is a base64-encoded data for yourusername:password
string.
1️⃣ After importing the template to Zabbix and creating AdGuard's host, encode your AdGuard Authorization string username:password
to Base64. See the examples bellow.
Shell
echo -n 'username:password' | base64
Python
import base64 string = 'username:password' base64.b64encode(bytes(string, 'utf-8'))
PowerShell
$string = 'username:password' [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($string))
2️⃣ Copy and paste the encoded string into your host's macro {$ADGUARD.AUTH}
.
Macro | Default Value | Description |
---|---|---|
{$ADGUARD.AUTH} | HTTP header Basic authorization string. A Base64 encoded string of your username:password . |
|
{$ADGUARD.PORT} | 3000 | AdGuard Home HTTP port |
{$ADGUARD.WEB} | http | Web protocol. Either "http" or "https" |
{$ADGUARD.STAT.DAYS} | 30 | The configured statistics period in days (AdGuard Home Stats only) |
{$ADGUARD.FILTER_ENABLED} | true | True to discover only enabled filters, leave empty to discover all filters (AdGuard Home Filters only) |
Name |
---|
AdGuard Home General Status |
AdGuard Home General Status: AdGuard Home Status Protection |
AdGuard Home General Status: AdGuard Home Status Running |
AdGuard Home General Status: AdGuard Home Version |
AdGuard Home Statistics |
AdGuard Home Statistics: AdGuard Home Average Processing Time |
AdGuard Home Statistics: AdGuard Home DNS Queries per Second |
AdGuard Home Statistics: AdGuard Home Total DNS Blocks by Period |
AdGuard Home Statistics: AdGuard Home Total DNS Blocks Today |
AdGuard Home Statistics: AdGuard Home Total DNS Queries by Period |
AdGuard Home Statistics: AdGuard Home Total DNS Queries Today |
AdGuard Home DNS Queries Today Block Rate |
AdGuard Home DNS Queries Today Period Rate |
Name |
---|
AdGuard Home Abnormally High Daily Queries |
AdGuard Home Abnormally High Processing Time |
AdGuard Home Has NO DNS Queries |
AdGuard Home Protection Stopped |
AdGuard Home Stopped |
AdGuard Home Version Changed |
Name |
---|
AdGuard Home Filters |
AdGuard Home Filter Rules Count Sum |
Name |
---|
AdGuard Home Filters: AdGuard Filters Discovery |
Name |
---|
AdGuard Home Filter Last Update Time - {#FILTER.NAME} |
AdGuard Home Filter Rules Count - {#FILTER.NAME} |
AdGuard Home Filter Status - {#FILTER.NAME} |
Name |
---|
AdGuard Home Filter is Disabled - {#FILTER.NAME} |
AdGuard Home Filter not Updated in more than 7 days - {#FILTER.NAME} |