Мониторинг доменов с помощью Zennoposter

Возможности 22.05.2019
Возможности

Забыли продлить домен и потеряли его? Оплатили продление, но домен не продлился и был перехвачен?
У вас много доменов и вам сложно следить за продлением?

Наш whois мониторинг позволяет практически полностью решить эти проблемы.

Работает для ЛЮБЫХ доменов, а не только для тех, что регистрировались у нас!
Бесплатно!


Отличительной (и весьма приятной) особенностью нашего сервиса, по сравнению с различными органайзерами и "напоминалками" является то, что вам не нужно ничего настраивать, не нужно указывать даты истечения доменов и вообще не нужно ни о чем беспокоиться - просто добавьте список ваших доменов и сервис все сделает за вас.

Мониторинг отслеживает дату истечения ваших доменов из WHOIS и уведомлеяет вас на email, а так же в ICQ или Jabber , если whois домена говорит о том, что его необходимо продлить.

В ближайшее время будут добавлены также уведомления на SMS.

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


Это бесплатно! Для всех!



Вам понравилось? Поделитесь с друзьями /

Вопросы и ответы:

Когда и как идут уведомления?

    Сообщения о скором истечение доменов отправляются: за 45 суток, до истечения; за 30 суток; за 15, 10 и 5 суток до истечения домена, по одному разу в сутки. С момента, когда до истечения домена остается 5 суток - уведомления идут ежесуточно. После того, как домен истек - в течение месяца уведомления могут быть отправлены еще несколько раз, после чего его мониторинг и уведомления прекращается. Для того, чтобы активировать мониторинг такого домена, его необходимо добавить в систему заново.

Вы гарантируете, что все сообщения будут получены?

    Мы не даем никаких гарантий. Но сообщения обычно доходят.

Почему этот сервис бесплатен?

    Среди наших доменов: webxl.ru, webxl.name, webxl.info, webxl.biz, servers.webxl.ru и другие. А еще у нас очень много почты, а ведь уведомления от регистраторов приходят именно на почту. И автопродление работает не всегда - иногда, может неожиданно нехватить средств на балансе, произойти какой-нибудь сбой и т.п. Было бы очень обидно, потерять домен стоимостью $$$$ из-за сбоя. Поэтому мы и создали этот сервис. Мы не стремимся получить от него выгоду, но с популярностью сервиса растет и наша известность, поэтому, если вы хотите отблагодарить нас - расскажите о нашем сервисе своим знакомым и друзьям.

Мониторинг даты продления доменного имени — действие, которое нельзя недооценить. Я уже писал о том, и теперь давайте разберемся с другой частой проблемой — неожиданным окончанием срока регистрации доменного имени. Казалось бы, все регистраторы на сегодняшний день заранее об этом напоминают (причем обычно несколько раз). Но проблема в том, что эти письма либо не читают, либо они как-то попадают в спам. В общем, не все в курсе, что у них заканчивается срок регистрации доменного имени. В результате сайт не работает, люди не понимают, почему, и тратят иногда много времени, чтобы понять, что происходит. Тем временем доменное имя пропадает из кэша DNS, и через пару дней (или даже раньше, зависит от разных факторов) посетители перестают попадать на сайт. Давайте посмотрим, как мониторить дату окончания регистрации доменного имени. Естественно, скриптом на bash.

Как получить дату регистрации доменного имени

Самый простой вариант — использовать глобальную базу данных whois. В ней хранится информация о доменных именах, такая как организация, ответственное лицо, контакты для связи, дата регистрации и дата окончания срока регистрации. И это как раз то, что нам нужно. Давайте возьмем какой-нибудь популярный домен для примера. Пусть это будет yandex.ru. Вот какая информация хранится в базе whois об этом домене:

$ whois yandex.ru % By submitting a query to RIPN"s Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). domain: YANDEX.RU nserver: ns1.yandex.ru. 213.180.193.1, 2a02:6b8::1 nserver: ns2.yandex.ru. 93.158.134.1, 2a02:6b8:0:1::1 state: REGISTERED, DELEGATED, VERIFIED org: YANDEX, LLC. registrar: RU-CENTER-RU admin-contact: https://www.nic.ru/whois created: 1997.09.23 paid-till: 2017.10.01 free-date: 2017.11.01 source: TCI Last updated on 2017.01.03 05:46:31 MSK

Поле, которое нас интересует — «paid-till», это дата, до которой у нас оплачен домен.

Мониторинг даты продления доменного имени сделаем примерно так же, как и мониторинг сертификата, но заметно проще. Получаем данные о домене, ищем поле, содержащее дату окончания регистрации, если оно присутствует (если данные whois для этого домена не закрыты), получаем эту дату, получает сегодняшнюю дату и выводим разницу в днях. При желании можно добавить отправку письма, если осталось, скажем, меньше 30 дней до окончания регистрации. Но не всё так просто. Потому что есть как минимум три вида записей об окончании срока регистрации. Первый выглядит так:

Paid-till: 2017.10.01

Второй выглядит так:

Registrar Registration Expiration Date: 2020-09-13T21:00:00-0700

И третий выглядит так:

Registry Expiry Date: 2018-05-11T04:00:00Z

И нам, соответственно, надо предусмотреть все три варианта. Или, если встретится четвертый, то и четвертый. Пока давайте разберемся с этими тремя.

Вот как выглядит скрипт:

#!/bin/bash # Если параметр не указан, выводим подсказку и завершаем работу if [ "$1" == "" ] then cat << EOF Script that monitors how many days left until domain registration ends. Usage: $(basename $0) domain.name EOF exit fi # Получаем строку, содержащую дату окончания регистрации PAIDTILL=$(whois $1 | grep "paid-till\|Registrar Registration Expiration Date\|Registry Expiry Date") # Если такая строка не найдена, выходим с ошибкой if [ -z "$PAIDTILL" ] then echo "Registration end date is not available in whois database" exit 1 else # Если дата выглядит как ГГГГ.ММ.ДД, то добавляем 00:00:00 в конец [[ "$PAIDTILL" =~ "paid-till" ]] && PAIDTILL=${PAIDTILL//./-}" 00:00:00" # Удаляем из строки всё до двоеточия, само двоеточие # плюс автоматически будут удалены пробелы PAIDTILL=${PAIDTILL#*:} # Получаем текущую дату CURRENTDATE=$(date "+%Y-%m-%d %H:%M:%S") # Находим разницу между датами, получаем количество оставшихся дней DAYS_LEFT=$((($(date -d "$PAIDTILL" +%s) - $(date -d "$CURRENTDATE" +%s)) / 86400)) # Выводим, сколько дней осталось echo $DAYS_LEFT days left fi

Вот результат работы этого скрипта для разных доменов на момент написания статьи:

$ ./check-dn-reg.sh linux.org 492 days left $ ./check-dn-reg.sh yahoo.com 2206 days left $ ./check-dn-reg.sh yandex.ru 270 days left $ ./check-dn-reg.sh google.com 1349 days left $ ./check-dn-reg.sh ok.ru 331 days left $ ./check-dn-reg.sh vk.com 170 days left $ ./check-dn-reg.sh linux.org 492 days left $ ./check-dn-reg.sh linux.org.ru 345 days left

Согласитесь, удобно выглядит. Мониторинг даты продления доменного имени скриптом размером всего 660 байт. Уже можно использовать в мониторинге при помощи Nagios или Zabbix.

Если есть дополнения, замечания, пишите в комментарии.

Response Time Monitoring

Response time monitoring Response time monitoring is testing how fast is your site.

Response time monitoring is testing how fast is your site. It might be accessible, but bad performance can still make it unattractive for the clients. The monitoring of the response time allows you to check how the site acts as the time goes on. Do any of the scheduled tasks, like backup, updates etc affect the performance? Does the site works well for the whole world, or some regions of interest could meet a confusing delay?

The global monitoring system is quite useful -
as most of my outages are really regional outages out of my control. It helps to know this.

"

2017-02-01

Every year, millions of domain names are lost. What happens after domain expires?How long will your domain wait for you before someone grabs it? And how to omit this?

Monitor your domains for any changes. You can keep an eye on the state of available domains which you like, but don’t forget your own ones too. There is a wide variety of services, like HostTracker, which provide an easy, efficient way to track any changes of domain’s state.

Domains: do they have afterlife?

Everyone may face the problem of losing the domain name. Every year, millions of domain names are lost. Mostly, it happens unintentionally, the owners miss the renewal notices for various reasons and they do not figure out that they are in the process of losing their prized domain until it is too late! In this article you will get to know about the most known examples of domain expirations. Moreover, we will see that big companies, such as Microsoft, Foursquare, Yatra, are also insecure to "the drop game". Additionally, you will find out how to keep the domain name if you forget to pay for domain renewal. How long will your domain wait for you before someone grabs it? And how to omit this using HostTracker"s functions?

How Microsoft lost hotmail.co.uk

One of the most striking examples of dropping the domain name ocured in 2003 due to what is called the collective negligence. In spite of the fact, that people were trying to check up on what was happening and somehow to deal with the problem, Microsoft behaved as a typical bureaucratic organization. It turned a blind eye to people inquiries. Despite being warned that it’s time for the domain renewal, Microsoft overlooked these notifications. Therefore, the domain was returned to the pool of available domains. Moreover, its mail service wasn’t accessible in England.

Luckily, the domain was grabbed at once. The new owner was so kind that tried to inform Microsoft immediately that they needed to re-register the domain and restore the service. Nevertheless, Microsoft didn’t seem eager to get their site back and ignored these messages. Microsoft realized the issue just when journalists contacted it. Only then, the software giant reached a new owner of their domain. What is more, even after that, during a long period of time Microsoft had been stalling for time before the problem was sorted out. It seems that no one in the UK could deal with the problem, because only the central office was responsible for domain registrations.

Fortunately, hotmail.co.uk was regained. But still, Microsoft didn’t officially confirm that hotmail.co.uk had been dropped.

Only a registrar for all .uk domains shed light on this situation and born out that hotmail.co.uk had failed to be renewed despite being warned about the importance of the renewal procedure. Moreover, the registrar confirmed that the domain was snatched up by a private person. Apparently, all notifications via mail were ignored by the giant. It’s interesting that it wasn’t the very first time when something like that has happened with this company. In 1999, Microsoft had similar bad experience.

What happens after domain expires?

The procedure depends on registrar of the domain names. In addition, this procedure has changed many times over history. In this article we will be concerned with the most typical up-to-date procedure.

The first stage - the registrar shows loyalty to the client and gives extra time for domain renewal (grace period). Your grace period may take about from one to 2-3 weeks. This window can have a few deadlines - for example, a free update period, an additional fee etc. When the domain is in a grace period where all services are shut off, it isn’t available for registration by anybody else.

The second stage - the auction. After the registrar is sure that the domain renewal hasn’t been done, he puts it up for auction. It"s a registrar’s chance to bring in extra income- the domain can be auctioned off to the highest bidder. Let’s be frank, it works- many domains are snapped up at auction. Let’s look at some of the most popular auctions:

  • Go Daddy Auctions
  • NameJet
  • SnapNames.com

Each registrar cooperates with only one of these auction services. Domain names are exclusive to one auction, as the sell-off can’t take place at two locations. How does the auction work?

To begin with, there is often the opportunity to place a backorder. For example, if someone is very interested in scoring your domain name. In this case, the buyer will get the notification about the expiration status of the target domain and, definitely, leverage this opportunity. It’s worth noting that during this period, domains can be included in backorder auctions, where another participant can bid on your domain name. Generally, an auction can consist of several stages, as well as, after the main auction can follow the closeout of least desired domain names.

In addition to this, there are such sites that collect information and provide it in a more convenient way. For instance, these sites will help you to discover that more than 3 million domains have expired for the last 10 days. Furthermore, you will realize that even expensive (costing up to $ 500K) domains can be dropped after a while.

The third stage - domain "death". The domain disappears, and it can be retrieved on a common basis. Unfortunately, it’s unlikely if a domain name has any marginal value, as well as, consists of unambiguous words and is well-promoted. If so, the domain will probably get purchased, as nowadays it is also kind of business.

Some extra good examples

In 2010, a well-known website Foursquare forgot to renew their domain name. Luckily, they noticed this in time and quickly sorted out the problem. Nevertheless, customers couldn’t reach the site during this period of time. At that time the internet was bombarded with these news, yet the company has taken the advantage from this situation.

However, sad examples do exist too. In 2012, a popular Indian travel site Yatra.com, with millions of visitors and huge income, dropped their domain. Therefore they lost not only money, but also their reputation, clients and the trust of their partners. Eventually, the domain has been restored. The company hasn’t been as successful since.
Such common experience has held almost everyone once in a while in their history, from banks to giant companies. Actually, HostTracker had such experience too and it was the reason why we decided to write this article.

Web site monitoring service almost lost its domain

The truth is that сайт was almost lost despite having an instrument for keeping an eye for an expiration date and sending renewal alerts. Actually, this feature became HostTracker’s last resort, as all domains and sites are being monitored by HostTracker’s own monitoring system. In a manner of speaking, even though at that time the HostTracker company got the renewal alerts, everything seemed to be fine, as the auto-renewal was on. However, for some reason, the automatic payments didn’t pass through and the domain wasn’t renewed. To be honest, we are still not sure why did that happen, as their support could not explain the issue clearly. Luckily, we noticed the problem in time and solved it quickly.

  • Renew your domain in advance. In this case you might want to ask your registrar to set up your domain to auto-renewal in advance with your approval beforehand. Moreover, you will be notified in case of any problems.
  • Backorder does work. Just before HostTracker entered their grace period, someone had tried to contact HostTracker by mail to acquire the domain name. So pay attention to such things!
  • You would better not enter the grace period. Once the domain expires, it can be easily renewed at the regular price within a few days and HostTracker showed this. The disadvantage is that all customers will be greeted with the message that domain page isn’t available. You should never allow a domain to expire because working on recovering it can take a vast amount of time.
  • Monitor your domains for any changes. You can keep an eye on the state of available domains which you like, but don’t forget your own ones too. There is a wide variety of services, like HostTracker, which provide an easy, efficient way to track any changes of domain’s state. Check out the description of such HostTracker’s tools here in our blog.
more blog

Мониторинг доменов через Dominder (проект закрыт)

Всем кто работает с сайтами, периодически приходится получать данные о доменных именах, следить за своевременной оплатой их аренды, проверять доступность ресурсов расположенных по адресам и узнавать статистику.


Для всего этого созданы специальные программы и сервисы, но есть один проект, который поможет вам решить все эти дела.

Мониторинг доменов через Dominder.com – это самый лучший вариант следить за различными доменными именами. Система многофункциональна и бесплатна, а помимо функции оповещений о том, что домен необходимо продлевать, здесь есть множество других полезных инструментов.

Проект закрыт

Как использовать Dominder?

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

В правом верхнем углу есть кнопка «Добавить домены», а когда вы укажите адреса, система сразу же начнет собирать разные данные:

Для примера мы добавили несколько доменов в систему, в том числе и домен нашего блога. В первом столбце представляется количество дней, через которое истекает оплата домена. Пинг показывает скорость загрузки страниц, заметки как правило пустые, а последний столбец указывает на безопасность ресурса.

Сбоку данной таблицы находится несколько вкладок, которые отвечают за различные функции сайта:

Whois – здесь вам представляется информация о доменах, которую вы могли бы получить через Whois. В частности – это кто является владельцем и регистратором, а также дата, когда истекает оплата.
Напоминания – здесь вы можете настроить уведомления для каждого домена. Для этого нажимаете на его название и переходите к редактированию.

После этого вам представляется следующая форма:

Здесь вы сможете заполнить все параметры оповещений и будете получать их, чтобы не забывать вовремя оплачивать доменное имя.

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

Заметки – это не самый полезный инструмент, который позволяет прикрепить к домену какой-нибудь текст или файл. Может пригодиться, чтобы помечать определенные группы доменов.

Безопасность – система проверяет каждый добавленный вами домен на наличие вирусов. Проводится анализ через самые популярные антивирусные системы.

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

Финансы – последняя и самая важная вкладка, в которой отображаются расходы по каждому из доменов. Что за расходы? Например, за отправку уведомлений. Система предоставляет 14 дневный тестовый период, при котором можно добавлять до 100 доменов.

Когда 2 недели выйдут, придется платить за использование системы:

Как видите, всего за 3.5$ в месяц, вы можете полноценно следить за своими доменами и получать уведомления. За эти деньги вам предоставляется 20 СМС, если потребуется получать больше оповещений, то каждое из них обойдется ещё в 10 центов.

Система Dominder.com помогает каждому пользователю своевременно оплачивать домены и предоставляет прочий полезный функционал, ведь все хотят знать, что их сайты не заражены вирусами и стабильно работают. Нет смысла пользоваться большим количеством инструментов, когда их можно найти в одном месте.

Вам также будет интересно:


Буду благодарен, если поделитесь этой статьей в социальных сетях:

Статья исследование на тему проверки и мониторинга данных из whois сервисов. Задача мониторинга времени делегирования домена на деле оказалась не такой простой, как может показаться. Ниже я подробно расскажу обо всех нюансах мониторинга времени оплаты домена с помощью zabbix.

Данная статья была изначально написана пару лет назад. В целом, она отвечала на вопрос по мониторингу за делегированием доменов, но со временем к ней стало появляться все больше вопросов. В частности, появлялись новые доменные зоны, информацию по которым не получалось достать выбранным методом. К слову, в первоначальной версии статьи использовалась только одна проверка с помощью ruby .

Чем больше доменов я ставил на мониторинг, тем чаще сталкивался с тем, что по каким-то зонам не мог получить инфу. Из свежих примеров — .pro, .fm, .io. Наверняка были и другие, но я сталкивался с проблемами именно в этих зонах. Решил разобраться с этим вопросом поподробнее.

К моему удивлению, оказалось, что простого, понятного и надежного решения по получению информации о времени делегирования домена просто не существует. Очень подробно разобрана эта тема в статье на хабре . Прочитав и осознав все, что в ней написано, я понял, что реализовать простую потребность в мониторинге доменов малой кровью не получится.

Ниже я опишу несколько консольных способов получения информации о времени оплаты домена для передачи этой информации в zabbix:

  • Ruby gem Whois.
  • Консольная утилита linux — whois, jwhois.
  • Питоновский модуль — python-whois.
  • Whois client для node.js.

Первый способ был описан давно, поэтому он по содержанию немного выбивается из общего повествования. Мне не захотелось редактировать всю статью. Я только добавил в начало описание проблемы и другие способы получения информации в конце. Сама реализация со стороны zabbix осталась той же самой. Меняются только скрипты, которые передают в zabbix данные о сроках делегирования домена.

Для удобного выбора нужного способа, составил табличку, где указал, какой из способов какие домены поддерживает. Использовал только те домены, которые нужны мне. Стандартные домены.ru и.com поддерживают все описанные способы.

способ / домен pro io fm
ruby + + +
whois +
python + +
nodejs + +

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

То же самое на Debian 9, если предпочитаете его:

Подготовка к мониторингу за доменами

Для мониторинга за сроком делегирования доменов мы будем использовать скрипт на языке программирования Ruby . Чтобы скрипт работал, необходимо установить Ruby на сервер. Если вы используете, как я, сервер на базе CentOS 7, то можете воспользоваться моей . Там как раз речь идет об установке необходимого гема whois-parser для мониторинга срока делегирования домена.

Парсинг времени делегирования домена через ruby

Если у вас настроен и готов к работе zabbix и установлен ruby, приступаем к настройке скриптов. Идем в папку /etc/zabbix/scripts и создаем там скрипт:

# mcedit /etc/zabbix/scripts/domain_left.rb #!/usr/bin/env ruby require "whois-parser" record = Whois.whois(ARGV) parser = record.parser expire = parser.expires_on.strftime("%Y-%m-%d") today = Time.now.strftime("%Y-%m-%d") expire_date = DateTime.parse(expire) today_date = DateTime.parse(today) left = (expire_date - today_date).to_i puts left

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

# /etc/zabbix/scripts/domain_left.rb сайт 394

Отлично, на выходе просто число, которое очень удобно передать в zabbix. Данный скрипт я написал не сам, а подсмотрел у автора этой статьи. У него есть большой минус. В скрипте используется whois-parser и его функция expires_on. Сделано это для упрощения создания скрипта. Не пришлось вручную парсить вывод, за нас это сделали авторы гема whois-parser. Но эти функции работают не со всеми доменами. В разных зонах вывод может быть разным. Покажу на примере.

Для этого создадим простой скрипт на ruby, который будет просто выводить информацию whois без парсинга, в сыром виде.

#!/usr/bin/env ruby require "whois-parser" domain = ARGV whois = Whois::Client.new r = whois.lookup(domain) puts r

Сохраняем скрипт и проверим с его помощью 2 домена: из зоны.pro и зоны.ru.

# ./domain.rb server.pro # ./domain.rb сайт

Если вы внимательно посмотрите на вывод, то обнаружите, что в первом случае строка с информацией о сроке оплаты домена выглядит так:

Registry Expiry Date: 2019-08-18T00:00:00Z

а в другом вот так:

Paid-till: 2019-08-09T11:01:06Z

Whois-parser умеет обрабатывать только первую строчку, вторую он не понимает, поэтому приведенный выше скрипт выдаст ошибку. Но в целом, библиотека ruby whois по моим опытам корректно обрабатывает больше всего доменов. Нужно только правильно распарсить вывод. Я программировать на ruby не умею, разбираться у меня не было времени, поэтому я оставил это решение как есть. Можно, конечно, выводить в текстовый файл, а потом парсить вывод через bash. Это я умею, но не захотелось костылить таким образом. Да и в целом, мне не нравится этот способ тем, что надо ставить ruby и регулярно обновлять его библиотеку. Только это гарантирует поддержку новых зон и всех изменений по старым.

В общем и целом способ с приведенным скриптом на ruby работает не хуже всех остальных способов, а если нормально распарсить выводы по всем нужным зонам, то это будет самый информативный и надежный вариант, при условии, что вы будете везде ставить ruby и обновлять библиотеку whois. Только этот способ показывал информацию по всем доменам, что мне попадались. Если доделаю скрипт, чтобы он работал со всеми доменами — обновлю.

Пока же я просто сделал костыль и распарсил вывод с помощью bash следующим образом:

#!/bin/bash DOMAIN="$1" data=$(/etc/zabbix/scripts/domain-simple.rb $1 | grep -E "paid|Expir" | grep -o -E "{4}.{2}.{2}|{2}/{2}/{4}" | tr . / | awk "NR == 1") expire=$((`date -d "$data" "+%s"`)) today=$((`date "+%s"`)) lefts=$(($expire - $today)) leftd=$(($lefts/86400)) echo $leftd

Сам скрипт domain-simple.rb:

#!/usr/bin/env ruby require "whois-parser" record = Whois.whois(ARGV) puts record

Я просто делаю полный вывод whois через ruby, а распарсиваю его башем, так как умею в нем работать. Получился вариант, который работает со всеми доменами. Можно этим скриптом передавать данные в zabbix.

Linux утилиты whois и jwhois

В комментариях к первоначальной статье мне подсказали про консольную утилиту whois, а позже я нагуглил и еще одну — jwhois. Я посмотрел на них внимательно и написал простенький скрипт для парсинга информации о делегировании. Данный способ самый простой и удобный. Обе утилиты ставятся через yum, первая из базового репозитория, вторая из . Не нужно дополнительных инструментов. Информативность средняя — все популярные домены есть, в том числе.io, но.pro и.fm не поддерживает. Увы и ах, мне они нужны.

Установим утилиту whois:

# yum install whois

Простой скрипт, который парсит вывод утилиты и показывает, сколько осталось дней до завершения проплаченного периода домена.

#!/bin/bash DOMAIN="$1" data=$(whois $1 | grep -E "paid|Expir|expir" | grep -o -E "{4}.{2}.{2}|{2}/{2}/{4}" | tr . / | awk "NR == 1") expire=$((`date -d "$data" "+%s"`)) today=$((`date "+%s"`)) lefts=$(($expire - $today)) leftd=$(($lefts/86400)) echo $leftd

Сохраняйте скрипт и проверяйте работу. Работает так же, как и скрипт для ruby.

# ./domain_left.sh сайт 358

Я для себя решил остановиться на этом способе, как самом простом и универсальном.

Модуль python-whois для мониторинга оплаты доменов

В рамках своего исследования я решил проверить как с помощью python можно получать информацию whois. Я подозревал, что должен быть готовый модуль для этого и не ошибся. Такой модуль есть — python-whois . Для его работы нужен python версии 2, который по-умолчанию стоит в системе CentOS 7, что очень удобно.

Нам нужно только установить этот модуль через pip. Pip для 2-й версии ставится из .

# yum install python2-pip # pip install python-whois

#!/usr/bin/env python import whois from datetime import datetime from sys import argv,exit now = datetime.now() domain = argv w = whois.whois(domain) if type(w.expiration_date) == list: w.expiration_date = w.expiration_date else: w.expiration_date = w.expiration_date domain_expiration_date = str(w.expiration_date.day) + "/" + str(w.expiration_date.month) + "/" + str(w.expiration_date.year) timedelta = w.expiration_date - now days_to_expire = timedelta.days

Проверка:

# ./domain-left.py сайт 358

Работает так же, как и предыдущие скрипты. Решение на python поддерживает зоны.pro, .fm, не поддерживает.io.

Whois клиент для Node.js

Последнее рассмотренное мной консольное решение по получению данных whois основывается на клиенте для Node.js. Этот способ неудобен, как и с ruby, тем, что надо отдельно ставить node на сервер. Если python на centos сервере точно будет, то node придется ставить отдельно. Сделаем это.

# curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - # yum install nodejs

Устанавливаем whois client:

# npm install whois

Под node.js я программировать вообще не умею и со скриптами не работал никогда. Так что готового скрипта для zabbix не сделал. Покажу на простом примере, как выполнять проверку. Делаем скрипт и в нем сразу указываем домен для проверки.

Var whois = require("whois") whois..log(data) })

Запускаем его:

# node domain-left.js

В выводе увидите привычную информацию whois в таком же виде, как и для остальных проверок. Если бы этот способ проверял все необходимые мне домены, я бы его доделал. Он понимает домены.pro и.io, но не понимает.fm. Так что я не стал на нем подробно останавливаться.

Скрипт auto discovery доменов для zabbix

Для того, чтобы автоматом передавать в заббикс сразу все наши домены, создадим еще один скрипт, который будет парсить текстовый файл со списком доменов и передавать его в zabbix.

# mcedit /etc/zabbix/scripts/domain_discovery.sh #!/bin/bash JSON=$(for i in `cat /etc/zabbix/scripts/domain_list.txt`; do printf "{\"{#DOMAIN}\":\"$i\"},"; done | sed "s/^\(.*\).$/\1/") printf "{\"data\":[" printf "$JSON" printf "]}"

И последнее — создадим файл со списком доменов. Каждый домен с новой строки.

# mcedit /etc/zabbix/scripts/domain_list.txt yandex.ru mail.ru

Проверим работу скрипта для парсинга:

# /etc/zabbix/scripts/domain_discovery.sh {"data":[{"{#DOMAIN}":"mail.ru"},{"{#DOMAIN}":"yandex.ru"}]}

Вывод подходящий для передачи в заббикс.

Настройка zabbix агента

Я настраиваю zabbix агент на работу со скриптом на ruby. Вы можете выбрать скрипт по своему усмотрению. Изменить нужно будет только путь к скрипту в описании итема domain.expire.

Добавим скрипты через пользовательские параметры (UserParameter) агента. Для этого идем в папку с пользовательскими скриптами /etc/zabbix/zabbix_agentd.d и создаем там конфиг для наших параметров:

# mcedit /etc/zabbix/zabbix_agentd.d/domain.conf UserParameter=domain.discovery[*], /bin/bash /etc/zabbix/scripts/domain_discovery.sh UserParameter=domain.expire[*], /usr/local/bin/ruby /etc/zabbix/scripts/domain_left.rb $1

Обращаю внимание на путь к ruby. В разных системах он может быть разный. Проверьте куда он у вас установлен и отредактируйте путь. Проверить можно командой:

# whereis ruby ruby: /usr/lib64/ruby /usr/local/bin/ruby /usr/local/lib/ruby /usr/share/ruby /usr/src/ruby-2.3.1/ruby.o /usr/src/ruby-2.3.1/ruby /usr/src/ruby-2.3.1/ruby.c

Сохраняйте конфиг и перезапускайте zabbix agent:

# systemctl restart zabbix-agent

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

Создание шаблона для наблюдения за доменами

Импортируете шаблон себе в систему. Назначаете его хосту, в котором настроили скрипты и ждете появления данных. Минут через 5 проверяете в Latest Data:

Забавно, время делегирования обоих доменов одинаковое. Сначала подумал, что глюк, решил проверить вручную. Оказалось, что все верно. У них одинаковый срок продления. Без проблем работает наблюдение за доменами.рф. Их нужно перевести в Punycode и добавить так же, как и обычные домены.

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

Заключение

Онлайн курс "Администратор Linux"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по.

Рекомендуем почитать

Наверх