Sensu-Plugins-Windows

Build Status Gem Version Appveyor status Community Slack

Functionality

These files provide basic Checks and Metrics for a Windows system.

Files

Ruby

  • bin/check-windows-cpu-load.rb
  • bin/check-windows-disk.rb
  • bin/check-windows-process.rb
  • bin/check-windows-processor-queue-length.rb
  • bin/check-windows-ram.rb
  • bin/check-windows-service.rb
  • bin/metric-windows-cpu-load.rb
  • bin/metric-windows-disk-usage.rb
  • bin/metric-windows-network.rb
  • bin/metric-windows-processor-queue-length.rb
  • bin/metric-windows-ram-usage.rb
  • bin/metric-windows-uptime.rb
  • bin/powershell_helper.rb

Powershell

  • bin/powershell/check-windows-cpu-load.ps1
  • bin/powershell/check-windows-disk.ps1
  • bin/powershell/check-windows-disk-writeable.ps1
  • bin/powershell/check-windows-pagefile.ps1
  • bin/powershell/check-windows-process.ps1
  • bin/powershell/check-windows-processor-queue-length.ps1
  • bin/powershell/check-windows-ram.ps1
  • bin/powershell/check-windows-service.ps1
  • bin/powershell/metric-windows-cpu-load.ps1
  • bin/powershell/metric-windows-disk-usage.ps1
  • bin/powershell/metric-windows-network.ps1
  • bin/powershell/metric-windows-processor-queue-length.ps1
  • bin/powershell/metric-windows-ram-usage.ps1
  • bin/powershell/metric-windows-uptime.ps1
  • bin/powershell/check-windows-directory.ps1
  • bin/powershell/check-windows-event-log.ps1
  • bin/powershell/check-windows-log.ps1

Usage

Example 1:

Execute Powershell functions using the helper (No copy needed), see example below:

  {
    "checks": {
      "cpu_percent": {
        "command": "c:\\opt\\sensu\\embedded\\bin\\ruby C:\\opt\\sensu\\embedded\\bin\\powershell_helper.rb check-windows-ram.ps1 90 95",
        "interval": 30,
        "type": "check",
        "handler": "win_metrics",
        "subscribers": ["win_metrics"]
      }
    }
  }
Example 2:
  • Copy either the Ruby or Powershell files on a Sensu Client, typically under C:\etc\sensu\plugins.

  • You should also include the full escaped path to the ruby interpreter in the check's command configuration, see example below:

  {
    "checks": {
      "cpu_percent": {
        "command": "c:\\opt\\sensu\\embedded\\bin\\ruby C:\\opt\\sensu\\etc\\plugins\\metric-windows-cpu-load.rb",
        "interval": 30,
        "type": "metric",
        "handler": "win_metrics",
        "subscribers": ["win_metrics"]
      }
    }
  }

You should also include the full escaped path to the ruby interpreter in the check's command configuration, see example below:

{
  "checks": {
    "cpu_percent": {
      "command": "c:\\opt\\sensu\\embedded\\bin\\ruby C:\\opt\\sensu\\etc\\plugins\\metric-windows-cpu-load.rb",
      "interval": 30,
      "type": "metric",
      "handler": "win_metrics",
      "subscribers": ["win_metrics"]
    }
  }
}

Dependencies

  • Powershell checks require Powershell version 3.0 or higher.

Troubleshooting

  • Failures to pull counter data with messages like below, might be due to corrupt performance counters. See Here for more information. Short answer on fix is lodctr /R in an Admin elevated command prompt

Check failed to run: undefined method length' for nil:NilClass, "c:/opt/sensu/plugins/check-windows-ram.rb:45:inacquire_ram_usage'", "c:/opt/sensu/plugins/check-windows-ram.rb:54:in run'", "c:/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-plugin-1.

Installation

Installation and Setup