traffic-manager-hub

Web service for aggregation and analysis of your web app traffic (C&C for Traffic Manager Agent).

Usage no npm install needed!

<script type="module">
  import trafficManagerHub from 'https://cdn.skypack.dev/traffic-manager-hub';
</script>

README

Traffic Manager Hub

NPM Version NPM Downloads Build status

Web service for aggregation and analysis of your web app traffic.

Hub is the component that acts as a C&C application (command and control) for Traffic Manager.

Quick start

To install the service globally with npm use the following command in your terminal.

npm install traffic-manager-hub -g

After successful installation you will be able to start Traffic Manager Hub with tmhub command in your terminal.

Configuration

This service uses these env vars for configuration:

  • MONGO_URL (optional)
  • MONGO_DBNAME (optional)
  • PORT (default: 4000)
  • BASE_URL (default: http://localhost:4000)

If MONGO_URL and MONGO_DBNAME are not specified a local SQLite will be used as fallback.

Example

MONGO_URL=mongodb://localhost:27017 MONGO_DBNAME=tmhub PORT=8000 BASE_URL=http://tmhub.example.com/ tmhub

Integrating Traffic Manager Hub with your app

To integrate with Traffic Manager Hub you'll need to register your site in the Web UI to obtain Site ID and Site Secret.

Node app

Follow the instructions in traffic-manager-agent package to install Traffic Manager Agent in your app.

Provide URL of your TM Hub instance, Site ID and Site Secret in configuration.

Your application is now being monitored by Traffic Manager.

Other apps

You can integrate Traffic Manager Hub with any application.

Traffic Manager Hub exposes a simple REST API.

All you have to do is to send JSON payload containing requests/events to /api/v1/:siteId/submitSamples.

The payload should look like this:

{
    "siteSecret": "zN2EY69fmy303MUEs7ZkQv8sqeuFjFEp",
    "samples": [
        {
            "ip": "89.238.154.238",
            "url": "http://example.com/wp-login.php",
            "userAgent": "SampleUA/1.0.0",
            "timestamp": "1552604831677"
        },
        {
            "ip": "89.238.154.238",
            "url": "http://example.com/cpanel",
            "userAgent": "SampleUA/1.0.0",
            "timestamp": "1552604831681"
        }
    ]
}

Set up for development

Clone the repository and install the dependencies (npm install).

Once that's done you can start the application with node main.js or npm run start.