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
oryum 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.json
andpublic.json
configuration 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
,traceroute
andmtr-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'
orscreen -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
orscreen -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'
orscreen -amdS intrace 'node lg.js'