SRV_ADMIN Telegram 4680
Насколько мне известно, у Zabbix до сих пор нет стандартного шаблона для мониторинга за временем оплаты домена. Про крайней мере мне такой неизвестен. Если он уже есть и я его упустил, прошу подсказать.

В разное время я реализовывал различные способы решения этой задачи. Все они один за одним собирались в статью на сайте:

Мониторинг времени делегирования домена в zabbix

Все способы, описанные там, актуальны и работают. Основное их неудобство - реализация через скрипты, от чего уже давно хочется уйти, потому что неудобно ходить в консоль и править там список доменов. Можно собрать простенький пайплайн для этого, но это тоже перебор для такой простой задачи.

Я её однажды реализовал полностью в шаблоне без скриптов с помощью внешнего сервиса Whois API и его бесплатного тарифа. В принципе, вариант рабочий, но не всегда удобно регистрироваться во внешнем сервисе, получать от него токен и в целом зависеть от его доступности.

Прикинул, как можно сделать так же удобно, реализовав всю логику только в шаблоне Zabbix, в том числе в нём же в макросах вести список доменов, но при этом без внешнего сервиса. Решил для этого воспользоваться готовым экспортером для Prometheus. Он удобен тем, что отдаёт метрики по HTTP, а значит их можно забирать заббиксом напрямую через его HTTP Агент.

Рассказываю по шагам, как всё настроил.

1️⃣ Поднимаю на любой своей машине в докере domain_exporter. Можно тут же на сервере Zabbix.

2️⃣ В шаблоне Zabbix создаю правило обнаружения с любым типом. Для примера взял тип Внутренний Zabbix и ключ zabbix[boottime]. Значения этого ключа нам не нужны, так как мы их сразу же будем преобразовывать.

3️⃣ В правиле обнаружения настроил предобработку типа JavaScript с таким кодом:

var domains = '{$DOMAINS}'.split(/\s+/);
var data = [];
for (var i = 0; i < domains.length; i++) {
  data.push({ "{#DOMAIN}": domains[i] });
}
return JSON.stringify({ data: data });

Берём список доменов из макроса {$DOMAINS} и преобразуем их в строку:

{
 "data": [
  { "{#DOMAIN}": "serveradmin.ru" },
  { "{#DOMAIN}": "example.com" }
 ]
}

Это формат, который принимают прототипы айтемов и триггеров.

4️⃣ Создал в шаблоне макросы:

◽️{$DOMAINS} = serveradmin.ru example.com # разделитель доменов - пробел;
◽️{$PROM_URL} = http://10.30.52.9:9222/probe # адрес экспортера;
◽️{$WARN_DAYS} = 30 # порог в днях для триггера со статусом предупреждение;
◽️{$CRIT_DAYS} = 5 # порог в днях для триггера со статусом критический.

5️⃣ Создал прототип айтема с типом HTTP Agent. В качестве урла указал {$PROM_URL}, а для передачи имени домена использовал поля запроса:

target ⇨ {#DOMAIN}

То есть итоговый урл для получения данных будет такой: http://10.30.52.9:9222/probe?target={#DOMAIN}. А если развернуть lld-макрос, то такой: http://10.30.52.9:9222/probe?target=serveradmin.ru.

6️⃣ В прототипе айтема сделал предобработку:

Шаблон Prometheus ⇨ domain_expiry_days

Так как у нас данные поступают в формате Prometheus, с помощью этой предобработки мы сразу получаем данные о времени оплаты в формате целого числа.

7️⃣ В это же правило автообнаружения добавил 2 триггера.

На выходе мы имеем шаблон для мониторинга за оплатой доменов, где все настройки можно выполнять в веб интерфейсе Zabbix Server через макросы. Не нужны никакие скрипты на хостах. Единственное, что нужно сделать на сервере - запустить экспортер от Prometheus и убедиться, что с Zabbix Server есть к нему доступ.

Решение придумал и реализовал полностью сам. Не исследовал, что уже есть готового на эту тему. Мне видится такая реализация вполне удобной и функциональной. Если кто-то знает решение удобнее без скриптов, поделитесь информацией.

Шаблон публикую отдельно следующей публикацией. Проверял на версии Zabbix 7.0. Необходимо его импортировать на сервер и заполнить макросы либо в самом шаблоне, либо переопределить их после прикрепления к любому хосту.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/srv_admin/4680
Create:
Last Update:

Насколько мне известно, у Zabbix до сих пор нет стандартного шаблона для мониторинга за временем оплаты домена. Про крайней мере мне такой неизвестен. Если он уже есть и я его упустил, прошу подсказать.

В разное время я реализовывал различные способы решения этой задачи. Все они один за одним собирались в статью на сайте:

Мониторинг времени делегирования домена в zabbix

Все способы, описанные там, актуальны и работают. Основное их неудобство - реализация через скрипты, от чего уже давно хочется уйти, потому что неудобно ходить в консоль и править там список доменов. Можно собрать простенький пайплайн для этого, но это тоже перебор для такой простой задачи.

Я её однажды реализовал полностью в шаблоне без скриптов с помощью внешнего сервиса Whois API и его бесплатного тарифа. В принципе, вариант рабочий, но не всегда удобно регистрироваться во внешнем сервисе, получать от него токен и в целом зависеть от его доступности.

Прикинул, как можно сделать так же удобно, реализовав всю логику только в шаблоне Zabbix, в том числе в нём же в макросах вести список доменов, но при этом без внешнего сервиса. Решил для этого воспользоваться готовым экспортером для Prometheus. Он удобен тем, что отдаёт метрики по HTTP, а значит их можно забирать заббиксом напрямую через его HTTP Агент.

Рассказываю по шагам, как всё настроил.

1️⃣ Поднимаю на любой своей машине в докере domain_exporter. Можно тут же на сервере Zabbix.

2️⃣ В шаблоне Zabbix создаю правило обнаружения с любым типом. Для примера взял тип Внутренний Zabbix и ключ zabbix[boottime]. Значения этого ключа нам не нужны, так как мы их сразу же будем преобразовывать.

3️⃣ В правиле обнаружения настроил предобработку типа JavaScript с таким кодом:

var domains = '{$DOMAINS}'.split(/\s+/);
var data = [];
for (var i = 0; i < domains.length; i++) {
  data.push({ "{#DOMAIN}": domains[i] });
}
return JSON.stringify({ data: data });

Берём список доменов из макроса {$DOMAINS} и преобразуем их в строку:

{
 "data": [
  { "{#DOMAIN}": "serveradmin.ru" },
  { "{#DOMAIN}": "example.com" }
 ]
}

Это формат, который принимают прототипы айтемов и триггеров.

4️⃣ Создал в шаблоне макросы:

◽️{$DOMAINS} = serveradmin.ru example.com # разделитель доменов - пробел;
◽️{$PROM_URL} = http://10.30.52.9:9222/probe # адрес экспортера;
◽️{$WARN_DAYS} = 30 # порог в днях для триггера со статусом предупреждение;
◽️{$CRIT_DAYS} = 5 # порог в днях для триггера со статусом критический.

5️⃣ Создал прототип айтема с типом HTTP Agent. В качестве урла указал {$PROM_URL}, а для передачи имени домена использовал поля запроса:

target ⇨ {#DOMAIN}

То есть итоговый урл для получения данных будет такой: http://10.30.52.9:9222/probe?target={#DOMAIN}. А если развернуть lld-макрос, то такой: http://10.30.52.9:9222/probe?target=serveradmin.ru.

6️⃣ В прототипе айтема сделал предобработку:

Шаблон Prometheus ⇨ domain_expiry_days

Так как у нас данные поступают в формате Prometheus, с помощью этой предобработки мы сразу получаем данные о времени оплаты в формате целого числа.

7️⃣ В это же правило автообнаружения добавил 2 триггера.

На выходе мы имеем шаблон для мониторинга за оплатой доменов, где все настройки можно выполнять в веб интерфейсе Zabbix Server через макросы. Не нужны никакие скрипты на хостах. Единственное, что нужно сделать на сервере - запустить экспортер от Prometheus и убедиться, что с Zabbix Server есть к нему доступ.

Решение придумал и реализовал полностью сам. Не исследовал, что уже есть готового на эту тему. Мне видится такая реализация вполне удобной и функциональной. Если кто-то знает решение удобнее без скриптов, поделитесь информацией.

Шаблон публикую отдельно следующей публикацией. Проверял на версии Zabbix 7.0. Необходимо его импортировать на сервер и заполнить макросы либо в самом шаблоне, либо переопределить их после прикрепления к любому хосту.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#zabbix

BY ServerAdmin.ru






Share with your friend now:
tgoop.com/srv_admin/4680

View MORE
Open in Telegram


Telegram News

Date: |

The public channel had more than 109,000 subscribers, Judge Hui said. Ng had the power to remove or amend the messages in the channel, but he “allowed them to exist.” The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture. A vandalised bank during the 2019 protest. File photo: May James/HKFP. Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members. So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms.
from us


Telegram ServerAdmin.ru
FROM American