Select Supported Platforms

Select Supported Architectures

Select Tier

Github Name

Asset Definition
Release Notes
Release Assets


Build Status
Gem Version
Code Climate
Test Coverage
Dependency Status



Check disk capacity and inodes based upon the gem sys-filesystem.

Can adjust thresholds for larger filesystems by providing a 'magic factor'
(-m). The default, 1.0, will not adapt threshold percentages for volumes.

The -l option can be used in combination with the 'magic factor' to specify
the minimum size volume to adjust the thresholds for.

Refer to check_mk's
documentation on adaptive thresholds.

You can also visualize the adjustment using
WolframAlpha with the following:

y = 100 - (100-P)*(N^(1-m))/(x^(1-m)), y = P for x in 0 to 1024

Where P = base percentage, N = normalize factor, and m = magic factor


Check the mount points in /etc/fstab to ensure they are all accounted for.


Acquire disk capacity metrics from df and convert them to a form usable by graphite


Read /proc/iostats for disk metrics and put them in a form usable by Graphite. See iostats.txt for more details.


Based on disk-capacity-metrics.rb by bhenerey and nstielau. The difference here being how the key is defined in graphite and the size we emit to graphite(now using megabytes), inode info has also been dropped.


Check the SMART status of hardrives and alert based upon a given set of thresholds


Check the health of a disk using smartctl


Check the status of SMART offline tests and optionally check if tests were executed in a specified interval


  • bin/check-disk-usage.rb
  • bin/check-fstab-mounts.rb
  • bin/check-smart-status.rb
  • bin/check-smart.rb
  • bin/check-smart-tests.rb
  • bin/metrics-disk.rb
  • bin/metrics-disk-capacity.rb
  • bin/metrics-disk-usage.rb


This is a sample input file used by check-smart-status and check-smart, see the script for further details.

  "smart": {
    "attributes": [
      { "id": 1, "name": "Raw_read_Error_Rate", "read": "left16bit" },
      { "id": 5, "name": "Reallocated_Sector_Ct" },
      { "id": 9, "name": "Power_On_Hours", "read": "right16bit", "warn_max": 10000, "crit_max": 15000 },
      { "id": 10 , "name": "Spin_Retry_Count" },
      { "id": 184, "name": "End-to-End_Error" },
      { "id": 187, "name": "Reported_Uncorrect" },
      { "id": 188, "name": "Command_Timeout" },
      { "id": 193, "name": "Load_Cycle_Count", "warn_max": 300000, "crit_max": 600000 },
      { "id": 194, "name": "Temperature_Celsius", "read": "right16bit", "crit_min": 20, "warn_min": 10, "warn_max": 40, "crit_max": 50 },
      { "id": 196, "name": "Reallocated_Event_Count" },
      { "id": 197, "name": "Current_Pending_Sector" },
      { "id": 198, "name": "Offline_Uncorrectable" },
      { "id": 199, "name": "UDMA_CRC_Error_Count" },
      { "id": 201, "name": "Unc_Soft_read_Err_Rate", "read": "left16bit" },
      { "id": 230, "name": "Life_Curve_Status", "crit_min": 100, "warn_min": 100, "warn_max": 100, "crit_max": 100 }
  "hardware": {
    "devices": [
	  { "path": "sda", "ignore" : [ 187 ] },
	  { "path": "sdb", "override": "/dev/twa0 -d 3ware,0" }


Installation and Setup


Certification Verification

If you are verifying certificates in the gem install you will need the certificate for the sys-filesystem gem loaded
in the gem certificate store. That cert can be found here.

Are you sure you want to report this asset?

Please describe the reason for reporting this asset. Our moderators will be notified and will disable the asset if it is found to be inappropriate.


You must be signed in to report this asset.

Sign In with Github



There are no asset definitions for this version, only source code:

Download Source Cancel