Documentation forServer & Application Monitor
Monitoring your applications and environment is a key capability of Hybrid Cloud Observability and is also available in a standalone module, Server & Application Monitor (SAM). Hybrid Cloud Observability and SAM are built on the self-hosted SolarWinds Platform.

Linux Disk Monitoring Perl

This SAM application monitor template uses Perl scripts to assess the disk performance of Linux servers.

This template supports the SolarWinds Platform Agent for Linux.

Prerequisites

SSH and Perl are installed on the target server.

If Perl is installed in a location different from /usr/bin/perl, edit paths in the first line of the field ”script body” (#!/usr/bin/perl) for component monitors, or create a symbolic link to Perl with ln command.

To determine where Perl is installed, use the following command: which perl

Credentials

The component monitors Timing cached reads and Timing buffered disk reads require root credentials on the target server. These component monitors require access to vmstat and df utilities.

All other component monitors can use any user account.

The Fedora 14 OS may cause issues with certain counters in this template:

Component monitors

Components without predetermined threshold values have guidance such as "Use the lowest threshold possible" or "use the highest threshold possible" to help you find a threshold appropriate for your application. To learn more, see Manage thresholds in SAM.

Timing cached reads (MB/sec)

Perform timings of cache reads for benchmark and comparison purposes. This displays the speed of reading directly from the Linux buffer cache without disk access. This measurement is essentially an indication of the throughput of the processor, cache, and memory of the system under test.

Use the highest threshold possible. You should monitor this counter for some time and then set thresholds appropriately for your environment.

Troubleshooting: There is a bug in the component script. It tests only the first hard drive (SATA or IDE). If you have a first SATA or a first IDE (but only one hard drive), the script works well. But if you have SATA first hard drive and IDE first hard drive (both hard drives), the result will be only for the SATA first hard drive.

To monitor a second or third IDE hard drive, you should find and change the lines “/dev/hda” to “/dev/hdb” (for the second IDE) or to “/dev/hdc” (for the third IDE hard drive).

To monitor a second or third SATA hard drive, you should find and change the lines “/dev/sda” to “/dev/sdb” (for second SATA) or to “/dev/sdc”(for third SATA hard drive).

This component requires root credentials on the target server.

Timing buffered disk reads (MB/sec)

Perform timings of device reads for benchmark and comparison purposes. This displays the speed of reading through the buffer cache to the disk without any prior caching of data. This measurement is an indication of how fast the drive can sustain sequential data reads under Linux, without any file system overhead.

Use the highest threshold possible. You should monitor this counter for some time and then set thresholds appropriately for your environment.

Troubleshooting: There is a bug in the component script. It tests only the first hard drive (SATA or IDE). If you have a first SATA or a first IDE (but only one hard drive), the script works well. But if you have SATA first hard drive and IDE first hard drive (both hard drives), the result will be only for the SATA first hard drive.

To monitor a second or third IDE hard drive, you should find and change the lines “/dev/hda” to “/dev/hdb” (for the second IDE) or to “/dev/hdc” (for the third IDE hard drive).

To monitor a second or third SATA hard drive, you should find and change the lines “/dev/sda” to “/dev/sdb” (for second SATA) or to “/dev/sdc”(for third SATA hard drive).

This component requires root credentials on the target server.

Blocks received from block device (blocks/sec)

This shows the number of blocks read from the disk in the previous interval. All Linux blocks are currently 1024 bytes. Old kernels may report blocks as 512 bytes, 2048 bytes, or 4096 bytes.

Blocks sent to a block device (blocks/sec)

This indicates the total number of blocks written to disk in the previous interval. All Linux blocks are currently 1024 bytes. Old kernels may report blocks as 512 bytes, 2048 bytes, or 4096 bytes.

Available space on / partition (MB)

This shows the available space on the root (/) partition in MB.

Set this threshold according to your Linux installation and your requirements. At a minimum, it should be more than 512 MB.