From 1d9428cee48828f77ce2aa052cf22c6c669d6a4c Mon Sep 17 00:00:00 2001 From: diasdmhub <67486897+diasdmhub@users.noreply.github.com> Date: Wed, 24 Jan 2024 20:12:12 -0300 Subject: [PATCH] Template overview information --- Applications/DNS/AdGuard_Home/6.4/README.md | 189 ++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 Applications/DNS/AdGuard_Home/6.4/README.md diff --git a/Applications/DNS/AdGuard_Home/6.4/README.md b/Applications/DNS/AdGuard_Home/6.4/README.md new file mode 100644 index 000000000..a77af9af4 --- /dev/null +++ b/Applications/DNS/AdGuard_Home/6.4/README.md @@ -0,0 +1,189 @@ +# Zabbix Template for AdGuard Home + +
+ +![License](https://img.shields.io/badge/License-GPL3-blue?logo=opensourceinitiative&logoColor=fff) +![Version](https://img.shields.io/badge/Version-6410-blue?logo=AdGuard&color=0aa8d2) + +
+
+ + +### OVERVIEW + +[AdGuard Home](https://github.com/AdguardTeam/AdGuardHome) 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](https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi). + +The main focus is on monitoring statistics from AdGuard Home. + +
+ +--- +### ➡️ [Download (latest)](https://github.com/diasdmhub/AdGuard_Home_Zabbix_Template/releases) +--- +#### ➡️ [*How to import templates*](https://www.zabbix.com/documentation/current/en/manual/xml_export_import/templates#importing) +--- + +
+ + +### TEMPLATES + +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 should not 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` + +
+ + +### REQUIREMENTS + +- AdGuard Home + - Zabbix Agent required only for active monitoring + > _**The template uses the `system.run[*]` parameter for active monitoring with the Zabbix Agent**_ + +
+ + +### TESTED VERSION + +This template has been tested with AdGuard Home version `> 0.107` on an Asus RT-AX86U router running an [Asus Merlin](https://www.asuswrt-merlin.net) firmware. It should work with any recent version of AdGuard Home. + +
+ + +### SETUP + +> **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 your *`username:password`* string.** + +
+ +--- +1️⃣ After importing the template to Zabbix and creating AdGuard's host, encode **your** AdGuard Authorization string `username:password` to Base64. \ +**Examples:** + - Shell +> ```shell +> echo -n 'username:password' | base64 +> ``` + + - Python +> ```python +> import base64 +> string = 'username:password' +> base64.b64encode(bytes(string, 'utf-8')) +> ``` + + - PowerShell +> ```pwsh +> $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}`. + +--- + +

+ + +### MACROS USED + +| 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*) | + +
+ + +### ITEMS (*AdGuard Home Stats*) + +| 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 | + +
+ + +### TRIGGERS (*AdGuard Home Stats*) + +| Name | +| -------------------------------------------- | +| AdGuard Home Abnormally High Processing Time | +| AdGuard Home Has NO DNS Queries | +| AdGuard Home Protection Stopped | +| AdGuard Home Stopped | +| AdGuard Home Version Changed | + +
+ + +### ITEMS (*AdGuard Home Filters*) + +| Name | +| ----------------------------------------------------------------- | +| AdGuard Home Filters | +| AdGuard Home Filter Rules Count Sum | + +
+ + +### DISCOVERY RULE (*AdGuard Home Filters*) + +| Name | +| ----------------------------------------------- | +| AdGuard Home Filters: AdGuard Filters Discovery | + +
+ + +### ITEM PROTOTYPES (*AdGuard Home Filters*) + +| Name | +| ------------------------------------------------------ | +| AdGuard Home Filter Last Update Time - {\#FILTER.NAME} | +| AdGuard Home Filter Rules Count - {\#FILTER.NAME} | +| AdGuard Home Filter Status - {\#FILTER.NAME} | + +
+ + +### TRIGGER PROTOTYPES (*AdGuard Home Filters*) + +| Name | +| --------------------------------------------------------------------- | +| AdGuard Home Filter is Disabled - {\#FILTER.NAME} | +| AdGuard Home Filter not Updated in more than 7 days - {\#FILTER.NAME} | + +
+ + +### DASHBOARD EXAMPLE +![Dashboard example](https://github.com/diasdmhub/AdGuard_Home_Zabbix_Template/raw/main/images/dash_example1.png)