Перейти к основному содержанию
 

Zabbix — срок действия домена

Zabbix

Одна из задач системного администратора - следить за сроком истечения оплаты домена. Автоматизируем процесс через заббикс.

Ссылки

Вторая версия скрипта мониторинга срока действия домена:

Zabbix — срок действия домена 2

Третья версия скрипта мониторинга срока действия домена:

Zabbix — срок действия домена 3

Установка

Установим на заббикс сервер whois, у меня ubuntu:

apt-get install whois

В конфиге заббикс сервера смотрим путь к скриптам в переменной ExternalScripts:

ExternalScripts=/usr/lib/zabbix/externalscripts

Создаём там новый скрипт:

cd /usr/lib/zabbix/externalscripts
touch checkdomainexpire.sh
chmod +x ./checkdomainexpire.sh
chown zabbix\: checkdomainexpire.sh

Содержимое скрипта:

#!/bin/bash

# получаем имя домена
DOMAIN=$1

#если домен не передан - выводим массив для автообнаружения
if [[ $DOMAIN = "" ]]; then
    #заполняем массив из файла и выводим в JSON
    readarray DOMAINLIST < /usr/lib/zabbix/externalscripts/checkdomainexpire_domain_list.txt
    if ((${#DOMAINLIST[*]}>0)); then
        echo "{"
        echo "  \"data\": ["
        for ((a=0; a < ${#DOMAINLIST[*]}; a++))
        do
            x=${DOMAINLIST[$a]};
            x=${x//[[:space:]]/};
            echo "    {"
            echo "      \"{#DOMAIN}\": \"${x}\""
            if ((a+1 < ${#DOMAINLIST[*]})); then
                echo "    },"
            else
                echo "    }"
            fi
        done
        echo "  ]"
        echo "}"
    fi
else

    # получаем имя зоны
    ZONE=`echo $DOMAIN | sed 's/\./ /' | awk '{ print $2 }'`

    # получаем дату протухания домена
    # Должна вернуться в формате ГГГГ-ММ-ДД (год-месяц-день)
    case "$ZONE" in
    ru|net.ru|org.ru|pp.ru|рф)
        DATE=`whois $DOMAIN | grep paid-till | awk '{ print $2 }' | sed 's/\./-/g'`
        ;;
    spb.ru|msk.ru)
        DATE=`whois -h whois.nic.ru $DOMAIN | grep paid-till | awk '{ print $2 }' | sed 's/\./-/g'`
        ;;
    re)
        DATE="$(whois $DOMAIN | awk '/[Ee]xpir.*[Dd]ate:/ || /[Tt]ill:/ || /expire/ {print $NF; exit;}')"
        DATE=`date --date=$DATE +%d/%m/%Y`
        ;;
    org|com|net)
        DATE=`whois $DOMAIN | grep "Registry Expiry Date:" | sed 's/Registry Expiry Date: //g;s/T/ /g' | awk '{ print $1 }'`
        ;;
    *)
        DATE="$(whois $DOMAIN | awk '/[Ee]xpir.*[Dd]ate:/ || /[Tt]ill:/ || /expire/ {print $NF; exit;}')"
    if test -z "$DATE"; then
    #Отсутствует информация в Whois для домена
    echo "-1"
    continue
    fi
    esac

    # считаем дни и выводим
    expr \( `date --date="$DATE" +%s` - `date +%s` \) / 60 / 60 / 24
fi

Обратите внимание на строку "readarray DOMAINLIST < /usr/lib/zabbix/externalscripts/checkdomainexpire_discovery.txt", езмените её, если ваш путь отличается.

Создаём файлик со списком проверяемых доменов:

cd /usr/lib/zabbix/externalscripts
touch checkdomainexpire_domain_list.txt
chown zabbix\: checkdomainexpire_domain_list.txt

Содержимое:

internet-lab.ru
mail.ru

Добавляем пользовательские параметры в конфиг заббикс агента. Создаём файл checkdomainexpire.conf в папке /etc/zabbix/zabbix_agentd.conf.d:

cd /etc/zabbix/zabbix_agentd.conf.d
touch checkdomainexpire.conf
chown zabbix\: checkdomainexpire.conf

Содержимое:

UserParameter=domainexpire[*],/usr/lib/zabbix/externalscripts/checkdomainexpire.sh $1
UserParameter=domainexpire.discovery,/usr/lib/zabbix/externalscripts/checkdomainexpire.sh

Измените пути к скрипту при необходимости.

Перезапускаем агент:

service zabbix-agent restart

Загружаем в заббикс шаблон: zbx_domain_expiration.xml

Привязываем шаблон к хосту заббикс сервера. Заббикс через автообнаружение создаст для каждого домена элемент данных и триггер.

zabbix

zabbix

 

Похожие материалы

Zabbix — срок действия домена 2

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

BAT скрипт для передергивания сети на сервере Windows Server 2012 R2

Однажды наши виртуальные Windows сервера стали терять сеть. Проблему удалось выявить с сетевыми адаптерами VMware E1000. Примечательно, что в Ubuntu эти сетевухи работают без нареканий, а вот в Windows Server 2012 R2 - сеть иногда зависала.

Zabbix шаблон для мониторинга СХД — IBM Storwize V3700 или V7000

Делюсь полезными шаблонами для мониторинга СХД IBM Storwize V3700 или V7000. В шаблоне 430 элементов данных с триггерами. Работает на основе получаемых от СХД SNMP traps.