-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the DataMap wiki!
DataMap is a framework that collects anonymized traffic statistics from a distributed network of wireless access points in real-time. It consists of a single central server and a set of collection nodes. The collection nodes can be distributed throughout the target network to collect data. The data is sent to the central server where it is stored in an easy to use MySQL database.
DataMap aims to be:
- Low cost
- Scalable
- Hardware-agnostic
- Real-time
- Easy to setup and use
DataMap provides the following key features:
- Data collection from both encrypted and unencrypted wireless networks
- Easy configuration/build/procedure
- Daemon processes that manage everything and keep nodes connected
- A web interface for simple and intuitive centralized management
- Basic analysis tools for visualizing traffic data
Use the following steps to download the DataMap source code and install it (note that it needs to be installed on your central server and on each collection node):
git clone https://github.com/DataMap13/DataMap.gitcd DataMap-
./configureThe configure script will ask you for a set of configuration parameters like IP addresses, location, etc. It will also attempt to detect any required packages that are missing from your system and alert you. In most cases, you should make sure these packages are installed before continuing. makesudo make install
At this point, DataMap should be installed. After installing on the central server and all nodes, you should be able to restart them all, log into the web interface, and see the nodes on the "Node Management" page.
To use the web interface, navigate to http://[host or ip]/datamap (the url may be different if you chose a non-default installation path for the web interface during configuration). You will be prompted for a user name and password - they will match the credentials use supplied for the database during configuration. Once in the web interface, you can manage starting and/or stopping nodes using the "Node Management" page.
You can also interact with the system via a direct telnet to the daemon on the central server, which listens on the "control port" specified during configuration (12347 by default). It supports the following commands:
-
status- displays the status of each node in a list format. Each node consists of a "|" separated list of attributes. -
start [all|ip_list]- starts collection on all collection nodes or on each of the nodes with IP addresses specified in a space-separated list -
stop [all|ip_list]- stops collection on all collection nodes or on each of the nodes with IP addresses specified in a space-separated list -
remove [ip_list]- removes each collection node with an IP address specified in a space-separated list
Note: After each command, the daemon will close the telnet connection and you will need to reconnect to execute another command. This behavior is expected (although admittedly not ideal).
Once you have captured some data, you can access the data by connecting to the MySQL server running on the central server. The database username and password that you provided as part of the configuration procedure will work as valid login credentials. There will be two tables created - the table for data gathered from your encrypted network will be named with the name of the network (e.g. "dragonfly3") and the table for data gathered from the unencrypted network will be labelled with a timestamp (the name is generated by vermont). Note that currently, if you run multiple captures, the encrypted data will be appended to its table and the unencrypted data will most likely be put in a new table.
When making updates to vermont, you can make changes directly in the vermont/ directory and compile (using make) and run your changes there. Note that you should run the full DataMap compile first. When you are done making changes. execute the following command (from the root DataMap/ directory):
tar uvf vermont_patch.tar [files]
where [files] is a space separated list of the source files that you have updated or added. This will add any new files to the patch archive and update existing ones. This patch is applied to vermont during DataMap compilation. Finally, you can commit and push the changes to the patch file (vermont_patch.tar) using git.
For more information, please see the senior design documents in our dropbox folder.