A website or network administrator relies on server/network monitoring software that can continuously keep an eye on the system and can detect slow or faulty components. These monitoring tools can automatically send updates or activate backups in case of outages caused by server crashes or overloads, network connections and other factors. For instance, to find out the status of a web server, monitoring software may occasionally send an HTTP request to fetch a page. For email servers, a test message might be dispatched through SMTP and brought back by IMAP or POP3. In the event of status request failures, the monitoring software may send an alarm message to sysadmin, turn on failover systems to eliminate the problematic server from duty until it can be fixed, or do other imperative actions.
For those of you who are looking for monitoring tools that can handle small to large-scale infrastructures, here is a list of some of the best open-source server/network monitoring software that you can use for free:
Nagios
Nagios is considered as one of the most popular if not the most popular open-source computer network monitoring software application available. It was originally designed to run under Linux, but other Unix variants are also supported. Nagios provides monitoring of network services (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, FTP, SSH) and host resources (processor load, disk usage, system logs) among others. Remote monitoring is managed through SSH or SSL encrypted tunnels. Nagios has a simple plugin design that gives users the freedom to effortlessly develop their own service checks based on needs and by using any of the supported tools that they would like. To detect and differentiate between hosts that are down and those that are unreachable, Nagios allows you to define network host hierarchy using 'parent' hosts. When services or host problems arises, notification will be sent to the one who is in charge of the network via e-mail, SMS, etc.
Zabbix
Zabbix is an enterprise-class monitoring tool that is full-featured and is commercially supported. It is capable of monitoring and tracking the status of different kinds of network services, servers, and other network hardware. Zabbix has great visualization functionalities including user-defined views, zooming, and mapping. It has a versatile communication method that allows quick and uncomplicated setup of different types of notifications for pre-defined events. Zabbix has three primary modules: server, agents, front-end. To store monitoring data, you can use MySQL, PostgreSQL, Oracle, or SQLite as your database. Without installing any software on the monitored host, Zabbix allows users to verify the availability and responsiveness of standard services such as SMTP or HTTP. To monitor statistics such as CPU load, network utilization and disk space, a Zabbix agent must be installed on host machine. Zabbix includes support for monitoring via SNMP, TCP and ICMP checks, IPMI and custom parameters as an option to installing an agent on hosts.
Cacti
Cacti is a web-based graphing tool that is designed as a complete frontend to RRDtool's data storage and graphing utility, which allows users to monitor and graph CPU load, network bandwidth utilization, network traffic, and more. It can be utilized to configure the data collection itself, enabling particular setups to be monitored without any manual configuration of RRDtool. Cacti allows you to poll services at preset period and graph the resulting data. It is mainly used to graph time-series data of metrics such as CPU load and network bandwidth utilization. Cacti can be expanded to monitor any source via shell scripts and executables. It also supports plugin architecture and has a large and active community that has gathered around the Cacti forums providing handy scripts, templates, and tips on writing plugins.
Zenoss
Based on the Zope application server and written in Python, Zenoss (Zenoss Core) is a server and network management platform that combines original programming and several open source projects to integrate data storage and data collection processes via web-based user interface. It allows users to monitor availability, inventory/configuration, performance and events. Zenoss Core is capable of monitoring availability of network devices using SNMP, SSH, WMI, network services (HTTP, POP3, NNTP, SNMP, FTP) and host resources (processor, disk usage) on most network operating systems. A plug-in architecture provided by ZenPacks allows community members to extend its functionality. ZenPacks are encapsulated in Python eggs and supplies instrumentation and reports for monitored infrastructure units.
Munin
Like Cacti, Munin utilizes RRDTool to present output in graphs through a web interface. It has a master/node architecture in which the master links to all the nodes at regular intervals and asks them for data. Using Munin, you can quickly and easily monitor the performance of your computers, networks, SANs, and applications. It makes it uncomplicated to spot the issue when a performance problem occurs and clearly see how you're doing capacity wise on all restricted resources. For Munin’s plugin, its main priority is on simple plug and play architecture. It has plenty of monitoring plugins available that will easily work without a lot of modification.
If you know of other free and open-source server/network monitoring software, you may share them with us via comment.
Nagios is considered as one of the most popular if not the most popular open-source computer network monitoring software application available. It was originally designed to run under Linux, but other Unix variants are also supported. Nagios provides monitoring of network services (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, FTP, SSH) and host resources (processor load, disk usage, system logs) among others. Remote monitoring is managed through SSH or SSL encrypted tunnels. Nagios has a simple plugin design that gives users the freedom to effortlessly develop their own service checks based on needs and by using any of the supported tools that they would like. To detect and differentiate between hosts that are down and those that are unreachable, Nagios allows you to define network host hierarchy using 'parent' hosts. When services or host problems arises, notification will be sent to the one who is in charge of the network via e-mail, SMS, etc.
Zabbix
Zabbix is an enterprise-class monitoring tool that is full-featured and is commercially supported. It is capable of monitoring and tracking the status of different kinds of network services, servers, and other network hardware. Zabbix has great visualization functionalities including user-defined views, zooming, and mapping. It has a versatile communication method that allows quick and uncomplicated setup of different types of notifications for pre-defined events. Zabbix has three primary modules: server, agents, front-end. To store monitoring data, you can use MySQL, PostgreSQL, Oracle, or SQLite as your database. Without installing any software on the monitored host, Zabbix allows users to verify the availability and responsiveness of standard services such as SMTP or HTTP. To monitor statistics such as CPU load, network utilization and disk space, a Zabbix agent must be installed on host machine. Zabbix includes support for monitoring via SNMP, TCP and ICMP checks, IPMI and custom parameters as an option to installing an agent on hosts.
Cacti
Cacti is a web-based graphing tool that is designed as a complete frontend to RRDtool's data storage and graphing utility, which allows users to monitor and graph CPU load, network bandwidth utilization, network traffic, and more. It can be utilized to configure the data collection itself, enabling particular setups to be monitored without any manual configuration of RRDtool. Cacti allows you to poll services at preset period and graph the resulting data. It is mainly used to graph time-series data of metrics such as CPU load and network bandwidth utilization. Cacti can be expanded to monitor any source via shell scripts and executables. It also supports plugin architecture and has a large and active community that has gathered around the Cacti forums providing handy scripts, templates, and tips on writing plugins.
Zenoss
Based on the Zope application server and written in Python, Zenoss (Zenoss Core) is a server and network management platform that combines original programming and several open source projects to integrate data storage and data collection processes via web-based user interface. It allows users to monitor availability, inventory/configuration, performance and events. Zenoss Core is capable of monitoring availability of network devices using SNMP, SSH, WMI, network services (HTTP, POP3, NNTP, SNMP, FTP) and host resources (processor, disk usage) on most network operating systems. A plug-in architecture provided by ZenPacks allows community members to extend its functionality. ZenPacks are encapsulated in Python eggs and supplies instrumentation and reports for monitored infrastructure units.
Munin
Like Cacti, Munin utilizes RRDTool to present output in graphs through a web interface. It has a master/node architecture in which the master links to all the nodes at regular intervals and asks them for data. Using Munin, you can quickly and easily monitor the performance of your computers, networks, SANs, and applications. It makes it uncomplicated to spot the issue when a performance problem occurs and clearly see how you're doing capacity wise on all restricted resources. For Munin’s plugin, its main priority is on simple plug and play architecture. It has plenty of monitoring plugins available that will easily work without a lot of modification.
If you know of other free and open-source server/network monitoring software, you may share them with us via comment.
A few more:
ReplyDeleteHyperic - http://www.hyperic.com/
op5 - http://www.op5.com/
OpenNMS - http://www.opennms.org/
Monitorix - http://www.monitorix.org/
I just set up Monit - www.mmonit.org (note double m) to monitor Apache, Mysql and SSH on one of my servers. Its fairly straight forward to do if you follow the docs on the site. But its suited for monitoring just a few servers. Documentation and howtos are sparse especially with regard to set up for Mysql, which is still not working for me.
ReplyDeleteMonit will restart any daemons that crash and will provide you pretty graphs via a built in http server if you open up the appropriate port.
emk
Some more listed at
ReplyDeletehttp://www.linuxlinks.com/article/20090709183715280/SystemMonitoring.html
and
http://www.linuxlinks.com/article/20101118163040955/Monitoring-Extra.html
Splunk.com
ReplyDeletecollectd
ReplyDeleteXymon rocks - have used it for many years. Great!!
ReplyDeleteI have 60+ Linux/windows servers, a bunch of switches, firewall,climate monitors, etc. some with custom scripts running under xymon. http://www.xymon.com/
ReplyDeletePure Linux shell magic !
In the last days I deployed a big monitoring infrastructure (1300 devices, 70 services, 15 SLAs) using Osmius.
ReplyDeleteOsmius is service oriented, its very easy to create new events and you can centrally manage configurations, agents and updates.
And it's solid as a rock, we've retrieved 4 millions of measurements so far.
http://osmius.com
LogicMonitor does performance monitoring & alerting from the cloud.
ReplyDeletehttp://www.logicmonitor.com/
See also the Nagios fork Icinga (http://www.icinga.org), which is fully compatible with Nagios in terms of config and plugins, but extents it by e.g. another GUI and APIs.
ReplyDeleteOpsview is a Nagios based alternative but much simpler to use, with automatic graphing and distributed monitoring built in.
ReplyDeleteSee some of the screencasts at http://www.opsview.com/learn/demos-tutorials
Just to let you know that I have subscribed to your RSS feed.
ReplyDeleteCacti and munin are not a monitoring tool for me (More of a performance grapher)
ReplyDeleteAccording to me Nagios is the best because of it's insane modularity and community plugins.
Nagios can also be enhanced with pnp4nagios (or similar) to have cacti like graphs feeded with data coming from the Nagios checks
Shinken ( http://www.shinken-monitoring.org/ ) is a very good monitoring solution. It was proposed to the Nagios core team as a proof of concept of a new architecture to override the problems of the actual Nagios architecture, but was rejected because of "political" reasons and so has become a project on its own. It can be considered as a Nagios on steroid : it has a more scalable architecture, better performances and is compatible with Nagios configuration files.
ReplyDeleteAnd the evolution is REALLY quick (cf all the new functionalities in the last year).
Fantastic article. Can we get permission to translate it to spanish and publishing it in www.tcomm.es referencing you as the original author?
ReplyDeleteThanks
@ Vicente Gavara. Sure. But please also provide a link to this article to give credit. Thanks.
ReplyDeleteA few more:
ReplyDeleteMonitis - http://monitis.com/
Mon.itor.us - http://mon.itor.us/
A "server monitoring as a service" product that is built completely on open source software and has all of it's components released back as open source software is Tribily - http://tribily.com. It combines the power of zabbix with the ease of use of software as a service.
ReplyDeleteDisclaimer: I'm the founder of Tribily, but it still is a very nice service :)
I love Xymon. I've been using it and its precursors for over 10 years. Currently monitoring over 800 servers including Linux, Solaris, AIX, Windows.
ReplyDeleteI've worked with a few of these server monitoring solutions over my career. All have their good/bad, and found the most critical was how the solution could best be customized to our specific needs. I found the 'true' needs of the solution really isn't apparent until onces its implemented. The initial needs are obviously satisfied, but to get more 'intelligent' with the server monitoring solution and really drive its performance and value, comes afterwards.
ReplyDeleteI also found this resources helpful for my personal use when looking for some free server monitoring options.
http://www.deadmanheartbeat.com/5-must-have-free-server-monitoring-tools/
nagios and zenoss are not not free anymore
ReplyDeleteupdate please
Zenoss Core - http://community.zenoss.org/community/download
ReplyDeleteNagios Core - http://www.nagios.org/download/core (Under "DIY Free" click "Download").
Both still free for the core versions, just like always.