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)
- 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/screenoryum install git tmux/screen - Pull the latest master code from the repository:
git clone https://github.com/Fusl/intrace $HOME/intrace - Change directory to intrace:
cd $HOME/intrace - Copy the example configuration files:
cp config/caps.json.example config/caps.json; cp config/private.json.example config/private.json; cp config/probes.json.example config/probes.json; cp config/public.json.example config/public.json - Read through the configuration reference and edit the
caps.json,private.json,probes.jsonandpublic.jsonconfiguration files to your needs - 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 $HOME/.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,tracerouteandmtr-tinyto 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'orscreen -amdS intrace 'node lg.js'
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";
}
- 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 attachorscreen -x intraceto 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'orscreen -amdS intrace 'node lg.js'