...

пятница, 27 февраля 2015 г.

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

Всем привет! Все началось с того, что у нас в компании развелось очень много доменов которые нужно вовремя продлевать. И вот, после одного провала с продлением доменов, было принято решение начать мониторить дату истечения домена и выводить его в мониторинге Nagios.

Как мониторить?


У нас было несколько доменов в зонах kz, ru, kg, ge, com.


Самый простой способ узнать всю нужную информацию о домене — запустить whois. Это по идее должен знать каждый. Но как все это дело внедрить в мониторинг?


Чем мониторить?




Покопавшись по просторам интернета, был найден модуль python-whois. Он хорошо выполнял свою работу для доменов com, net и кучи других доменов, описанных в описании к модулю.

Не хватало функционала для нескольких доменов в зонах kg.

В итоге появился форк проекта python-whois-extended который расширяет функционал для больших TLD.


Ок, как внедрить в нагиос?


Все просто, пишем простой чек



#!/usr/bin/env python
#
# Usage:
# python check_domain.py -d DOMAIN
import whois
from datetime import datetime

from sys import exit
from optparse import OptionParser


def check_domain(domain):
q = whois.query(domain)
if (q.expiration_date - datetime.now()).days <= 30:
print "CRITICAL: Domain: {0} expires on {1}".format(domain, q.expiration_date)
exit(2)
print "OK: Domain: {0} expires on {1}".format(domain, q.expiration_date)

if __name__ == '__main__':
parser = OptionParser()
parser.add_option("-d", "--domain", dest="domain", help="Domain to monitor expiry date")
(options, args) = parser.parse_args()
if not options.domain:
print parser.print_help()
exit(0)

check_domain(options.domain)


Что он делает? Светит красным в мониторинге за месяц до истечения домена.


Что интересно, появился еще один мейнтейнер, который добавил поддержку для hk, cn и kr TLD.


Текущий список поддерживаемых доменов такой:

com, net, org, uk, pl, ru, lv, jp, co_jp, de, at, eu, biz, info, name, us, co, me, be, nz, cz, it, fr, kg, vc, fm, tv, edu, ca, cn, kr, hk


Код модуля тут

Пул-реквесты, запросы фич привествуются!

Надеюсь, мой опыт поможет избавиться от подобной проблемы


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

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