Registration Expiry или отслеживание времени регистрации домена в Zabbix

Довольно простой шаблон и скрипт, позволяющие мониторить время истечения регистрации доменов  – Registration Expiry

Скрипт, определения срока окончания регистрации.

Данный скрипт позволяет определить, сколько осталось времени до окончания регистрации. При этом необходимо обратить внимание, что используются различные поля описания времени окончания регистрации. Так например, Registration Expiration Date, Registry Expiry Date, paid-till Если необходимо,можно дописать новые патерны. В качестве основной утилиты используется программа whois, которая должна быть установлена в системе

Поместим его в каталог, указанный в конфигурации сервера как ExternalScripts=/usr/lib/zabbix/externalscripts и установим права и разрешим выполнение

Настройка zabbix_agentd.conf

Добавляем к конфигурационный файл zabbix агента на сервере исполняемый скрипт

После чего перезапустим агент

Шаблон Zabbix

Так выглядит информация, которую возможно получить при помощи скрипта и шаблона

Скачать шаблон zbx_export_templates

<?xml version=”1.0″ encoding=”UTF-8″?>
<zabbix_export>
<version>3.4</version>
<date>2018-06-15T11:29:18Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Domain Expiration</template>
<name>Domain Expiration</name>
<description/>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>Домены</name>
</application>
</applications>
<items>
<item>
<name>Cрок регистрации домена {$DOMAINNAME}</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>domainexpire[{$DOMAINNAME}]</key>
<delay>4h</delay>
<history>90d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units>дней</units>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>Домены</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
</items>
<discovery_rules/>
<httptests/>
<macros/>
<templates/>
<screens/>
</template>
</templates>
<triggers>
<trigger>
<expression>{Domain Expiration:domainexpire[{$DOMAINNAME}].last()}&lt;30</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>Регистрация домена {$DOMAINNAME} заканчивается</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>4</priority>
<description/>
<type>0</type>
<manual_close>0</manual_close>
<dependencies/>
<tags/>
</trigger>
</triggers>
</zabbix_export>

Данный шаблон необходимо импортировать в Zabbix.

Настройка имени домена, для мониторинга

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

Триггер уведомления об окончании срока действия можно скорректировать по своему усмотрению, в данном примере используется месяц

Attantion

Не забудьте продлить свой домен!!! )

Просмотров: 430

Опубликовано в рубрике Zabbix
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (7 оценок, среднее: 5,00 из 5)
Загрузка...

50
Оставить комментарий

Пожалуйста, авторизуйтесь чтобы добавить комментарий.
avatar
23 Цепочка комментария
27 Ответы по цепочке
1 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
5 Авторы комментариев
Spiridonov KonstantinduallinktrytounderstandСергейSpiridonov Konstantin Авторы недавних комментариев
  Подписаться  
новее старее большинство голосов
Уведомление о
Сергей
Гость

Доброе утро! Мне понравился пост,я рад что нашел его. Но есть некоторые пробелы в шагах реализации. Допустим нигде на указано что каждый домен надо добавить в “Узлы сети” и потом добавить в Шаблоны выше указный Шаблон. Конечно очень понятно было добавить “Макросы” для данного домена. И не указано что можно или нужно ещё добавить из других пробелов ка например “ICMP loss или ICMP ping”. Но это я понял как делается, но было бы хорошо указать в посте. Самый главный вопрос это я сделал все пошагово и проверил в ручную домен проверяется нормально, но в самом Zabbix домены появляются и в… Подробнее »

Сергей
Гость

Спасибо заранее если получиться что-то исправить.

linuxman
Участник

zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[kost.su]
sh: /usr/lib/zabbix/externalscripts/checkdomainexpire.sh: Permission denied
sudo -u zabbix zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[kost.su]
sh: /usr/lib/zabbix/externalscripts/checkdomainexpire.sh: Permission denied
Хотя весь путь к /usr/lib/zabbix/externalscripts/checkdomainexpire.sh принадлежит
пользователю zabbix .
Странно это, почему отвечает Permission denied под пользователем кому принадлежит файл.

linuxman
Участник

А вот так
/usr/lib/zabbix/externalscripts/checkdomainexpire.sh kost.su 347 отвечает нормально.

linuxman
Участник

Да все так и есть как вы описали выше по 1, 2
Не на sudoers вроде обычные разрешения на CentOS 7
А что именно может помешать?

linuxman
Участник

Есть папка /etc/sudoers.d , а там cat zabbix_sudo Defaults:zabbix !requiretty Cmnd_Alias ZABBIX_CMD = /usr/bin/nmap #zabbix ALL = (other_user) NOPASSWD: ALL zabbix ALL = (root) NOPASSWD: ZABBIX_CMD 1) Но как я смотрю на папку zabbix/ drwxr-xr-x. 2 zabbix zabbix 4096 июл 4 12:12 scripts drwxr-x—. 2 apache apache 4096 июн 27 11:02 web -rw-r–r–. 1 root root 10785 июл 9 15:59 zabbix_agentd.conf (может дело в правах ) drwxr-xr-x. 2 root root 4096 июл 4 14:04 zabbix_agentd.d -rw-r—–. 1 root zabbix 15116 май 16 15:34 zabbix_server.conf 2) есть папка zabbix/scripts/ пара скриптов там на руте работают правильно

linuxman
Участник

Не могу понять ответ :
sh: /usr/lib/zabbix/externalscripts/checkdomainexpire.sh: Permission denied
А вот так
sudo sh /usr/lib/zabbix/externalscripts/checkdomainexpire.sh kost.ru работает.
Да и дошло то того что получаю ответ :
sudo -u zabbix zabbix_get -s 127.0.0.1 -p 10050 -k sh domainexpire[kost.su]
zabbix_get [13825]: invalid parameter “domainexpire[kost.su]”

linuxman
Участник

sh Добавил случайно .
Ответ тот же
sudo -u zabbix zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[kost.su]
sh: /usr/lib/zabbix/externalscripts/checkdomainexpire.sh: Permission denied

linuxman
Участник

Доброе утро это сработало.
Ответы такие же как и у тебя.

linuxman
Участник

Да вторая команда отдает Permission deny ps -uax | grep agent zabbix 29603 0.0 0.0 95292 1292 ? S 08:58 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf zabbix 29604 0.0 0.0 95292 1608 ? S 08:58 0:02 /usr/sbin/zabbix_agentd: collector [idle 1 sec] zabbix 29605 0.0 0.0 95416 2488 ? S 08:58 0:01 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection] zabbix 29606 0.0 0.0 95416 2480 ? S 08:58 0:01 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection] zabbix 29607 0.0 0.0 95416 2508 ? S 08:58 0:01 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection] zabbix 29608 0.0 0.0 95424 2252 ? S 08:58 0:00 /usr/sbin/zabbix_agentd: active checks… Подробнее »

linuxman
Участник

sudo -u zabbix zabbix_get -s 127.0.0.1 -p 10050 -k “echoz[TEST]”
TEST выходит.
На sudo -u zabbix zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[ya.ru]
sh: /usr/lib/zabbix/externalscripts/checkdomainexpire.sh: Permission denied это все как роот

linuxman
Участник

ДА это был виновен SELinux в этом!!!
sudo -u zabbix zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[ya.ru]
20
Но можно было бы настроить чтобы SELinux понимал эти комманды?
Наверное теперь можно и zabbix bash убрать.

Спасибо за помощь интересно было понять.

linuxman
Участник

Данные пока ещё не появились но думаю уже завтра или сегодня должны появиться.
Если нужна помощь для поста могу дать что я делал, то что выше описал в самом начале.

linuxman
Участник

1) Выше описанное с шаблоном и скриптом
2) Создаём группу узлов сети
3) Создаём узел сети для каждого домена (отдельно для каждого)
4) После прикрепления данного шаблона к хосту, необходимо задать макрос, а именно прописать имя домена .
Примерно так.

linuxman
Участник

Привет!
Вот как посмотрел сегодня данных так и нет в График.

linuxman
Участник

Да наверно нужно понять в чем дело.
Так как изначально его ставил не я, поэтому может я что-то и пропускаю.
Но в основном я многое что установлено понял уже.
Так что не проблема разобраться, но очень хочется понять где и что упускаю.

Сергей
Гость

Привет!
Да сейчас появилось значения нашёл и где проблема была.
Интервал обновления в 4 часа это нормально ?

Сергей
Гость

Ну я так и сделаю.
Но странная вещь , показывает проблему
Красная кнопка рядом с графиком ( /usr/lib/zabbix/externalscripts/domainexpire: [2] No such file or directory)
Но он там есть :
zabbix zabbix 1049 июл 4 18:06 /usr/lib/zabbix/externalscripts/domainexpire
И в агенте
UserParameter=domainexpire[*], /usr/lib/zabbix/externalscripts/domainexpire $1

Сергей
Гость

Привет!
Странная вещь, смотрю сегодня красная кнопка с проблемой исчезла значит настроил правильно но в графике данных так и нет, только какая то серая масса в графике.

Сергей
Гость

К сожалению ничего не показывает.
SELinux status: disabled
SELinux Я давно уже убрал.

trytounderstand
Гость
trytounderstand

Приветствую Вас!
Большое спасибо за проделанную работу, однако у меня появилась проблема по получении информации. График не дает никакой информации [нет данных]
я так понял, что проблема в настройке zabbixa
проверил, zabbix может запустить

cat /etc/passwd
zabbix:x:995:992:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
[root@localhost home]# su - zabbix -s /bin/sh
su: warning: cannot change directory to /var/lib/zabbix: Нет такого файла или каталога
-sh-4.2$ /usr/lib/zabbix/externalscripts/checkdomainexpire.sh test.ru
62

не подскажете, какова полная процедура внесения ?
p.s. приложил скрины настройки на zabbix
е
https://ibb.co/svYzjXx
https://ibb.co/ZH9sWYG
https://ibb.co/NrLNSSg
https://ibb.co/ZzcdyWM
Заранее спасибо за уделенное время!

duallink
Гость
duallink

Судя по пингу (и комментариям) – у Вас в адресе узла указан 127.0.0.1 и пингуется локалхост, а не сервер у которого проверяется продленность домена.