Netplayback Application Documentation

Version v1.1 Videos

Netplayback application is designed to visualize data logs obtained from SNMP commands on multiple devices in a network, as a function of time. It can be used for visualization and debugging purposes, as a movie-like format is convenient for visualization.

The application is able to handle data for big networks consisting of hundreds of devices and nodes.

  • Debugging big networks
  • Debugging a number of SNMP commands
  • Debugging SNMP walks with a number of nodes
  • Need to look through big logs with SNMP command output
  • Need to figure out which SNMP commands, devices and OID fail
  • Need to "replay" results of SNMP commands

You have a big network and/or perform SNMP commands for a number of OIDs and want to figure out which commands, devices and OIDs fail, what OIDs are inactive, which commands take longer to respond etc. Watching it in real time is unproductive as the events happen too fast. You can collect data into a log, but if it's too big, looking through it is hard if you're not searching for one particular error. In addition, if you generate more logs, you have to keep looking through them.

With the Netplayback application, you can load your SNMP log, and either display it in a sorted request-response fashion, or "replay" the entire event sequence in a movie-like format. You can change the speed of this movie, pause this movie at any time, forward or rewind it or automatically stop it on an error. All these functionality is available for free. In addition to this, you can filter the replay be router, OID and data type. This functionality is available with a proprietary license, which is available for purchase.

  • Light weight application capable of handling logs with hundreds of devices and nodes
  • Run in Google Chrome or Firefox browsers
  • Flexible configuration to adjust to various log formats
  • Saving and loading configurations
  • Loading data from a text log
  • Displaying requests and responses data as a tree
  • Paging of the data, with the number of records per page set in a configuration file
  • Loading log data either at once, or displaying it in a movie-like format
  • Adjusting the speed of replaying, replaying evenly as "frames" or scaled to real time of the events
  • An option to stop playing on error
  • Stopping, resuming, forwarding and rewinding
  • Color marking of various types of data - request, response, error, OID mismatch.
  • Filtering data by ip, OID and data type (REQUIRES A LICENSE)

The application runs on Windows (Windows XP, Windows 7, Windows 8), Mac and Linux (Debian, Ubuntu, Mint, Fedora, OpenSUSE etc) operating systems.

The application runs using log files for SNMP request and responses, in a text format. An example log is provided with the application.

The order of the columns might be any, as long as the text file provides all the necessary information. The log data provided should have:

  • Time stamp
  • Device ip
  • Type of SNMP request (GET, GETNEXT, BULK etc) or RESPONSE
  • Request id
  • Success/Failure status
  • OID
  • Data type (response only, provide an empty string for request)
  • Data (response only, provide an empty string for request)

The application can be configured to adjust for different column order and names and has a graphical interface to perform the configuration.

You can produce those logs using your own code or use the JSNMPWalker open source program, which can be downloaded from www.calaverastech.com. An example log is provided with the application.

General

Install Google Chrome or Mozilla Forefox.

The application is run in a browser and requires Forefox or Chrome browser installed. If both are installed, the default browser is Chrome.

Forefox can be downloaded from: http://www.mozilla.org/en-US/firefox/new/

Google Chrome can be downloaded from: https://www.google.com/intl/en/chrome/browser/

Other browsers are not supported at the present time.

For Windows Users

  1. Install Nodejs

    The application requires Nodejs to run, version 0.10 or above. Download Nodejs for Windows and install it according to http://nodejs.org/download/.

    For Netplayback to be installed properly, set the NODE_PATH environment variable:

    > SET NODE_PATH=\path\to\your\nodejs\folder

    or use Windows Control Panel to set NODE_PATH

    If you used the default path for Nodejs, the path should be C:\Program Files\nodejs

  2. Add folders with Chrome and/or Firefox executables to the Path, which are not added on a browser installation in Windows. If they are not added to the Path, a browser window will not launch on a startup.

    > set PATH=%PATH%;path\to\your\browser\folder

    Before setting the path, verify where your browser is installed.

    The default installation folder for Google Chrome is C:\Program Files\Google\Chrome\Application or it might be C:\Program Files (x86)\Google\Chrome\Application for 64-bit machines.

    The default installation folder for Firefox is C:\Program Files\Mozilla Firefox or it might be C:\Program Files (x86)\Mozilla Firefox for 64-bit machines.

    Verify that your browser is included in the Path:

    > where chrome
    > where firefox

  3. Install Netplayback

    Download Netplayback for Windows from calaverastech.herokuapp.com/installers. Unzip the folder.

    Double click on netplayback-v1.0.msi
    The application installation path is \path\to\nodejs\folder\node_modules\netplayback
    ( C:\Program Files\nodejs\node_modules\netplayback for the default Nodejs path).

    NOTE: the process opens a shell to download and install some npm packages. Depending on your Internet connection, you might see errors (marked in red) and/or the application might fail starting in a shell with a message that some package is not installed. If it happens, it means there is a problem with internet connection and some or all packages were not loaded. Verify your internet connection, close applications that consume too much bandwidth and resources; then uninstall the application and install it again.

For Mac Os X Users

  1. Install Nodejs

    The application requires Nodejs to run, version 0.10 or above. Download Nodejs for Mac OS X and install it according to http://nodejs.org/download/.

  2. Install Netplayback

    Download Netplayback for Mac OS X from calaverastech.herokuapp.com/installers. Uncompress the folder.

    Double click on Netplayback-v1.0.mpkg
    The application installation path is /usr/local/bin/netplayback script and /usr/local/lib/node_modules/netplayback folder.

    NOTE: the process opens a shell to download and install some npm packages. Depending on your Internet connection, you might see errors (marked in red) and/or the application might fail starting in a shell with a message that some package is not installed. If it happens, it means there is a problem with internet connection and some or all packages were not loaded. Verify your internet connection, close applications that consume too much bandwidth and resources; then uninstall the application and install it again.

  3. OS X supports OpenSSL by default, but verify if it's installed.

    > which openssl

    If it is not there, install it.

For Linux Users

  1. Install Nodejs

    The application requires Nodejs to run, version 0.10 or above. Download Nodejs for Linux and install it according to http://nodejs.org/download/.

  2. Install Netplayback

    Download Netplayback for Linux from calaverastech.herokuapp.com/installers. Uncompress the folder and as a root make the install and uninstall scripts executable:

    > sudo chmod +x install
    > sudo chmod +x uninstall


    Double click on install or run

    > ./install

    The application installation path is /usr/local/bin/netplayback script and /usr/local/lib/node_modules/netplayback folder.

    NOTE: the process opens a shell to download and install some npm packages. Depending on your Internet connection, you might see errors (marked in red) and/or the application might fail starting in a shell with a message that some package is not installed. If it happens, it means there is a problem with internet connection and some or all packages were not loaded. Verify your internet connection, close applications that consume too much bandwidth and resources; then uninstall the application and install it again.

  3. Verify if OpenSSL is installed.

    > which openssl

    If it is not there, install it.

    > sudo apt-get install openssl

  1. Launching from the menu or Desktop shortcut

    Windows users: The application can be launched from the Netplayback menu folder or from a Desktop shortcut

    Mac users: The application can be launched from the Applications folder, double clicking on Netplayback.app or from a Desktop shortcut

    Linux users: The application can be launched from the Programming menu, or a Desktop shortcut and launch panel shortcuts can be created

  2. Launching in the command line
    • To start the application, type:

      > netplayback
    • To start the application without launching the browser, type:

      > netplayback --nobrowser

      Then to launch a browser, open either Chrome or Firefox and type in the address line:

      localhost:1337
    • To start the application with Chrome, type:

      > netplayback --chrome
    • To start the application with Forefox, type:

      > netplayback --firefox
    • To stop the application automatically on closing down the application window (the browser), type:

      > netplayback --stop_on_disconnect

      By default, you have to press CTRL-C to stop it, even if the browser is closed.
    • To load a configuration file on a startup, type:

      > netplayback [config_file_name]

      The configuration file should be one previously loaded into the application (saved in the user "config" folder) and just specify its name, no absolute path needed.
    • For help with using the options, type:

      > netplayback --help
  3. How to use the application
    1. Configure the session (optional)

      In order to configure the session, in the application main window select a configuration file and press "Submit" or click on "Edit Configuration". See the FAQ section about configuring the application in detail. This step is optional as the application already loaded a default configuration or a configuration chosen by a user in the command line.

    2. Load a data log

      In the application main window, click on the button "Choose File" next to "Upload File". Select a data log to run (a sample log is provided with the installation, in the folder "samples"). The press the "Submit" button below. After that, the controls to run the data log will appear.

    3. Run the data log

      Either click on "Load at once" to load all data at once, or click on the "Play" button to run the log frame by frame. See the FAQ section for more questions and answers.

For Windows users:
Click the "Uninstall" option from the menu or remove using Windows tools

For Mac users:
Run netplayback-uninstall script from the application folder or remove using Mac tools

For Linux users:
Run uninstall script from the application folder

What is a "Freemium" model and how it applies to Netplayback?

Freemium is a pricing strategy by which a product is provided free of charge, but money is charged for advanced features. Netplayback can be downloaded for free, but using advanced features requires purchasing a license from calaverastech.herokuapp.com .

What features require purchasing a license?

The capability to filter data requires purchasing a license. The rest of the features are available for FREE.

Why using a browser and Nodejs for a desktop application?

The application is designed based on the v8 engine to ensure it's light weight and fast enough to process very big data logs. It has been tested to work for logs with a half a million records!

What is your return policy for purchased licenses?

All software license sales are final. Use free downloads with limited functionality to try out the products. If you have problems activating the license or using the licensed functionality, please, contact support@calaverastech.com with the name of the product for assistance. We can make an exception and refund your purchase in case the licensed functionality, when installed and used correctly, doesn't work on your machine, with a proof it doesn't work. Please, send a refund request with screenshots and a step by step explanation how to reproduce the problem to license@calaverastech.com . In this case, the entire license will be refunded, not separate users.

I want to use a free version of Netplayback, but after opening the application, I see the License activation page. What should I do to use the free version?

Press the button "Continue with the old license/FREE version" to skip the license activation and go to the application window.

Why do I get a "WARNING: with the FREE version, filtering will not be enabled", once I imported a data file? Is anything wrong?

It means, you didn't install a license and can't use data filters. But the rest of the features will work fine for free, nothing is wrong.

Why do I keep getting a message "This feature is not enabled in the free version. Your license is invalid or you don't have one. Would you like to register a license?"

You are trying to use data filters without a valid license. Purchase a license from calaverastech.herokuapp.com/store then click on "Enable License" and enter your license key, if you haven't done so.

I have purchased a license, to whom and how is it delivered?

When purchasing a license, you have provided an email to receive it, possibly different from your billing email. The user with this email should've received the license. If he\/she didn't receive an email (email delivery is done by a third party), please, contact license@calaverastech.com.

I have received a license, how do I install it?

When you start the application, if you don't have any license installed, you will be given a page to enter the license. If you are in the application main page, click on "Enable license" to reach the license activation page. You should've received an email with the license as a file and as text. You can either cut and past the text into the form, or import the file. After importing a license, you have to restart the application for the changes to take effect. If you have any questions about the installation, contact support@calaverastech.com.

I have purchased a license, installed it, why do I keep getting a message "This feature is not enabled in the free version. Your license is invalid or you don't have one. Would you like to register a license?"

You probably didn't restart the application after installing a license. Please, close your browser and a command shell, and restart the application. If you still have problems, contact support@calaverastech.com

I'm generating logs in the application I develop. How should my log data file look like to be imported into Netplayback?

There is a sample log file provided with the application. You can also generate sample log files using JSNMPWalker open source application available at calaverastech.herokuapp.com/products?product=jsnmpwalker.

But in general, your log file should be a text file providing a table with at least the following EIGHT columns. Those columns might be in any order, and have any names, but ALL of them are required.

The columns in the text file should be separated by a TABs ( \t ) and lines separated by line breaks \n. If some entry is missing or not applicable, it should contain an empty string " ".

For an optimal display, you should log BOTH requests and responses. The data header might be omitted, if the data starts right from the beginning.

[some other data]
<SNMPDataStartHeader>
Timestamp RequestID CommandType Session OID SuccessFailureStatus DataType Data
0.54 123456 GET 127.0.0.0 1.3.6 success
0.55 123456 RESPONSE 127.0.0.0 1.3.6 success OctetString HelloRouter

What data columns are required in an imported log file?

The following EIGHT columns are required:

  • Time stamp
  • Device ip
  • Type of SNMP request (GET, GETNEXT, BULK etc) or RESPONSE
  • Request id
  • Success/Failure status
  • OID
  • Data type (response only, provide an empty string for request)
  • Data (response only, provide an empty string for request)

The columns might be in any order and have any names. If the column doesn't apply, insert an empty string. RequestID is required to match responses with requests.

How do I configure the application to match my log file?

Click on "Edit Configuration" and go to the editing page.

What parameters are configurable?

  • NUM_PER_PAGE - Number of records (request-response pairs) per page
  • RECORD_HEADER - Record starting header (if you have some other data preceding the SNMP data)
  • TIME_MULTIPLIER and SAMPLE_TIME - Both are responsible for the speed of replaying. The defaults are set to heuristic values to reflect typical SNMP walk speed.
  • DEFAULT_SPEED - speed that is a default when opening the replay page
  • SPEED_RANGE - range of speeds available when opening the replay page, in abstract units
  • TIME_COL, SESSION_COL, COMMAND_COL, REQID_COL, STATUS_COL, TYPE_COL, OID_COL, DATA_COL - the column NUMBERS in the data file. The matching is the following:
  • TIME_COL - Time stamp
  • SESSION_COL - Device ip
  • COMMAND_COL - Type of SNMP request (GET, GETNEXT, BULK etc) or RESPONSE
  • REQID_COL - Request id
  • STATUS_COL - Success/Failure status
  • TYPE_COL - Data type
  • OID_COL - OID
  • DATA_COL - Data
  • DATA_ERROR - How is an error in data encoded
  • SUCCESS_STATUS_CODE - How is successful response encoded
  • RESPONSE_CODE - How is response encoded
  • TRANSLATION_CODES - How some encoded values in data should be translated and displayed

I'm generating logs in the application I develop, and want to display both requests and responses for various commands. How do I make sure that Netplayback matches requests with responses properly?

  • In your application, the matching requests and responses should be assigned the same Request ID. I would probably want to have the same Request ID for all the requests and responses in an SNMP walk.
  • The RESPONSE_CODE in the configuration should be set to the name how responses are encoded in the log. For example, your command for responses is RESPONSE.

I'm generating logs in the application I develop, and want to mark some response data as errors. How do I make sure that Netplayback displays them properly?

In you application, encode response data errors in a consistent way, for example response data can start with an "xx". In the configuration, enter this code into DATA_ERROR.

I'm generating logs in the application I develop, and want to display responses which are successful. How do I make sure that Netplayback displays them properly?

In the configuration, enter the success code returned by successful response into SUCCESS_STATUS_CODE.

I'm generating logs in the application I develop. Some of my data comes in an encrypted way, such as the SNMP commands and data types are encoded as numbers. How do I make this data humanly readable in Netplayback?

Use TRANSLATION_CODES in the configuration to present encoded data as humanly readable. The first field is the name of the column in YOUR LOG. The fields on the right from it are the translations of data that might be encountered in this column. You can always add more data columns and more translations.

How can I save and load configurations?

To modify and save a configuration, go to "Edit Configuration", change the parameters and choose a file name to save. To load a configuration, choose a configuration file from the drop down list of configurations then press "Submit".

How do I know which configuration file is loaded? What configuration do I edit?

The configuration file name is displayed on the page. By pressing "Edit Configuration" and saving changes, you are editing the current configuration file. The application comes with a default configuration.

Running the Application

When I start the application in Firefox, I get a pop-up asking if I want to run the browser in a safe mode. Is anything wrong and what should I do?

Forefox safe mode disables browser add-ons. Netplayback by default is run in the safe mode, so the add-ons can't potentially interfere; but Firefox initially pop up a message to confirm that the user wants the safe mode, so confirm it. You may also run the browser in a usual mode, when running with a –no-browser option.

How do I import data into Netplayback?

After making sure that Netplayback is properly configured, press on "Choose File" and select a data log. Then click on "Submit" button. You will see controls to play this data.

What actions can I perform after loading a data file?

You can press a "Load at once" button, to load your entire log file. Or you can press a "play" button to play the log as a time function. You can also play the log manually, time frame by time frame. If you installed a license, you can use filters to filter the data displayed.

What is considered as an error and how are they displayed?

Errors are marked in red color in the application. Both responses with data that you marked as en error (ERROR_CODE) and entries with a status that's not successful (don't match SUCCESS_STATUS_CODE) are displayed as errors. When replaying the data, you can check an option "Pause on error" and the replay will stop once encountering an error. You can resume it by pressing again on the Play button.

Application Data

In what directory the application data is saved? What data is saved? How can I remove application data?

The data is saved in your home directory, in a .netplaback folder. The application saves the license and configuration files you created. To remove those files, go to this directory.

How do I remove a license?

Go to your home directory, and locate the .netplayback folder (it might be hidden). The license is stored in this folder, in a subfolder "license".

Errors and Troubleshooting

I get some obscure errors in the browser instead of the controls, and I'm sure I do everything right. What can I do to fix it?

  1. The session by default doesn't stop the application on closing the browser window. Check if there is a terminal still open from the last session, stop the application and close the terminal; and/or reboot the computer.
  2. Check if you installed the right versions of Nodejs and Netplayback for your OS. Your Nodejs version (32 or 64-bit) should match the Netplayback version. If a 64-bit version of Netplayback is unavailable or doesn't work, you can always use a 32-bit versions of Nodejs and Netplayback on your 64-bit machine.
  3. Something might've gone wrong with the installation, or your current installation might've interfered with an old one. Uninstall the application, then install it back. Your data still will be preserved.
  4. If it still doesn't work, contact support@calaverastech.com with the details.

When I start the application, I see no errors. But I see very few controls on the main page of Netplayback. Is anything wrong?

Don't worry, nothing is wrong. The controls will be loaded after you import your log file into Netplayback.

Why, after loading a data file, do I keep getting a message "error: Data heading for data types doesn't match the configuration file translation heading"?

Your configuration file settings don't match the data file you're trying to import. Either load a different configuration file, or go to "Edit configuration" and make sure that your settings match the data file.

Why, after loading a data file, do I get a message "error: Data doesn't contain any responses or doesn't match the configuration file"?

Either your data log doesn't contain any responses, or your configuration option RESPONSE_CODE doesn't match the code used for responses in your data file. Please, note, if you use TRANSLATION_CODES, the RESPONSE_CODE should be the response before the translation.

Some of my data is presented in a cryptic way, as numbers: commands, data types etc. I know what those numbers mean, but they are hard to read. How can I present the data in a more readable format?

You can use the option TRANSLATION_CODES in your configuration to translate those numbers into a readable format. If you already have done so, but the data still is not displayed right, verify if you entered the right data into TRANSLATION_CODES. See the DATA LOGS AND CONFIGURATION chapter how to set TRANSLATION_CODES.

The application doesn't mark data errors in red and doesn't stop when I check “Pause on error”. Why is it?

One possible answer is that your log doesn't include any data errors. But if you sure that it does, check the DATA_ERROR parameter in your configuration, if it's set to your error encoding in the data log. See the DATA LOGS AND CONFIGURATION chapter how to set DATA_ERROR.

The application marks in red successful responses and stops where it's not supposed to when I check “Pause on error”. What is going on?

Verify that your SUCCESS_STATUS_CODE parameter is set to your successful code for responses in your log. See the DATA LOGS AND CONFIGURATION chapter how to set SUCCESS_STATUS_CODE.

Bugs and New Feature Requests

Something doesn't work in the application even though I'm doing everything correctly. How can I get it fixed?

Please, contact support@calaverastech.com with your bug report. Alternatively, you can register to the calaverascoding google group and post your bug report there.

I have an idea for an improvement or want to suggest a new feature. Is it possible to get it implemented?

Absolutely! Contact support@calaverastech.com with your suggestion or post it in the calaverascoding google group. Your feature will be implemented as soon as possible, may be the next day. We are not run by bureaucracy to bury away your request, but how would we quess what you want if you don't communicate it?

Where is your google group?

https://groups.google.com/forum/?hl=en#!forum/calaverascoding . Subscribe directly or subscribe over calaverastech.herokuapp.com/company to be added.