/intrace

Multi-probe looking glass with simple but powerful configuration for probes and lookup types (BIRD, MTR, Ping & Traceroute pre-configured)

Primary LanguageJavaScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

intrace

intrace is a multi-purpose and multi-location looking glass supporting a wide variety of query types through some easy configuration files (BIRD, MTR, Ping & Traceroute pre-configured)

Deploying a new intrace instance

  • Build Node.js from source or install pre-built .deb/.rpm packages
  • Install git and tmux or screen on the looking glass server: sudo apt-get install git-core tmux/screen or yum install git tmux/screen
  • Pull the latest master code from the repository: git clone https://github.com/BrightSkyz/intrace intrace
  • Change directory to intrace: cd intrace
  • Change to the config directory: cd config
  • Copy the example configuration files: cp caps.json.example caps.json; cp private.json.example private.json; cp probes.json.example probes.json; cp public.json.example public.json
  • Read through the configuration reference and edit the caps.json, private.json, probes.json and public.json configuration files to your needs
  • Get out of the directory: cd ..
  • Install package dependencies: npm install
  • Create a SSH keypair: ssh-keygen -t ed25519
  • Copy the SSH public key to all probe servers: ssh-copy-id -i ~/.ssh/id_ed25519.pub user@hostname
  • Make sure you can SSH into (all) probe servers: ssh user@hostname
  • Make sure all required commands on all probe servers are installed: Default configuration with bird, traceroute, ping and mtr require the packages bird, iputils-ping, traceroute and mtr-tiny to be installed
  • Start the looking glass daemon: node lg.js
  • Open the looking glass frontend in your browser: http://<ip address>:<port number>/
  • Additional step: Stop the looking glass (CTRL+C) and start it within tmux or screen: tmux -Lintrace -f /dev/null new-session 'node lg.js' or screen -amdS intrace 'node lg.js'

Using behind nginx proxy on a relative path

In order for nginx reverse proxying to work, you must set the following additional nginx headers in its location block:

	location /mtr/ {
		proxy_pass http://<host-or-ip-of-intrace-instance>:8080/;
		proxy_http_version 1.1;
		proxy_set_header Orig_Host $http_host;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";
	}

Upgrading an existing intrace instance

  • Change directory to intrace: cd $HOME/intrace
  • Pull all changes from the repository: git pull
  • Stop and restart the currently running intrace instance: tmux -Lintrace attach or screen -x intrace to attach the tmux/screen, stop the looking glass (CTRL+C) and start it again within tmux or screen: tmux -Lintrace -f /dev/null new-session 'node lg.js' or screen -amdS intrace 'node lg.js'