These tools can help you monitor and report on server availability, seamlessly switch keyboard and mouse input between systems, and measure bandwidth.
Server “uptime” is a universal metric for determining infrastructure reliability and serviceability. Downtime usually equates—either directly or indirectly—to loss of revenue.
With that in mind, keeping an eye on your servers and reporting on server availability is a near-universal requirement of IT professionals. One tool that can help you with this task is up.time from Uptime Software Inc. The up.time utility gives you performance and availability reporting across a broad spectrum of systems, services and network gear. You can monitor your Windows Servers, as well as multiple flavors of Unix and Linux.
You can also monitor Web application and servers including IIS, Apache, WebSphere and Tomcat. There are agents for monitoring database servers like Oracle, MySQL, Sybase and Microsoft SQL Server, as well as applications like Microsoft Exchange and other e-mail services. You can also monitor generic services like DNS, FTP, Simple Network Management Protocol (SNMP), LDAP, SSH and Network File Server (NFS), among others. You can even monitor your storage area network (SAN).
Once you’ve gone through the installer, you’ll need to configure up.time to monitor your infrastructure by adding systems, configuring service monitors and adding alerts for service thresholds. The up.time utility supports multiple users and roles, so you’ll be able to tailor the application to a wide variety of staff configurations. It also integrates with Active Directory, so you can use your current Groups and Users as a consistent structure for authentication and authorization.
All configuration and monitoring happens through the PHP-based up.time Web portal. You can add individual systems or groups of systems via an auto-discovery service based on IP address range or domain name. You can monitor systems through the up.time agent, Net-SNMP version 2 or 3, or Windows Management Instrumentation (WMI). If you’re in a larger organization, you can group monitored systems, applications and devices. You can also add “views” to give you quick access to commonly viewed logical clusters. In addition, you can use up.time to help with service level agreements (SLAs). You can define SLAs based on monitoring periods and target percentages across a day, week or month.
A good monitoring tool needs good reporting features, and up.time has a slew of configurable, customizable scheduling options for generating reports, as well as graphical dashboards to quickly identify issues. There are reports for incidents and outages, historical performance, general availability and trends. Some reporting details include CPU usage, disk I/O, network bandwidth utilization, memory and paging statistics. Another nice feature for larger environments is a number of “top X” type reports, so you can quickly identify troubled applications or systems.
Besides servers and services, you can also use up.time to monitor virtual environments. For example, on VMware ESX Servers and AIX LPARs, you get density and capacity reporting, workload reports and movement analysis. Reports give you metrics like percent ready, percent used, memory swap used and disk bus resets.
There’s a built-in archiving feature that lets you define the number of months you want to keep the raw statistics. You can use MySQL, Oracle or Microsoft SQL Server as the storage repository. You can install the monitoring component on Linux and Unix in addition to Microsoft Windows (though the Windows install gives you a quick graphical installer, and the others do not). Up.time is also available as a downloadable appliance, pre-configured and ready to go.
You can get up.time licensed on a per-monitoring server installation basis. There’s a free 30-day trial available on the company Web site. If you need a multiplatform monitoring solution, take a look at up.time.
You’ve probably found yourself multitasking on multiple machines around your desk. Having to switch your keyboard and mouse while doing so is a real hassle. This is where a software-based keyboard/video/mouse (KVM) tool can be quite useful, and Synergy, from The Synergy Project, is one such tool. This free open source application lets you easily share a single mouse and keyboard across monitors attached to different machines.
Synergy is multiplatform: You can switch between your Windows desktop and the Linux server or switch between your Mac and Windows server. Unlike a traditional KVM, where you have to physically switch the keyboard and mouse signals to the other machine, Synergy lets you move your mouse and keyboard back and forth between machines.
You install Synergy on each machine you want to use. One runs as a server (the machine with the keyboard and mouse physically attached) and the rest run as clients. When you move your mouse to the edge of one screen and into another, the application transfers mouse movement and keystrokes to the other machine over the network. You can configure the default port via the application settings.
Synergy doesn’t do any authentication or encryption, so any computer that knows a client screen name can connect. All data transferred between the server and client is unencrypted, which means you’re susceptible to keystroke loggers. There’s a way to protect your systems if you want to use this in a non-trusted environment. You can use the standard and relatively straightforward method of port-forwarding over SSH to encrypt the connection with an SSH server like OpenSSH to protect your keystrokes. You can also bind Synergy to a specific network interface if your machine has multiple NICs, or set up a private wired network just for Synergy.
Synergy runs as a service on Windows systems (or a daemon on Linux systems). You can automatically start the client or server when your machine starts to ensure continued communication. On the server, you can configure your Synergy machine layout much like you choose the monitor layout when you have multiple monitors.
You can also define hotkeys to switch to a particular screen, switch to the next screen in a particular direction, or lock the cursor to a particular machine. If you find yourself jumping from keyboard to keyboard, check out the free open source Synergy project—it will save you time and desk space.
Is your network performing as it should? Is it taking longer than normal to copy files from machine to machine? Have you just upgraded your network and want to check your transfer rates? One tool that will help you investigate and answer questions like those is the simple and free open source Iperf.
Iperf helps you measure the maximum bandwidth for TCP and User Datagram Protocol (UDP) communication between endpoints. This “oldie but goody” command-line utility is a *nix port. You’ll need to either compile the source yourself or find a pre-complied version to run it on Windows (there are plenty out there).
Iperf is set up in a server/client configuration. The server listens for clients on a specified port for TCP and/or UDP traffic from Iperf clients. Once running, Iperf transfers numerous test volumes between the server and client reports on the maximum bandwidth for each pass.
There are a number of configuration options besides the test port. You can also choose to test UDP rather than TCP bandwidth, run a bidirectional test, or slurp in test data from a file source or stdin. You can also run multiple parallel client threads, define TCP window and segment sizes, or even use IPv6 domains.
For reporting, you can dump output to a CSV file, define the reporting format (for example, Mbits, Kbytes and so on) and the number of seconds between bandwidth reports. Iperf hasn’t been updated in a while, but it’s still quite useful for finding bottlenecks in your environment.