TclMon - Open Source Cross-Platform Network Monitoring Solution
TclMon is a network monitoring system, written in platform-independent language Tcl. TclMon consists of a server that gathers and processes data received from network devices, and the client that provides data visualization.
It would also require some additional Tcl libraries:
Why TclMon ?
- TclMon automatically generates and maintains lists of parameters of objects that will be collected and analysed. This dramatically simplifies the TclMon setup process - in most cases when adding an object to be monitored, you should just add basic information about this object to a configuration file (IP-address, the polling timer settings and a list of methods to collect, analyze and store object parameters data) and TclMon will automatically detect its components, make a list of their parameters, and will automatically maintain this list up to date with changes in hardware and software configuration of the object, as well as network topology, part of which the object is.
- TclMon automatically assesses the state of objects and their components, and gives his assessment to the client program in the form of alarms. This allows you to exclude the assessment logic from the client, make it simple and universal. Also, the client will not require modification after an addition of new object classes and methods for collecting and analyzing information.
- TclMon uses a simple plaintext protocol when interacting with a client application, that easily allows TclMon to act as a source of primary data regarding network devices.
- With clearly defined modular structure and unified scheme of internal data storage TclMon can be extended very easily.
- Due to thread-based architecture TclMon model provides a fairly good scalability - up to thousands of top-level objects, and a good load distribution on multiprocessor systems.
System requirements
- The operating system with kernel-level threading support. Sun Solarisis recommended.
- Tcl 8.4.x or higher, built with threads support (--enable-threads).
- Thread 2.6 or higher.
- Tcllib 1.9 or higher.
- RRDTool 1.2.19 or higher, built with Tcl support.
- Tcludp 1.0.8 or higher (required only in case of need to monitor services running over UDP - DNS, NTP and RADIUS).
- Mysqltcl 3.03 or higher (required only in case of need to monitor MySQL databases).
- Oratcl 4.4 or higher (required only in case of need to monitor Oracle databases or to use Oracle database as data storage).
- fping 2.4b2 or higher (required only in case of need to monitor reachability of network devices using ICMP ping).
It would also require some additional Tcl libraries:
Download TclMon and Netstate
Download latest TclMon version here, and latest Netstate version here.TclMon installation
- Unpack the Tclsnmp and Tclsyslog archives to the directory where Tcl will look for libraries. If necessary, correct the path to that directory in the pkgIndex.tcl files. The path to this directory can be obtained using the following commands:
$ tclsh
% puts $tcl_pkgPath - Make sure that Tcl can find all required libraries. The following commands should succeed:
$ tclsh
% package require Thread
% package require Syslog
% package require Tclsnmp
% package require Rrd
% package require ip
% package require dns
% package require time - Create user tclmon and unpack the TclMon archive to user's home directory (e.g. /home/tclmon).
- If necessary, change the following TclMon variables:
CONFIG(ROOT_DIR) - path to the installation root
CONFIG(RSH_BINARY) - path to the rsh binary
CONFIG(FPING_BINARY) - path to the fping binary
CONFIG(ALARMS_SERVER_MAIL_NOTIFY_SENDMAIL) - path to sendmail binary with necessary options and flags - Configure objects (see etc/tclmon.cfg and etc/objects as examples) and e-mail alarm subscriptions (see etc/alarms_server/mail_notify.cfg).
- Add the following line to /etc/syslog.conf:
local6.debug /home/tclmon/var/log/tclmon.log
- Create TclMon logfile:
$ touch /home/tclmon/var/log/tclmon.log
- Restart syslogd:
# pkill -1 -x syslogd
- Run TclMon:
# cd /home/tclmon/var && su tclmon -c "/usr/bin/nohup /home/tclmon/bin/tclmon.sh /home/tclmon/etc/tclmon.cfg 6666 > OUT 2> ERR &"
- Try to connect to the TclMon management console:
$ telnet localhost 6666
- Successful connection to the management console and the reaction to the commands help, status, and threads all, as well as the absence of errors in the log file indicates the successful TclMon launch.
Netstate installation
- Unpack the Netstate archive to the selected directory (e.g. C:\Program Files).
- Run netstate.exe from the C:\Program Files\Netstate 2 directory.
- Connect to the TclMon server using the server address and port (default 7777).
Visit website -
Screenshots-