Web-enabled software applications and tools

IT Manager's Corner


Just For Fun



nPULSE - Web-based network monitoring package for Linux and Unix
Version 0.54 Download 380K

nPULSE is a web-based network monitoring package for Unix-like operating systems. It can quickly monitor tens, hundreds, even thousands of sites/devices at a time on multiple ports. nPULSE is written in Perl and comes with its own (SSL optional) web server for extra security.

NOTICE: There have been reports of problems when using newer versions of nmap with nPulse. If you are using a newer version of nmap try the following:

  1. Stop nPulse (/usr/local/npulse/etc/stop)
  2. As root edit the file /usr/local/npulse/lib/util.pl
  3. Change line 89 from
          $site{ports} .= $p[0].',';
         $site{ports} .= $p[0].',' if $p[1] =~ /open/i;
  4. Start nPulse (/usr/local/npulse/etc/start)

Developers, Testers, and Power Users may want to visit the Developers Page for the latest pre-release versions.

nPULSE is currently running on networks with over 1,500 devices. (There is also an unconfirmed report that it's running on multiple Class B networks with over 2000 computers!)

Also check out the nPULSE Frequently Asked Questions (FAQ) page!

You can click on any of the thumbnail screen shots to see an enlarged view.

Overview Status Screen Listing Status Screen
Detailed Device View Historical Site Status

Required Software
  Perl Version 5.005 or later www.cpan.org
  Nmap Version 2.51 or later www.insecure.org/nmap

nPULSE is entirely written in Perl 5. For port scanning it uses the excellent package Nmap, available from www.insecure.org.

**** nPULSE will not work without Nmap. ****

Optional Software
  OpenSSL Version 0.9.6 or greater www.openssl.org
  Net::SSLeay Version 1.04 or greater www.cpan.org

What user's are saying...

nPulse is great tool, thank you. --D.C., USA

[I] started using your software on few computers and I'd like to thank you for a great piece of software. --M.O., Israel

I really like this tool. Slick, fast..good job. Cool too. --P.M., Ontario

Thanks for the great app. Really helps me out. --V.S., USA

I just wanna say thanks for a great tool. --B.J., Denmark

We have 1600 nodes running on nPulse now and so far so good. --B.G., USA

Install and setup on my Red Hat system went so smooth it made my head spin. --D.F., USA

Thank you for this excellent script! --P.W., Germany

Thanks for a great product, I find it very useful in my daily work! --M.O., Sweden

My compliments with nPulse...[it] caused a small earthquake in our company ;>) --E.F., USA

I'd like to thank you all about this great monitoring software --H.S., Finland

Changes from Version 0.52 to 0.54
This version bundles together all of the changes in the developmental releases of nPulse since version 0.52. The primary visible updates are better EventLog handling and a major bug fix of the historical record-keeping and display graphics. Internally, the code has been substantially rewritten (except autorecheck.pl). There are 5 new features, 1 deleted feature, 5 bug fixes, and 4 miscellaneous changes.
  1. New Feature: added a large text field on the Detail page for extra notes. --First suggested by Ed Ferrageau <ed.ferr at geau.nl>
  2. New Feature: added an edit shortcut to the filter overview display.
  3. New Feature: the server now supports over 105 host/os types.
  4. New Feature: now uses the CGI.pm Perl module to increase portability.
  5. New Feature: The event log display is now in a scrolling box (IE browsers only). The height is controlled by the Settings/HTML/ELHeight parameter.
  6. Deleted Feature: DEMO mode has been disabled.
  7. Bug Fix: fixed a history graph bug --First reported by Adam Walker <walkera at fosterfarms.com>
  8. Bug Fix: fixed a bug on the port configuration page which caused a display problem on Netscape browsers. -- First reported by Andriy Rozeluk <arozeluk at home.com>
  9. Bug Fix: fixed a bug in the Time::Local check in the setup routine which caused an installation error on some machines.
  10. Bug Fix: fixed a form submission bug on the Device Detail Pages.
  11. Bug Fix: fixed a typo in prefs.pl which affected the display of the Settings Page.
  12. Misc: Substantial rewrite and cleanup of all code except autorecheck.
  13. Misc: Cleaned up the HTML code produced.
  14. Misc: Updated setup.sh to check for and remove 0.52 history files.
  15. Misc: Perl version 5.005 or greater is now required.

Changes from Version 0.50 to 0.52
This version bundles together all of the changes in the developmental releases of nPulse since version 0.50. There are 7 major new features, 6 bug fixes, and 5 miscellaneous changes:

  1. New Feature: Changed the GUI for the Detail Pages and other minor GUI updates to other pages.
  2. New Feature: Added the ability to specify time periods for historical graphs. --First suggested by Brian Jensen <bfj at dansksystemcenter.dk>
  3. New Feature: Added support for Global Filters. Now the admin user can define filters for use by all users. Regular users cannot edit/delete global filters although they can create a filter of their own with the same name/style that overrides a Global filter (for their use only). --First suggested by Keith Washington <kwashington at weather.com>
  4. New Feature: Added the ability to configure when the Email notification happens on a port-by-port basis. nPulse normally sends an Email alert whenever a port transitions from down to up or from up to down. By using this form you can specify when nPulse sends the alerts. For example, if a device is a server that disables the FTP port except during normal working hours you could set port 21 (FTP) to Days = Mon - Fri, Hours = 8a - 5p
  5. New Feature: Added the ability to save the preferences during an upgrade. --First suggested by Brian Jensen <bfj at dansksystemcenter.dk>
  6. New Feature: Added a "Reset Defaults" option to the Settings page to reset all of the preferences to their default values.
  7. New Feature: Added the ability to selectively delete events associated with a device. Click on the "Delete Log" link on a device's Detail Page to delete all events associated with that device only. --First suggested by Brian Jensen <bfj at dansksystemcenter.dk>
  8. Bug Fix: Script icons were not properly displayed on the detail page.
  9. Bug Fix: The device name was not displayed properly on the overview pages if the device failed. The IP address was displayed regardless of the "UseAliases" setting. --First reported by Kevin Hanrahan <khanrahan at cypresscom.net>
  10. Bug Fix: Removed the "hostname -i" command from setup.sh which did not work properly on some operating systems. --First reported by Mike Scheidler <c23mts at eng.delcoelect.com>
  11. Bug Fix: Changed the "post" method to "get" in detail.pl to solve the problem when SSL was enabled, but not session authentication. In such cases, some browsers did not correctly handle the authentication process resulting in a "Not Found" error.
  12. Bug Fix: Fixed a cross browser form submission bug related to both the preferences and the filters. This bug did not affect all browsers. --First reported by Keith Washington <kwashington at weather.com>
  13. Bug Fix: Fixed a bug in the ssh.conf file. --First reported by Brian Jensen <bfj at dansksystemcenter.dk>
  14. Misc: Simplified the Email fail/recovery message for SMS and Pagers. --First requested by Kevin Hanrahan <khanrahan at cypresscom.net>
  15. Misc: Setup now checks if the distribution directory is the same as the target installation directory. If so, an error is printed.
  16. Misc: Removed the "AlwaysShowNums" preference (no longer needed).
  17. Misc: Fixed some problems with the history graphs. The graphs now display more precise data values and the time axis now has the date displayed.
  18. Misc: The event log is now displayed by default on the Detail Pages.

Changes from Version 0.42 to 0.50
Thanks to all who participated in the beta2 test of nPulse! Version 0.50 adds 20 new features, most at the request of users. There are also many updates to the existing features.
  1. New Feature: Added a "Notify" field to the infofile.txt file and the "Information" area on the "Detail" Page. Using this parameter you can send email notifications to multiple addresses in addition to the default admin address on a per-device basis. For example, to send notification messages to two additional users when device fails enter each user's email address (separated by commas) in the Notify field on the Detail page of --First suggested by Keith Washington <kwashington at weather.com>
  2. New Feature: Added a "list" view style to the existing "basic" and "compact" views. The display style is controlled by the new ListStyle parameter in Settings/HTML.
  3. New Feature: Included a data import utility "adddata.pl" that converts a tab-delimited text file into nPulse format. This allows quick population of ip addresses, port numbers, customer info, and custom data. The utility should be run from the distribution directory after the setup.sh routine is run. --First suggested by Brian Johnson <brian at netcom.duke.edu>
  4. New Feature: Added Telnet and SSH support to connect to any monitored device via a Java telnet applet. To do this a relay daemon is required. Note: I've included a perl relay daemon which could be a security risk on some systems. The (Java) Telnet window parameters can be configured via "Settings/Telnet."
  5. New Feature: A Port Sweep (port status search) is now available from the "Status" page. Enter a port number and nPulse will search for open/closed values for each host specified (or the currently monitored list). The resulting output will only list the port status on responsive machines. --First suggested by Gary Harris <grimster at grimster.org>
  6. New Feature: Port/Service Scripting capabilities. nPulse now has the ability to query individual services and ports via a script (see Settings/Scripts for more information). Two sample scripts are provided. The scripting API (sapi) can be used by user routines so that netadmins can create their own "custom commands" (see backdoors.pl). --First suggested by Kenneth Ekdahl <kenneth at rit.se>
  7. New Feature: Custom commands via the "Details" page. The admin user can now define any number of custom commands that users can perform via a pull-down menu on the "Details" page. To define the commands go to the 'Settings/Commands' page. To admin user can show/hide selected custom commands for ordinary users. Three example custom commands are included:
    1. "nmap -v -sU $IP$" which reports udp ports,
    2. "snmpstatus $IP$ public" which reports SNMP status info,
    3. "backdoors.pl $IP$" which is a perl script that uses the sapi API to find typical security problems. NOTICE: The backdoors.pl is an example program only.
  8. New Feature: The "Home" page now displays the Event Log for the admin user and optionally for a regular user.
  9. New Feature: The "Home" page now displays an overview icon for each of the defined filters. This lets you see at a glance which of the "groups" of devices need attention.
  10. New Feature: Added the ability to create/update/delete users on the "Settings" Page: "Settings/Users". Note that the admin user cannot be deleted, but the password can change.
  11. New Feature: Added the ability to modify nPulse's web server parameters. See "Settings/Web Server/"
  12. New Feature: Added logging capability to track nPulse usage. The log file created is /usr/local/npulse/log/miniserv.log and can be analyzed by any web server log analyzer. See "Settings/Web Server/Logging"
  13. New Feature: Added access control capability via ip address/mask. See "Settings/Web Server/Access Control"
  14. New Feature: Added password timeouts and automatic host blocking to combat "brute-force password cracking attacks." See "Settings/Web Server/Authentication"
  15. New Feature: Added session authentication and inactivity auto-logout. Enabling session authentication also allows "user switching" from within nPulse without leaving the browser.
  16. New Feature: Added a "logout" capability that allows you to switch users or simply log out of nPulse. The logout link is at the bottom of the page after the user name. It only works if you have enabled "session authentication."
  17. New Feature: Added the ability to alter how nmap runs, see "Settings/NMAP." These values should only be altered by expert users.
  18. New Feature: Added the ability to perform a full port scan during the "discovery" process. This allows nPulse to check every port on all hosts for a response. Note that choosing this option slows down the discovery process quite a bit.
  19. New Feature: Added the ability to change the displayed OS for each device (admin user only).
  20. New Feature: Added port/service recovery information to the Event Log.
  21. Update: Events are now written to the Event Log ONLY when a transition occurs. For example when a device transitions from responding to not responding or when a port/server transitions from not responding to responding.
  22. Update: Events are now written to the Event Log even if the email capability is turned off.
  23. Update: EventLog now displays "discovery" processes.
  24. Update: Added links to the Port Scan and Ping Sweeps that will directly connect to the device's 'Details' page by clicking on the IP address.
  25. Update: Added ability to detect host "timeout" conditions. When a timeout occurs the host is assumed down and an email is sent indicating the device timed-out. This condition occurs when a host actually responds on some level, but is unable to respond fully to the scan.
  26. Update: Updated the autorecheck.pl code (it needed a cleanup). It's now faster, easier to modify, and now has a new port failure/recovery Email notification feature. --Based on code input from Lai, Wai Kong <eddy at ModernTerminals.com>
  27. Update: Substantially changed when and how nPulse looks for OS values. This should speed up some of the initial calls to the home and default pages.

  28. Update: In order to speed up the display of the Home Page (with the filters) and the "basic/compact/list" pages the Operating System detection feature now only automatically occurs during the "discovery" process, when a new device is added in "Setup", when a device responds for the first time, or when the "Recheck Operating System" link is clicked on the device's "Detail" page. --First reported by Gary Barrueto <gary at qbiquity.com>
  29. Update: Added additional explanatory information to the Home page, Help page, and the Setup page.
  30. Bug Fix: Changed the name of the PINGHOST subroutine to PINGHOSTS. --First reported by John Bateman <JBateman at intelliquest.com>

Changes from Version 0.41 to 0.42
Fixed an OS sorting error. When OS was chosen as the sort parameter, the display became garbled.

Changes from Version 0.40 to 0.41
A number of users reported LAYER problems with various versions of Netscape Navigator/Communicator. I've eliminated the LAYER html code and have checked the results on Linux, Macintosh, and Windows 9x/NT for NS 4.5, 4.72, 4.75 and the problem seems to be fixed.

Changes from Version 0.31 to 0.40
Many thanks to all those who participated in the beta1 test. The suggestions and bug reports were invaluable! nPulse is now a much better program due to your responses.
Long Live Open Source!

  1. Minor changes to the User Interface.
  2. The 'Basic' and 'Compact' pages are now dynamic and based on user settings. (So icon changes and custom settings now change the overview pages immediately.)
  3. Now have over 50 device icons. --Many logos provided by Chris Winter <cwinter at mentortech.com> My graphic skills are limited at best! Anyone who can create realistic (32x32 pixel) icons, please email them to me and I'll add the best of the bunch.
  4. An icon subdirectory has been placed under the 'images' directory. This is the location of all available icons. If you want to include your own, simply at 32x32 gif file with a '.gif' extension into this directory.
  5. Added limited multi-user capability. Users other than 'admin' will only be allowed access to the home, help, copyright, basic, compact, and detail pages. There is limited access to the detail page as well.
  6. Added a 'TruePing' preference parameter to speed scanning by using only ICMP scans rather than both ICMP/TCP ACK scans. This is useful for networks with multiple devices that are down. On my network the scans are about 5 times faster. Note: some networks/firewalls block ICMP scans, so set TruePing to zero (0) for those situations.
  7. Added a 'Ping Sweep' command to the status page. You can quickly check the status (up/down) of any network, sub-net (using ranges), or current saved set. -- First suggested by Scott Stout <skout at 121-17.waldenweb.com<
  8. Added a 'sort' capability to the Basic and Compact displays. --First suggested by Brian Johnson <brian at netcom.duke.edu> Note: Sorting initiates another scan to recreate the appropriate HTML pages.
  9. Added SSL support to the nPULSE server. The 'pem' file is generic and the private key does not have a pass-phrase. So you might want to replace it with one of your own 'pem' files. Note that the server requires RSA keys. I've tested it with OpenSSL (www.openssl.org) and SSLeay.pm (www.cpan.org).
  10. Added the ability to change the device icon from the 'detail' page.
  11. Added a 'ScanDelay' timing variable that controls the scaning speed of nPULSE. (This is the --scan_delay option to nmap.) Increasing this value reduces network load and possible machine crashes (especially Macintoshes!). Decreasing this value speeds up the scan at the expense of missed devices or possible device crashes.
  12. Added the ability to change the 'welcome' pages for both regular and admin users. (See Settings/Files)
  13. Added a new 'Filter' capability which allows users to specify different IP address filters to limit the devices shown. --Similar capability first suggested by Brian Johnson <brian at netcom.duke.edu>
  14. Added an 'Service/Event Log' which keeps track of when devices fail/recover and also when specific ports (services) fail to respond. The log is displayed on the overview pages. The settings that control the event log are in Settings/Configuration: MaxEvents, MaxEventLogSize, and EventSeverity. The filename is specified by Settings/Configuration:Eventlogfile. To turn off the event log display, set MaxEvents to zero (0). --First suggested by Keith Washington <kwashington at weather.com>
  15. Included a new utility 'usermod' allows user create/delete/modify capabilities.
  16. Included a program to update old infofile.txt files from any previous version to 0.40. To run the update program issue the following command:
    # perl updateinfofile.pl
    If all goes well the infofile will be updated. If any problems occur your original infofile is renamed /usr/local/npulse/data/infofile.txt.bak which you can restore from.
  17. Fixed a bug in the 'Information' section on the 'Detail' page that did not properly handle quotes, slashes, and other non- alphanumeric characters.
  18. Fixed an 'alias' bug which would not display an alias name if the device did not have a DNS entry.
  19. Fixed a bug on the Status page which would display an error message if the user had not defined any devices to monitor.
  20. Fixed a bug in the history graph in which the numbers did not always add up to 100%. --First reported by Brian F. Jensen <Mnemonic at paradis.dk>
  21. Fixed a bug in the 'discover' code which incorrectly handled commas in the discover ip specification.
  22. --First reported by Brian F. Jensen <Mnemonic at paradis.dk>
  23. Fixed a bug where a device which was operational but with no ports responding would appear in the 'Fully Operational' area on the overview page. --First reported by Brian F. Jensen <Mnemonic at paradis.dk>
  24. Fixed an OS detection bug which gave an invalid OS if the device was down during its first scan.

Changes from Version 0.3 to 0.31

  1. Fixed the 'alias bug' which displayed scan data instead of alias/name information.
    -- First reported by Vito Sansevero <vsansevero at linksys.com>
  2. Added ability to 'Add New Hosts Only' when using the 'discover' feature.
    -- First suggested by Scott Stout <skout at 121-17.waldenweb.com>
  3. Added a 'Status' page (suggestions for additional content on this page are welcome).
    -- First suggested by Vito Sansevero <vsansevero at linksys.com>
  4. Fixed reference to nSite in Readme and autorecheck.pl files. (That's what happens when you reuse code!)
  5. /usr/local/npulse/etc/restart now has execute privs.
  6. Put instructions into the README file on how to change the admin password.

Changes from Version 0.2 to 0.3
Overall the automatic device checking is much improved and much more stable.

  1. Fixed known autorecheck.pl bugs:
    1. Multi-device check error (dumb bug).
    2. Restart errors (total restart code rewrite).
    3. Conflict with manual recheck (using a lock file).
  2. Added debugging code for developers (see $ADEBUG in preferences.pl).
  3. The auto recheck function now regenerates the HTML pages so a manual recheck is no longer necessary.
  4. Added a 5 minute (default) screen refresh meta tag (does not work with all browsers).
  5. Included additional OS type identifications
  6. Added a 'restart' option in addition to the stop/start options.
  7. Added additional (configurable) timing parameters.
  8. Added 'overall network status' to basic and compact pages.
  9. Minor changes in the setup.sh routine.
  10. Other minor display and code bug fixes.

Changes from Version 0.1 to 0.2

  1. Added support to detect the FreeBSD 4.0 operating system.
  2. Removed reliance on GD::Graph::bars module. nPULSE now generates its own bar graphs!
  3. Fixed a bug in setup.sh which did not properly over-write the miniserv.conf file during an upgrade or re-run of setup.
  4. Setup now deletes the config file if the user selects 'no' during the confirmation section.
  5. Fixed a bug in autorecheck.pl which would generate multiple entries for the same timestamp.
  6. Fixed the Auto Check stop/restart bug.

Copyright © 2001, Horsburgh.com. All Rights Reserved.