Segfault Research > Projects > Server > NetXMS Simple Dashboard
First published on: 05-Oct-2013

NetXMS is a flexible and simple to use network and system monitoring utility.
While what "NetXMS" provides was perfect for most of our needs, we missed a way to quickly graphically plot the data that it collected and to show in a single view the current status of the key metrics that were being monitored together with potential alerts.

Trying to keep the effort as low as possible we decided to write a small utility which we called "NetXMS Simple Dashboard".


Index


Overview

Scope

  • Target audience
    just a few system adminstrators / supporters for each installation.
  • Functionality
    quick to grasp overview of system health status, easily compare the data gathered by NetXMS, possibility to drilldown for more detailed analysis of metric data, "almost realtime" updates.
  • Installation & maintenance:
    as simple as possible, with not maintenance needed.

Things you might not like

  • No fancy User Interface
    We wanted to keep the implementation effort as low as possible and avoid any external dependencies (e.g. UI-frameworks) that was not needed to provide the core functionality, therefore the UI is not very good-looking as it was written using mostly plain HTML (~2 javascript exceptions).
  • "Normal" performance
    As the users using the application concurrently were supposed to be just a few, no own data repository nor caching functionality nor centralized graph generation was implemented.
    This means that if you end up having dozens of users all trying to refresh all graphs concurrently your server might experience CPU saturation and/or your users might end up having to wait for minutes for each refresh (depends on how you set up your webserver).
  • You will have to change the way you use NetXMS
    As the utility does not have an own data repository it is not possible to directly configure in the utility itself which data it should take into consideration to be plotted/shown. This part of the configuration has to be done in NetXMS itself (by modifying the metric's "description" - pls. refer to our setup guide).
  • No authorization mgmt
    We integrated only an optional basic way of authorizing users to access the application which fully relies on forwarded authenticated UserIDs (through HTTP-headers or environment variables).
    The task of authenticating the user and forwarding the UserID to the application has to be performed externally before the connection is forwarded to this utility (by using other generally accepted methods such as Apache basic/digest authentication, 2-way-SSL, LDAP, etc...).

Things you might like

  • Realtime
    Once you have set up the metric's "Description" in NetXMS accordingly, that metric data is taken immediately into consideration in the utility as soon as the changes / new data has been committed by NetXMS to its database (a few seconds might elapse).
  • Direct data comparisons
    By selecting a single or all devices that are being monitored (combinations of single devices currently not possible), all or single or grouped metrics can be compared at once therefore simplifying the task of finding indirect relationships (e.g. slow application X response time on VM1 when application Y on VM2 starts running causing high I/O).
  • Settings saved as part of the URL
    The URL contains all the parameters you set => once you've decided how to display the data it's enough to bookmark the page to be able to get the same layout and metric selection (with of course the latest data). Similarly if more persons have to be made aware of some fact, it's enough to forward the URL/link to that person for her/him to see what you're seeing.
  • Data drilldowns
    By installing the optional plotting library "Highcharts" it is possible to "spontaneously" drill down into specific timespans by just highlighting the desired portion of data.
  • Performance
    The configurable pre-aggregation of collected metric data makes it possible to limit resource usage and wait times when having to plot graphs for metrics that are composed of hundreds of thousands of data points.
  • Graph download
    While "Highcharts" provides its own export functionality, the other graphs generated by "PHPlot" and "mfGraphs" are generated as independent HTML-objects and can therefore be downloaded (e.g. by using "wget") and then saved as standalone html-files.

Requirements

  • A webserver (tested with Linux+Apache and Windows+IIS/CGI).
  • PHP compiled with PDO module.
  • NetXMS running on an Oracle/MySQL/PostgreSQL/SQLite database (might work with others).