Guest User

Untitled

a guest
Jun 3rd, 2018
1,234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. $smtp_sender = 'vcenter@domain.com'
  2. $smtp_recipients = 'support@domain.com'
  3. $smtp_server = 'smtp.domain.com'
  4. $smtp_user = ''
  5. $smtp_password = ''
  6. $smtp_port = '25'
  7. $vcenter = $global:defaultviservers.Name
  8. $alarms = @(
  9. @{
  10. alarm_definition = 'Datastore usage on disk'
  11. subject = 'Datastore Usage on Disk Alert'
  12. transitions = @(
  13. @{
  14. start_state = 'green'
  15. final_state = 'yellow'
  16. },
  17. @{
  18. start_state = 'yellow'
  19. final_state = 'red'
  20. }
  21. )
  22. },
  23. @{
  24. alarm_definition = 'Host CPU usage'
  25. subject = 'Host CPU Usage Alert'
  26. transitions = @(
  27. @{
  28. start_state = 'green'
  29. final_state = 'yellow'
  30. },
  31. @{
  32. start_state = 'yellow'
  33. final_state = 'red'
  34. }
  35. )
  36. },
  37. @{
  38. alarm_definition = 'Host connection and power state'
  39. subject = 'Host Connection and Power State Alert'
  40. transitions = @(
  41. @{
  42. start_state = 'green'
  43. final_state = 'yellow'
  44. },
  45. @{
  46. start_state = 'yellow'
  47. final_state = 'red'
  48. }
  49. )
  50. },@{
  51. alarm_definition = 'Host memory usage'
  52. subject = 'Host Memory Usage Alert'
  53. transitions = @(
  54. @{
  55. start_state = 'green'
  56. final_state = 'yellow'
  57. },
  58. @{
  59. start_state = 'yellow'
  60. final_state = 'red'
  61. }
  62. )
  63. }
  64. )
  65.  
  66. # Configure SMTP
  67. Get-AdvancedSetting -Entity $vcenter -Name mail.smtp.server | Set-AdvancedSetting -Value $smtp_server -Confirm:$false | Out-Null
  68. Get-AdvancedSetting -Entity $vcenter -Name mail.smtp.port | Set-AdvancedSetting -Value $smtp_port -Confirm:$false | Out-Null
  69. Get-AdvancedSetting -Entity $vcenter -Name mail.sender | Set-AdvancedSetting -Value $smtp_sender -Confirm:$false | Out-Null
  70. if ($smtp_user -and $smtp_password) {
  71. Get-AdvancedSetting -Entity $vcenter -Name mail.smtp.username | Set-AdvancedSetting -Entity $vcenter -Value $smtp_user -Confirm:$false | Out-Null
  72. Get-AdvancedSetting -Entity $vcenter -Name mail.smtp.password | Set-AdvancedSetting -Entity $vcenter -Value $smtp_password -Confirm:$false | Out-Null
  73. }
  74.  
  75. Get-AdvancedSetting -Entity $vcenter -Name mail.smtp.server, mail.smtp.port, mail.sender, mail.smtp.username, mail.smtp.password
  76.  
  77. # Configure alarm actions
  78. foreach ($a in $alarms) {
  79. # Remove existing alarm actions
  80. Get-AlarmAction -AlarmDefinition $a.alarm_definition | Remove-AlarmAction -Confirm:$false
  81.  
  82. # Add send email alarm action
  83. $action = New-AlarmAction -AlarmDefinition $a.alarm_definition -Email -To $smtp_recipients -Subject $a.subject
  84.  
  85. # Define transitions
  86. foreach ($trans in $a.transitions) {
  87. # Skip default transition
  88. if ($trans.start_state -eq 'yellow' -and $trans.final_state -eq 'red') {
  89. continue
  90. }
  91.  
  92. New-AlarmActionTrigger -AlarmAction $action -StartStatus $trans.start_state -EndStatus $trans.final_state | Out-Null
  93. }
  94.  
  95. Write-Host "$($a.alarm_definition) action triggers:"
  96. Get-AlarmActionTrigger -AlarmAction $action | Out-String
  97. }
Add Comment
Please, Sign In to add comment