Remotely Monitoring Resource Usage: Server Management Techniques

how to remotely monitor resource usage server

Monitoring resource usage on a remote server is a crucial task to ensure optimal performance and prevent system outages. It involves tracking various metrics such as CPU load, memory usage, disk space, and more. By remotely monitoring these resources, administrators can proactively identify potential issues, receive alerts, and gain valuable insights into the health and performance of their servers. This enables them to take timely actions to optimize resource utilization, minimize downtime, and ensure a seamless user experience. With the right tools and techniques, remote monitoring can be a powerful way to maintain the efficiency and reliability of servers, even from a distance.

Characteristics Values
Software SolarWinds System Management Bundle, ManageEngine OpManager, PRTG, Nagios XI, HWMonitor, SysGauge, Zabbix, IPHost Network Monitor, WMI, Performance Monitor, Datalog.exe, SolarWinds SAM, SolarWinds NPM
Functionality Monitor CPU usage, memory utilisation, system temperature, disk space, bandwidth utilisation, uptime and availability, etc.
Cost Some tools are free, while others have a one-time cost or require a subscription.
Compatibility Some tools are designed for Windows servers, while others support Linux, Unix, Solaris, MAC, Red hard, CentOS, Oracle Linux, Ubuntu, Debian, and Raspbian.
Alerts and Notifications Many tools offer alerts and notifications via email or text message when certain thresholds are met.
Customisation Some tools allow customisation of dashboards and alerts to fit specific needs.
Historical Data Some tools record performance metrics for up to 30 days, allowing users to analyse past performance and identify issues.

shundigital

Monitoring CPU usage

Tools for Remote CPU Monitoring:

  • SysGauge: This software offers a dedicated CPU Monitoring GUI module that displays various metrics, including total CPU usage, user CPU usage, kernel CPU usage, CPU interrupt time, and CPU frequency. It also allows you to monitor specific CPUs in a system and provides the ability to export monitoring data for analysis.
  • Windows NT Performance Monitor (Perfmon.exe): This tool enables you to log data and generate alerts on a remote computer without logging into it. By using the Windows NT 4.0 Resource Kit, you can set up data logging and create custom workspaces for monitoring.
  • Nagios: A popular open-source monitoring tool that can run on NIX and monitor Windows machines. While it has a learning curve, it is known for its solid performance once set up properly.
  • Cacti: Cacti is a trending and monitoring tool often used for generating graphs. With plugins, it can also be used for alerting and threshold monitoring. It runs on Windows and supports multiple operating systems.
  • Zabbix: A configurable monitoring solution with a server that runs on Linux and agents available for Windows.
  • ServersAlive: A user-friendly and affordable tool for agentless monitoring. It offers a range of features, including basic connectivity checks, hardware status monitoring, and process and service checks.
  • MRTG: This tool uses SNMP to pull data from machines and generate trend graphs. It can be customised with VB or Perl scripts to monitor CPU%, RAM%, HDD%, and other metrics.
  • OpenNMS: While it doesn't provide CPU load monitoring out of the box, it is based on RRDTool, making it possible to set up custom CPU monitoring.

Best Practices for CPU Monitoring:

  • Set Thresholds and Alerts: Define specific thresholds for CPU usage that trigger alerts when exceeded. This helps identify potential performance issues or bottlenecks promptly.
  • Monitor Individual CPUs: In multi-core or multi-CPU systems, monitor each CPU or core individually to pinpoint any discrepancies or overloaded processors.
  • Analyse CPU Usage Over Time: Collect and analyse CPU usage data over time to identify patterns, trends, or anomalies. This can help optimise resource allocation and identify potential performance bottlenecks.
  • Correlate with Other Metrics: CPU usage often impacts and is impacted by other system metrics, such as memory usage, disk I/O, and network activity. Monitoring these metrics together provides a more comprehensive understanding of system performance.
  • Remote Monitoring Security: Ensure that remote monitoring tools and access are secure to prevent unauthorised access to sensitive server data.

By utilising these tools and following best practices, you can effectively monitor CPU usage remotely, ensuring optimal server performance and resource allocation.

shundigital

Memory utilisation

PowerShell Commands:

Using PowerShell is an effective way to directly retrieve memory utilisation data from a remote computer. Here are the steps to follow:

  • Find your hostname by pressing Win + R, typing "cmd" and pressing Enter. Then, type "hostname" and press Enter to see your computer's hostname.
  • Access Windows PowerShell (Admin) by right-clicking on the Start menu.
  • To get the CPU usage data, enter the following command: "wmic /node:HOSTNAME cpu get loadpercentage". Replace "HOSTNAME" with your computer's hostname.
  • To get the free memory data for a remote system, use the command: "wmic /node:HOSTNAME OS get FreePhysicalMemory". Again, replace "HOSTNAME" with your computer's hostname.

Remote Desktop Software:

Another approach is to use remote desktop software, which allows you to access the remote computer as if you were sitting in front of it. This method provides a more intuitive way to monitor memory utilisation.

  • Download and install a remote desktop software application, such as AnyViewer, on both your local and remote computers.
  • Sign up for an account and log in to the software on both devices, ensuring they are logged into the same account.
  • On your local device, click "One-click control" to establish unattended remote access to the remote computer.
  • Open the Task Manager on the remote computer by clicking "Operation" and selecting "Task Manager".
  • Go to the "Performance" tab in the Task Manager to view the CPU and memory usage data of the remote computer.

Monitoring Multiple Computers:

If you need to monitor memory utilisation across multiple computers, you can use the "Screen Wall" feature offered by some remote desktop software solutions, such as AnyViewer.

  • On the "Device" tab, click your local device and select "Screen Wall".
  • Click "Create screen wall" and then choose all the computers you want to monitor simultaneously.
  • With all the devices added, you can view their CPU and memory usage data within a single window.

shundigital

Server uptime and availability

Server uptime is a critical metric for any business, as it directly impacts the ability to support end users and deliver services. Uptime refers to the availability and functionality of a server, contrasted with downtime, when a server is not available or usable.

High uptime is essential for a business's website to remain accessible to users, and any period of downtime can result in significant financial losses. Uptime is usually calculated as a percentage of time a server is working as intended, and industry standards consider 99.999% uptime ("five-nines availability") as indicative of high availability.

There are various tools available to monitor server uptime and ensure maximum availability. These tools can help identify and address potential issues before they cause downtime, including:

  • SolarWinds SAM (Server & Application Monitor): This tool monitors hardware resources and health, services, and processes to help optimise system health and performance. It can also help identify hardware issues, such as fan speed, power supply, and server temperature, and allows remote access to log in and kill processes hogging resources.
  • UptimeRobot: A free website monitoring service that can monitor up to 50 monitors with 5-minute checks. It provides instant notifications and status updates via email, SMS, voice call, Slack, Telegram, and more.
  • SolarWinds ipMonitor: A lightweight network uptime monitor that provides visibility into device, CPU, disk usage, and memory status. It includes an intuitive dashboard and a versatile alerts system, and offers a free 14-day trial.
  • SolarWinds Network Performance Monitor (NPM): An extensive network monitoring tool that includes fault, performance, and availability monitoring, as well as network path analysis. It offers automated intelligent alerting and reporting and provides a free 30-day trial.
  • Paessler PRTG Network Monitor: This tool takes a sensor-based approach, allowing users to choose specific sensors to monitor. It can function as a free uptime monitoring tool for up to 100 sensors and offers a 30-day free trial.
  • Site24x7 Website Monitor: An agentless website monitoring tool that allows monitoring of URLs, IPv4/IPv6-enabled websites, and synthetic web monitoring from various ISP networks. It provides insights into website response time and offers a 30-day free trial.
  • Server Density: Cross-platform monitoring for Windows, Linux, Docker, FreeBSD, Mac, and Kubernetes. It has a powerful API for automatic agent installation and can be integrated with over 100 systems and services. A 14-day free trial is available.
  • ManageEngine OpManager: A real-time network monitoring solution with built-in network performance monitors for latency, errors, speed, packet loss, and more. It includes physical and virtual server monitoring and WAN link monitoring capabilities. A demo can be scheduled.
  • Nagios XI: An uptime monitor available for Windows, VMware, CentOS, RHEL, Ubuntu, and Debian Linux. It assists with reducing downtime, detecting network incidents, and monitoring network health. It offers remote assistance and a quick-start module, and the free version, Nagios Core, is a popular choice among IT administrators.
  • Zabbix: A free, open-source uptime monitoring software that can monitor networks, cloud, applications, and servers. It has specific solutions for various industries and can monitor disk space, fan status, device temperature, and power supply.

In addition to these tools, there are also manual ways to check server uptime on Windows and Linux systems, although this can be time-consuming and tedious, especially for large networks.

shundigital

Remote system resource monitoring

Tools for Remote Monitoring

There are several effective tools available for remote system resource monitoring, catering to different needs and budgets. Some popular options include SolarWinds System Management Bundle, PRTG, Nagios XI, HWMonitor, and SysGauge. These tools offer features such as centralised dashboards, alert systems, and customisation options. For example, SolarWinds provides a bundle of four tools for comprehensive monitoring of server hardware and applications, while PRTG offers built-in sensors for vendors like HP, Dell, Cisco, and IBM.

Protocols and Monitoring Methods

When it comes to remote system resource monitoring, various protocols and methods can be employed. For Windows hosts, WMI (Windows Management Instrumentation) is commonly used to collect data on CPU load metrics, memory usage, disk space, and process statistics. For UNIX servers, switches, and routers, SNMP (Simple Network Management Protocol) monitors or SNMP traps can be utilised. Additionally, IPHost supports a range of protocols and monitoring methods, including WMI and SNMP, making it a versatile option for remote system resource monitoring.

Monitoring Specific Resources

Customisation and Automation

Some remote monitoring tools offer customisation options to tailor the monitoring experience. For example, the ability to create custom WMI queries or monitors allows users to track specific performance counters or interact with browser-based sites for further analysis. Additionally, scheduling features can be utilised to automate monitoring during specific time periods, ensuring efficient data collection without constant physical presence.

Notifications and Alerts

An essential aspect of remote system resource monitoring is the ability to receive notifications and alerts about critical issues. Many tools, such as PRTG, offer alert systems that can send emails or text messages when certain events occur, like a CPU temperature threshold being reached. This enables administrators to take prompt action, even when they are not actively monitoring the system.

By leveraging these tools, protocols, and features, remote system resource monitoring can be effectively conducted to maintain server health, optimise performance, and minimise downtime.

shundigital

Performance monitoring

Key Performance Indicators (KPIs)

Begin by identifying the specific metrics you want to monitor. These KPIs could include response time, central processing unit (CPU) utilization, memory consumption, and network bandwidth. For instance, an e-commerce website might prioritize response time and uptime, while a data processing company may focus on CPU and memory utilization.

Establish a Baseline

Establish a baseline by recording data on server health monitoring metrics during low and high traffic times. This baseline will serve as a reference point to track improvements or identify potential issues. It's important to update this baseline as your infrastructure evolves and your business requirements change.

Set Up Threshold Alerts

Threshold alerts help you understand the limitations of your server and prevent downtime or crashes. Determine the acceptable limits for each KPI based on your baseline and business needs, then configure your monitoring tool to trigger alerts when these limits are reached.

Regularly Review Performance Reports

Performance reports offer valuable insights into trends, patterns, and anomalies within your server infrastructure. Schedule regular performance reviews to identify areas for improvement and potential issues. Look for patterns, fluctuations, and areas where optimization is needed.

Optimize Server Settings and Resources

Regularly optimize your server resources to maintain peak performance. This includes updating software, operating systems, applications, and hardware to prevent security vulnerabilities and ensure optimal performance. For example, if your CPU is overworked during high-traffic periods, consider upgrading its power.

Monitor CPU & Memory

Monitor the CPU utilization and memory resources of your server. Identify the top CPU and memory-consuming processes, and track metrics such as CPU Process Count, CPU Thread Count, and CPU % Interrupt Time. Monitor the available free memory and the rates pages are written to free up physical memory space.

Disk Activity

Monitor disk activity, including disk busy time, input/output operations (I/O), disk read/write, and disk queue length. A high disk busy time indicates that requests to access the disk are piling up. Monitoring these metrics is crucial for tasks heavily dependent on I/O operations.

Page File and Page Swapping

Monitor the page file usage, which stores unused or unaccessed data. If its usage is high, it indicates that the paging file is insufficient for your server's needs. While page swapping can be a short-term fix for memory capacity issues, it reduces response time, so it's recommended to avoid it.

Context Switching

Monitor context switching, which occurs when the kernel switches the processor from one process to another. Extensive context switching can lead to increased CPU resource consumption. A sudden increase in context switching may indicate a problem with your server.

Time Synchronization

Ensure accurate time synchronization across systems on the same network to prevent data overwrite, version conflicts, or incorrect program functioning. Monitor system clock offsets against a reference clock.

Handle Leaks

Monitor handle usage over time. If the number of open handles increases drastically or consistently, it could indicate a handle leak, where an application fails to return the handle after use. This can exhaust the finite resources of the server over time, leading to degraded performance.

Network Activity

Monitor network activity to measure server performance. If the bandwidth usage is nearing the maximum speed of the network interface, it could indicate a bottleneck. Constantly monitoring input/output (I/O) activities on the network card can help spot potential hardware failures or overloading.

Transmission Control Protocol (TCP)

Monitor the performance of the TCP layer, as it is used by connection-oriented applications like HTTP, SQL, and SMTP. Track the connection rate, the number of connection drops, and the percentage of retransmissions. Keep retransmissions to a minimum to ensure good TCP performance.

Operating System (OS) Logs

OS logs are a common means of monitoring server health, as they contain error details, crashes, and abnormalities. Regularly monitor, analyze, and set up alerts for log events to stay informed about any server issues.

By following these steps and staying vigilant, you can effectively monitor your server's performance and resource usage, ensuring a smooth and functional user experience.

Frequently asked questions

You can use a monitoring tool such as IPHost, SolarWinds System Management Bundle, PRTG, Nagios XI, HWMonitor, SysGauge, or Zabbix. These tools can help you monitor CPU usage, memory, disk space, and more. Some are free, while others offer free trials.

Monitoring tools can help identify server hardware health issues, provide alerts and notifications, assist with capacity planning, and minimize server and application downtime.

You can use these tools to monitor CPU load, memory usage, disk space, system crashes, new program installations, updates, and more.

The setup process will vary depending on the tool you choose. For example, to use IPHost to monitor system resources, you need to set up WMI or SNMP protocols, depending on the operating system of the remote server.

Written by
Reviewed by
Share this post
Print
Did this article help you?

Leave a comment