Icinga / icinga-powershell-hyperv

A collection of Hyper-V plugins for the Icinga Powershell Framework
GNU General Public License v2.0
5 stars 0 forks source link

Some HyperV checks always return OK to Icinga, even if the check is not OK, if localy executed. Also perfdata is missing. #48

Closed K0nne closed 2 years ago

K0nne commented 2 years ago

Hello,

the following HyperV checks are returning just "[OK] check name" to icinga. On the console the checks show a different output.
Also the perfdata is missing in icinga.

Its somwhow similar to https://github.com/Icinga/icinga-powershell-plugins/issues/239.

I am using:

Framework 1.6.1 HyperV PR #47

The problem affects the following checks:

Invoke-IcingaCheckHyperVSnapshot

console input: Invoke-IcingaCheckHyperVSnapshot -avoidemptycheck -verbosity 2

console output:

[OK] VM Snapshots: 23 Ok
\_ [OK] name-005
   \_ [OK] name-005
      \_ [OK] No snapshots created: 0
\_ [OK] name-014
   \_ [OK] name-014
      \_ [OK] No snapshots created: 0
\_ [OK] name-018
   \_ [OK] name-018
      \_ [OK] No snapshots created: 0
\_ [OK] name1
   \_ [OK] name1
      \_ [OK] No snapshots created: 0
\_ [OK] name2
   \_ [OK] Vor 16.04.2021 15:23:47
      \_ [OK] Snapshot Description: settings for the virtual machine.
      \_ [OK] Snapshot Name: Vor Patchday April
      \_ [OK] Snapshot Size: 60.03KiB
   \_ [OK] Vor 19.04.2021 11:00:53
      \_ [OK] Snapshot Description: settings for the virtual machine.
      \_ [OK] Snapshot Name: Vor Update 1
      \_ [OK] Snapshot Size: 60.03KiB
   \_ [OK] Vor 19.04.2021 11:52:23
      \_ [OK] Snapshot Description: settings for the virtual machine.
      \_ [OK] Snapshot Name: Vor Update 2
      \_ [OK] Snapshot Size: 60.03KiB
   \_ [OK] Vor 19.04.2021 13:27:26
      \_ [OK] Snapshot Description: settings for the virtual machine.
      \_ [OK] Snapshot Name: Vor Update 3
      \_ [OK] Snapshot Size: 60.03KiB
   \_ [OK] name2 C: Count: 4c
   \_ [OK] name2 C: Snapshot count prediction: 699153c
   \_ [OK] name2 C: Total Snapshot Size: 240.13KiB
   \_ [OK] name2 C: Total Snapshot Size: 240.13KiB
   \_ [OK] name2: Latest Snapshot Creation Delta: 198.92d
   \_ [OK] name2: Latest Snapshot Description: settings for the virtual machine.
   \_ [OK] name2: Latest Snapshot Name: Vor Update 2
\_ [OK] name3
   \_ [OK] name3
      \_ [OK] No snapshots created: 0
\_ [OK] name4
   \_ [OK] name4
      \_ [OK] No snapshots created: 0
\_ [OK] name5
   \_ [OK] name5
      \_ [OK] No snapshots created: 0
\_ [OK] name6
   \_ [OK] name6
      \_ [OK] No snapshots created: 0
\_ [OK] name7
   \_ [OK] name7
      \_ [OK] No snapshots created: 0
\_ [OK] name8
   \_ [OK] name8
      \_ [OK] No snapshots created: 0
\_ [OK] name9
   \_ [OK] name9
      \_ [OK] No snapshots created: 0
\_ [OK] name10
   \_ [OK] name10
      \_ [OK] No snapshots created: 0
\_ [OK] name11
   \_ [OK] name11
      \_ [OK] No snapshots created: 0
\_ [OK] name12
   \_ [OK] name12 14.01.2021 11:22:27
      \_ [OK] Snapshot Description: settings for the virtual machine.
      \_ [OK] Snapshot Name: name12 - (01/14/2021 11:22:11)
      \_ [OK] Snapshot Size: 60.03KiB
   \_ [OK] name12 C: Count: 1c
   \_ [OK] name12 C: Snapshot count prediction: 699153c
   \_ [OK] name12 C: Total Snapshot Size: 60.03KiB
   \_ [OK] name12 C: Total Snapshot Size: 60.03KiB
   \_ [OK] name12: Latest Snapshot Creation Delta: 293.9d
   \_ [OK] name12: Latest Snapshot Description: settings for the virtual machine.
   \_ [OK] name12: Latest Snapshot Name: name12 - (01/14/2021 11:22:11)
\_ [OK] name13
   \_ [OK] name13
      \_ [OK] No snapshots created: 0
\_ [OK] name14
   \_ [OK] name14
      \_ [OK] No snapshots created: 0
\_ [OK] name15
   \_ [OK] name15
      \_ [OK] No snapshots created: 0
\_ [OK] name16
   \_ [OK] name16
      \_ [OK] No snapshots created: 0
\_ [OK] name17
   \_ [OK] name17
      \_ [OK] No snapshots created: 0
\_ [OK] name18
   \_ [OK] name18
      \_ [OK] No snapshots created: 0
\_ [OK] name19
   \_ [OK] name19
      \_ [OK] No snapshots created: 0
\_ [OK] name20
   \_ [OK] name20
      \_ [OK] No snapshots created: 0
| 'name2_c_snapshot_count_prediction'=699153c;; 'name2_c_total_snapshot_size'=245896B;;;0;102355700000 'name2_latest_snapshot_creation_delta'=17186780s;; 'name2_c_count'=4c;; 'name12_c_count'=1c;; 'name12_latest_snapshot_creation_delta'=25392980s;; 'name12_c_total_snapshot_size'=61474B;;;0;102355700000 'name12_c_snapshot_count_prediction'=699153c;;
0

Check Config:

apply Service "Hyper-V Snapshots" {
  check_command         = "Invoke-IcingaCheckHyperVSnapshot"
  check_interval        = 5m
  command_endpoint      = host.name

  vars.IcingaCheckHyperVSnapshot_Object_Verbosity       = "2"
  vars.IcingaCheckHyperVSnapshot_Switchparameter_AvoidEmptyCheck = true

  enable_notifications = false

  assign where "hyperv-agent" in host.templates && host.vars.agent == "icinga2"
}

IcingaWeb2: 04-11-_2021_09-30-36

Invoke-IcingaCheckHyperVVirtualSwitches

console input: Invoke-IcingaCheckHyperVVirtualSwitches -verbosity 2 -avoidemptycheck

console output:

[OK] Virtual Switches: 1 Ok
\_ [OK] name1
   \_ [OK] name1 HealthState: OK
   \_ [OK] name1 Status: OK
| 'name1_healthstate'=5;;5
0

Check Config:

apply Service "Hyper-V Switches" {
  check_command         = "Invoke-IcingaCheckHyperVVirtualSwitches"
  check_interval        = 5m
  command_endpoint      = host.name

  vars.IcingaCheckHyperVVirtualSwitches_Object_Verbosity        = "2"
  vars.IcingaCheckHyperVVirtualSwitches_Switchparameter_AvoidEmptyCheck = true

  enable_notifications = false

  assign where "hyperv-agent" in host.templates && host.vars.agent == "icinga2"
}

IcingaWeb2: 04-11-_2021_09-42-59

Invoke-IcingaCheckHyperVVMHealth

console input: Invoke-IcingaCheckHyperVVMHealth -verbosity 2

console output: This check is in warning-state on the console, but OK in icinga.

[WARNING] Virtual Computers: 3 Warning 21 Ok [WARNING] TEST-MEMDUMP-005, TEST-MEMDUMP-014, TEST-MEMDUMP-018
\_ [OK] Active VMs: 22
\_ [WARNING] TEST-MEMDUMP-005
   \_ [OK] TEST-MEMDUMP-005 HealthState: OK
   \_ [WARNING] TEST-MEMDUMP-005 Heartbeat: No Contact is matching threshold No Contact
   \_ [OK] TEST-MEMDUMP-005 State: Enabled
\_ [WARNING] TEST-MEMDUMP-014
   \_ [OK] TEST-MEMDUMP-014 HealthState: OK
   \_ [WARNING] TEST-MEMDUMP-014 Heartbeat: No Contact is matching threshold No Contact
   \_ [OK] TEST-MEMDUMP-014 State: Enabled
\_ [WARNING] TEST-MEMDUMP-018
   \_ [OK] TEST-MEMDUMP-018 HealthState: OK
   \_ [WARNING] TEST-MEMDUMP-018 Heartbeat: No Contact is matching threshold No Contact
   \_ [OK] TEST-MEMDUMP-018 State: Enabled
\_ [OK] name1
   \_ [OK] name1 HealthState: OK
   \_ [OK] name1 State: Disabled
\_ [OK] name2
   \_ [OK] name2 HealthState: OK
   \_ [OK] name2 Heartbeat: OK
   \_ [OK] name2 State: Enabled
\_ [OK] name3
   \_ [OK] name3 HealthState: OK
   \_ [OK] name3 Heartbeat: OK
   \_ [OK] name3 State: Enabled
\_ [OK] name4
   \_ [OK] name4 HealthState: OK
   \_ [OK] name4 Heartbeat: OK
   \_ [OK] name4 State: Enabled
\_ [OK] name5
   \_ [OK] name5 HealthState: OK
   \_ [OK] name5 Heartbeat: OK
   \_ [OK] name5 State: Enabled
\_ [OK] name6
   \_ [OK] name6 HealthState: OK
   \_ [OK] name6 Heartbeat: OK
   \_ [OK] name6 State: Enabled
\_ [OK] name7
   \_ [OK] name7 HealthState: OK
   \_ [OK] name7 Heartbeat: OK
   \_ [OK] name7 State: Enabled
\_ [OK] name8
   \_ [OK] name8 HealthState: OK
   \_ [OK] name8 Heartbeat: OK
   \_ [OK] name8 State: Enabled
\_ [OK] name9
   \_ [OK] name9 HealthState: OK
   \_ [OK] name9 Heartbeat: OK
   \_ [OK] name9 State: Enabled
\_ [OK] name10
   \_ [OK] name10 HealthState: OK
   \_ [OK] name10 Heartbeat: OK
   \_ [OK] name10 State: Enabled
\_ [OK] name11
   \_ [OK] name11 HealthState: OK
   \_ [OK] name11 Heartbeat: OK
   \_ [OK] name11 State: Enabled
\_ [OK] name12
   \_ [OK] name12 HealthState: OK
   \_ [OK] name12 Heartbeat: OK
   \_ [OK] name12 State: Enabled
\_ [OK] name13
   \_ [OK] name13 HealthState: OK
   \_ [OK] name13 Heartbeat: OK
   \_ [OK] name13 State: Enabled
\_ [OK] name14
   \_ [OK] name14 HealthState: OK
   \_ [OK] name14 Heartbeat: OK
   \_ [OK] name14 State: Enabled
\_ [OK] name15
   \_ [OK] name15 HealthState: OK
   \_ [OK] name15 Heartbeat: OK
   \_ [OK] name15 State: Enabled
\_ [OK] name16
   \_ [OK] name16 HealthState: OK
   \_ [OK] name16 Heartbeat: OK
   \_ [OK] name16 State: Enabled
\_ [OK] name17
   \_ [OK] name17 HealthState: OK
   \_ [OK] name17 Heartbeat: OK
   \_ [OK] name17 State: Enabled
\_ [OK] name18
   \_ [OK] name18 HealthState: OK
   \_ [OK] name18 Heartbeat: OK
   \_ [OK] name18 State: Enabled
\_ [OK] name19
   \_ [OK] name19 HealthState: OK
   \_ [OK] name19 Heartbeat: OK
   \_ [OK] name19 State: Enabled
\_ [OK] name20
   \_ [OK] name20 HealthState: OK
   \_ [OK] name20 Heartbeat: OK
   \_ [OK] name20 State: Enabled
| 'name2_state'=2;; 'name2_heartbeat'=2;13;6 'name2_healthstate'=5;5; 'testmemdump005_heartbeat'=12;13;6 'testmemdump005_state'=2;; 'testmemdump005_healthstate'=5;5;'name5_heartbeat'=2;13;6 'name5_state'=2;; 'name5_healthstate'=5;5; 'name4_heartbeat'=2;13;6 'name4_state'=2;; 'name4_healthstate'=5;5; 'name6_healthstate'=5;5; 'name6_state'=2;; 'name6_heartbeat'=2;13;6 'name13_heartbeat'=2;13;6'name13_state'=2;; 'name13_healthstate'=5;5; 'name10_heartbeat'=2;13;6 'name10_healthstate'=5;5;'name10_state'=2;; 'name14_state'=2;; 'name14_heartbeat'=2;13;6 'name14_healthstate'=5;5;'name18_state'=2;; 'name18_healthstate'=5;5; 'name18_heartbeat'=2;13;6 'name15_healthstate'=5;5; 'name15_heartbeat'=2;13;6 'name15_state'=2;; 'name1_state'=3;;'name1_healthstate'=5;5; 'runningvms'=22;; 'stoppedvms'=1;; 'totalvms'=23;;'name12_healthstate'=5;5; 'name12_state'=2;; 'name12_heartbeat'=2;13;6 'name11_healthstate'=5;5; 'name11_heartbeat'=2;13;6 'name11_state'=2;; 'name9_healthstate'=5;5; 'name9_state'=2;; 'name9_heartbeat'=2;13;6 'testmemdump014_healthstate'=5;5; 'testmemdump014_state'=2;; 'testmemdump014_heartbeat'=12;13;6 'name19_state'=2;; 'name19_heartbeat'=2;13;6'name19_healthstate'=5;5; 'name7_healthstate'=5;5; 'name7_state'=2;; 'name7_heartbeat'=2;13;6'name16_state'=2;; 'name16_healthstate'=5;5; 'name16_heartbeat'=2;13;6 'testmemdump018_healthstate'=5;5;'testmemdump018_state'=2;; 'testmemdump018_heartbeat'=12;13;6 'name8_state'=2;; 'name8_heartbeat'=2;13;6 'name8_healthstate'=5;5; 'name17_healthstate'=5;5; 'name17_state'=2;; 'name17_heartbeat'=2;13;6'name20_healthstate'=5;5; 'name20_state'=2;; 'name20_heartbeat'=2;13;6 'name3_heartbeat'=2;13;6 'name3_healthstate'=5;5; 'name3_state'=2;;
1

Check Config:

apply Service "Hyper-V Vm Health" {
  check_command         = "Invoke-IcingaCheckHyperVVMHealth"
  check_interval        = 5m
  command_endpoint      = host.name

  vars.IcingaCheckHyperVVMHealth_Object_Verbosity       = "2"

  enable_notifications = false

  assign where "hyperv-agent" in host.templates && host.vars.agent == "icinga2"
}

IcingaWeb2: The check should be in warning state. 04-11-_2021_09-56-39

K0nne commented 2 years ago

Sorry for this huge wall of text ^^

K0nne commented 2 years ago

Its a rights problem. If I run the checks in an unelevated powershell console, I get the results as shown in icingaweb2:

icinga> Invoke-IcingaCheckHyperVVirtualSwitches  -verbosity 2 -avoidemptycheck
[OK] Virtual Switches
|
0
icinga> Invoke-IcingaCheckHyperVSnapshot -avoidemptycheck -verbosity 2
[OK] VM Snapshots
|
0
icinga> Invoke-IcingaCheckHyperVVMHealth  -verbosity 2
[OK] Virtual Computers: 1 Ok
\_ [OK] Active VMs: 0
|
0
adronkin commented 3 months ago

Hi, @K0nne! Did you manage this issue? I have the same problem

K0nne commented 3 months ago

It was a rights problem. We've settled with check execution in an elevated context.