项目作者: sensu-plugins

项目描述 :
Sensu Windows Plugins
高级语言: PowerShell
项目地址: git://github.com/sensu-plugins/sensu-plugins-windows.git
创建时间: 2015-02-11T07:03:32Z
项目社区:https://github.com/sensu-plugins/sensu-plugins-windows

开源协议:MIT License

下载


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/check-windows-cpu-load.ps1
  • bin/check-windows-disk.ps1
  • bin/check-windows-disk-writeable.ps1
  • bin/check-windows-pagefile.ps1
  • bin/check-windows-process.ps1
  • bin/check-windows-processor-queue-length.ps1
  • bin/check-windows-ram.ps1
  • bin/check-windows-service.ps1
  • bin/metric-windows-cpu-load.ps1
  • bin/metric-windows-disk-usage.ps1
  • bin/metric-windows-network.ps1
  • bin/metric-windows-processor-queue-length.ps1
  • bin/metric-windows-ram-usage.ps1
  • bin/metric-windows-uptime.ps1
  • bin/check-windows-directory.ps1
  • bin/check-windows-event-log.ps1
  • bin/check-windows-log.ps1

Usage

Example 1:

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

  1. {
  2. "checks": {
  3. "cpu_percent": {
  4. "command": "c:\\opt\\sensu\\embedded\\bin\\ruby C:\\opt\\sensu\\embedded\\bin\\powershell_helper.rb check-windows-ram.ps1 90 95",
  5. "interval": 30,
  6. "type": "check",
  7. "handler": "win_metrics",
  8. "subscribers": ["win_metrics"]
  9. }
  10. }
  11. }
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:

  1. {
  2. "checks": {
  3. "cpu_percent": {
  4. "command": "c:\\opt\\sensu\\embedded\\bin\\ruby C:\\opt\\sensu\\etc\\plugins\\metric-windows-cpu-load.rb",
  5. "interval": 30,
  6. "type": "metric",
  7. "handler": "win_metrics",
  8. "subscribers": ["win_metrics"]
  9. }
  10. }
  11. }

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

  1. {
  2. "checks": {
  3. "cpu_percent": {
  4. "command": "c:\\opt\\sensu\\embedded\\bin\\ruby C:\\opt\\sensu\\etc\\plugins\\metric-windows-cpu-load.rb",
  5. "interval": 30,
  6. "type": "metric",
  7. "handler": "win_metrics",
  8. "subscribers": ["win_metrics"]
  9. }
  10. }
  11. }

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.

Testing

Installation and Updates

Windows Platform testing is moving to Pester as Powershell is the native language for the OS.

All tests should be written using Pester 4 syntax. For the differences please read this

In Windows 10 v1809 and higher, you first need to cleanup the default Pester module and only then you can proceed with the installation of higher version of Pester module.

  1. $module = "C:\Program Files\WindowsPowerShell\Modules\Pester"
  2. takeown /F $module /A /R
  3. icacls $module /reset
  4. icacls $module /grant Administrators:'F' /inheritance:d /T
  5. Remove-Item -Path $Module -Recurse -Force -Confirm:$false
  6. Install-Module -Name Pester -Force

For any subsequent update it is enough to run:

  1. Update-Module -Name Pester

Running Tests

From the root directory run

  1. Invoke-Pester

Installation

Installation and Setup