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

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

Под моим управлением находится куча всевозможных доменов. Я веду табличку в Exel по эти доменам и ставлю свой контактный e-mail у регистраторов, чтобы не пропустить окончание делегирования. Давно собирался каким-то образом автоматизировать этот процесс. Наконец дошли руки и я решил настроить мониторинг срока делегирования доменов с помощью Zabbix.

Введение

Как обычно начал с гугления темы. На удивление, не нашел практически ничего на эту тему, кроме одного метода с использованием языка ruby и гема whois. В этой статье автор неплохо описывает данный способ. Используются 2 скрипта: один для парсинга файла со списком доменов, второй для определения времени делегирования. В заббиксе настраивается шаблон с автоопределением доменов, так что не нужно заводить отдельные итемы для каждого домена, достаточно их просто добавлять в текстовый файл.

В англоязычном гугле я еще раз нашел рецепт со скриптом на ruby, но без автообнаружения. Решил не изобретать велосипед, а воспользоваться готовыми наработками. Я их осознал, проверил и представляю вам подробную инструкцию. Она будет более понятна и подробна, нежели приведенная выше ссылка.

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

  1. Установка CentOS 7.
  2. Настройка CentOS 7.
  3. Установка и настройка zabbix сервера.

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

  1. Установка Debian 9.
  2. Базовая настройка Debian 9.
  3. Установка и настройка zabbix на debian.

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

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

Создание скриптов

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

# mcedit /etc/zabbix/scripts/domain_left.rb
#!/usr/bin/env ruby

require 'whois-parser'

record = Whois.whois(ARGV[0])
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 serveradmin.ru
394

Отлично, на выходе просто число, которое очень удобно передать в 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 агента

Добавим скрипты через пользовательские параметры (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:

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

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

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

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

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

Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по Zabbix

Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 3.2 на CentOS 7
  • Обновление 3.0 -> 3.2
  • Обновление 2.4 -> 3.0
  • Установка Zabbix Proxy
  • Работа на NGINX
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.0 до новой версии 3.2.
Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.
Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.
Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.
Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology
Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.
Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.
Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.
Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)
Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.
Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.
Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.
Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов
Настройка мониторинга web сайта в zabbix. Параметры для наблюдения - доступность сайта, время отклика, скорость доступа к сайту.
Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.
Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.
Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.
Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

9 комментариев

  1. SolarW

    RUBY — это круто…
    https://mnorin.com/monitoring-daty-prodleniya-domennogo-imeni.html — так не проще?

    • Zerox

      Спасибо за ссылку, так проще. Но мне под руку сразу попался скрипт на руби, поэтому я на нем сделал. В принципе, никаких сложностей у меня не возникло. Про консольный whois я просто не знал.

    • Vadim

      в этой статье скрипт дату не верно вычисляет, вернее paid-till видимо ввиду того что при выводе результата от whois в строке paid-till стоит символ T

      • Max

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

  2. Vadim

    на команду

    # /etc/zabbix/scripts/domain_left.rb serveradmin.ru

    ругается

    root@zabbix:/etc/zabbix/zabbix_agentd.d# /etc/zabbix/scripts/domain_left.rb serveradmin.ru
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require’: cannot load such file — whois (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require’
    from /etc/zabbix/scripts/domain_left.rb:2:in `’

  3. Artem

    Добрый день!
    Только начал изучать zabbix. Спасибо большое автору за труды.
    Подскажите, пожалуйста, этот пункт:
    «Назначаете его хосту, в котором настроили скрипты и ждете появления данных. Минут через 5 проверяете в Latest Data»
    Создал хост, назначил шаблон. Какой ставить интерфейс агента, где и какие скрипты необходимо настроить?

  4. ОрТ

    Установил все по вашей инструкции, заббикс агент тоже установил, скрипты при проверке в консоли выводят информацию. Также проверяю напрямую через передачу параметров в заббикс агент:
    zabbix_agentd -t ‘domain.expire[bash.im]’
    domain.expire[bash.im] [t|323]
    Значение возвращает.
    Создал узел сети, добавил туда шаблон ваш, но в поле Доступность ZBX серым цветом так и остается. Куда копать?

    • ОрТ

      С этим разобрался в шаблоне было указано Zabbix агент(активный), надо было выбрать просто Zabbix агент, ZBX стал зеленым, в последних данных появились домены, но данных самих нет, просто строчки с Domain xxxxxxx.com expire after без количества оставшихся дней.

Добавить комментарий

Ваш e-mail не будет опубликован.