/ipv6-smt

IPv6 Services Monitoring Tool

Primary LanguageJavaScript

******************************************************************************
* IPv6 Services Monitoring Tool (IPV6-SMT)
* 
* Source: https://github.com/ULAKBIM/ipv6-smt
* Author: Emre Yüce - ULAKBİM
* Contact: emre.yuce[at]tubitak.gov.tr
* Version: 0.2
* Release date: 17.08.2012
* License: GPL 2.0
* Current file: README
******************************************************************************

CONTENTS
I.	BRIEF DESCRIPTION
II.	RELEASE INFO
III.	REQUIREMENTS
IV.	INSTALLATION & CONFIGURATION
V.	KNOWN ISSUES AND WORKAROUNDS
VI.	ACKNOWLEDGEMENT
VII.	TECHNICAL SUPPORT


I. BRIEF DESCRIPTION

	IPv6 Services Monitoring Tool (IPV6-SMT) is a tool that monitors http, dns and smtp services and checks whether these services are available over IPv6. IPv6-SMT queries a given list of domain names and check for AAAA, NS and MX records. 

	IPv6-SMT will show you a report including the following topics for a list of domains:
		IPv6 prefix allocation
			- Check if the institution has allocated IPv6 address block (using config.json file).
		WWW service
			- Check if WWW service has AAAA record.
			- Check if WWW service answers HTTP GET requests over IPv6.
		Authorative DNS Servers
			- Total number of NS records.
			- Number of NS records with AAAA record.
			- Number of NS records which answer DNS queries over IPv6.
		Mail Server
			- Total number of MX records.
			- Number of MX records with AAAA record.
			- Number of MX records which accept SMTP HELO over IPv6.
	
	There are 3 different states defined for a service namely: 
		- No IPv6 address assigned.
		- IPv6 address assigned but there is no response to the requests over IPv6.
		- Service fully supports IPv6.
	
	List of files:
		DOCUMENTATION FILES
			README
			TODO
		PHP FILES
			index.php
			init.php
			data_collector.php
		CONFIG FILES
			config.json
		DATA FILES
			data/input.json	
			data/domains_15-08-2012.json
			data/count_15-08-2012.json
		MISC
			css/style.css
			images/button-ipv6-small.png
			js/sorttable.js
		

II. RELEASE INFO

	v0.2
		- index.php updated, tabbed UI added.
		- timezone option added to config.json file.	
		- domain_www option added for each institute to data/input.json file. WWW service will be checked based on this address. If domain_www is empty (i.e. ""), www service will be checked for www.domain .
		- Include statement updated and short tags removed in index.php.
	v0.1
		- First release of the script.
		- Tested on Ubuntu 12.04.
		- data_collector.php can only be run over CLI.


III. REQUIREMENTS
	
	- Global IPv6 connection in order to monitor IPv6 services.
	- Apache/2.2.22 or later.
	- PHP 5.3.10 or later.
	- nagios-plugins package.


IV. INSTALLATION & CONFIGURATION

	You should have global IPv6 connection in your machine in order to use IPv6-SMT.	
	PHP and nagios-plugins package should be installed at the system.
	You should take a look at the config.json file to set the required options (e.g. paths for data directory, input.json file and nagios-plugins scripts).
	Timezone (if not set by php.ini file) may be configured in config.json . Timezone list may be found in http://www.php.net/manual/en/timezones.php .	
	data/input.json file includes the institutes which will be monitored. 
	You may configure debug mode as 1 if you like to see the details of what is being done.
	Next step will be running the data_collector.php script on the command line. This script will collect all the necessary information and write them under the data directory in the json format.
	Data collection may be added to the cron using the example below:

	Crontab example line:
		
		# m h dom mon dow user  command
		15 3    * * *   www-data    /usr/bin/php [exact_path]/data_collector.php
	
	When the data collection phase is completed, index.php will be executed through a browser. This script will read the collected data under data directory and will show the domain service status report on the browser.
	
	Data files will be automatically created by data_collector.php which reads input.json file under data directory. Names will be in the format domains_dd-mm-yyyy.json and count_dd-mm-yyyy.json .
	
	Select date list is created automatically by checking the domains_dd-mm-yyyy.json files under the data directory. If domains_dd-mm-yyyy.json file is smaller than 100b, it will not be listed in the select date list.

V. KNOWN ISSUES AND WORKAROUNDS


VI. ACKNOWLEDGEMENT

	Thanks to Murat Soysal (ULAKBİM), Onur Bektaş (ULAKBİM), Uğur Yılmaz (ULAKBİM) and Jan Zorz (LTFE) for the comments & feedback.
	Thanks to GEN6 project (www.gen6.eu).


VII. TECHNICAL SUPPORT 
	
	If you need technical assistance on this script or on IPv6, you may contact to emre.yuce[at]tubitak.gov.tr .