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

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

5 1 голос
Рейтинг статьи
Опубликовано в рубрике Zabbix
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (7 оценок, среднее: 5,00 из 5)
Загрузка...
Подписаться
Уведомить о
guest
50 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Сергей
5 лет назад

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

Сергей
5 лет назад

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

linuxman
5 лет назад

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
5 лет назад

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

linuxman
5 лет назад

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

linuxman
5 лет назад

Есть папка /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
Ответить на  Spiridonov Konstantin
5 лет назад

Есть но им на работе трудно пользоваться.
Есть и вайбер, ватсапп, ими могу писать не часто но получается.

linuxman
Ответить на  Spiridonov Konstantin
5 лет назад

OS CentOS 7
Скайп есть, попытался добавить но нашлось столько с твоих скайпом одинаковых даже не знал кого добавить.

linuxman
5 лет назад

Не могу понять ответ :
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
Ответить на  Spiridonov Konstantin
5 лет назад

Я поменял Cmnd_Alias ZABBIX_CMD = /usr/bin/nmap, /usr/lib/zabbix/externalscripts/checkdomainexpire.sh, /usr/bin/whois
Но ничего не изменилось.

linuxman
5 лет назад

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
Ответить на  Spiridonov Konstantin
5 лет назад

Значит не все так плохо.

linuxman
5 лет назад

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

linuxman
5 лет назад

Да вторая команда отдает 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
5 лет назад

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
5 лет назад

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

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

linuxman
5 лет назад

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

linuxman
5 лет назад

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

linuxman
5 лет назад

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

linuxman
5 лет назад

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

Сергей
5 лет назад

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

Сергей
5 лет назад

Ну я так и сделаю.
Но странная вещь , показывает проблему
Красная кнопка рядом с графиком ( /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

Сергей
5 лет назад

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

Сергей
5 лет назад

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

trytounderstand
trytounderstand
5 лет назад

Приветствую Вас!
Большое спасибо за проделанную работу, однако у меня появилась проблема по получении информации. График не дает никакой информации [нет данных]
я так понял, что проблема в настройке 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
Заранее спасибо за уделенное время!

trytounderstand
trytounderstand
Ответить на  Spiridonov Konstantin
5 лет назад

Все заработало!
Так как я новичок, не знал что он обновит информацию через 5 часа или если обносить принудительно!
Спасибо за уделенное время, и за скрипт!
с:

duallink
duallink
5 лет назад

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