Tìm kiếm trang web

Giám sát các dịch vụ SharePoint (chẳng hạn như dịch vụ hẹn giờ) - Gửi email thông báo khi chúng ngừng hoạt động!


Tiếp nối bài đăng của tôi: Giám sát Nhóm ứng dụng SharePoint bằng Tập lệnh PowerShell. Nếu một số Dịch vụ nhất định trên máy chủ SharePoint không hoạt động, điều đó có thể gây ra tình trạng ngừng hoạt động hoặc gián đoạn dịch vụ cho môi trường SharePoint của bạn! Mặc dù các giải pháp giám sát như SCOM có thể giám sát các dịch vụ nhưng chúng không thể tự động khởi động dịch vụ - khi bị dừng. Vì vậy, hãy giải quyết vấn đề này với sự trợ giúp của PowerShell! Đây là tập lệnh PowerShell tiện lợi của tôi để khởi động các dịch vụ cần thiết khi bị dừng và gửi email cảnh báo.

Tập lệnh này không chỉ quét tính khả dụng của dịch vụ mà còn:

  • Phát hiện trạng thái dịch vụ nếu nó không ở trạng thái bắt đầu
  • Tự động khởi động dịch vụ nếu nó ở trạng thái dừng
  • Gửi email cảnh báo tới nhóm Quản trị viên SharePoint (hoặc bất kỳ ai đã định cấu hình!)

Tập lệnh PowerShell để giám sát dịch vụ và gửi thông báo qua email:


Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue

#Configuration variables
$EmailFrom = "ServiceMonitor@crescent.com"
$EmailTo =  "SPAdmin@crescent.com" # Use commas for multiple addresses
$EmailSubject = "Service(s) went down in SharePoint Server"

#Services to Monitor
$ServicesToMonitor =  "IISADMIN", "SPTimerV4", "SPAdminV4", "SPTraceV4" , "SPUserCodeV4" , "SPWriterV4" , "OSearch14" , "W3SVC"

#Get Outgoing Email Server of the SharePoint Farm
$SMTP= (Get-SPWebApplication -IncludeCentralAdministration | Where { $_.IsAdministrationWebApplication } ) | %{$_.outboundmailserviceinstance.server.address}

#Check the status of each service
Foreach($ServiceName in $ServicesToMonitor)
{
 #Get the service
 $Service = Get-Service -Name $ServiceName
 
 #Check the Service status
 if ($Service.Status -ne "Running")
 {
  Write-Host $Service.DisplayName Found Not running!
  
  Try
  {
     #Set the Error Action
     $ErrorActionPreference = "Stop"
   #Try to start the service
   Start-Service $ServiceName
  }
  catch
  {
    Write-Host "Attempt to start service failed. Find the Error Message below:" -ForegroundColor Red
    Write-Host $_.Exception.Message -ForegroundColor Red
  }
  finally
  {
    #Reset the Error Action to Default
    $ErrorActionPreference = "Continue"
  }

 #Send out the Alert E-mail 
 $EmailBody = "Hi SharePoint Team, `n `n The Service: $($Service.DisplayName) was found in stopped state!. `n`nWe tried Re-starting it... Current State of the Service: $($Service.Status). `n`nPlease take necessary actions if its not started! `n `nThanks, `nSharePoint Monitoring Script."
  Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSubject -Body $EmailBody -SmtpServer $SMTP -usessl
 }
}

Làm cách nào để giám sát các dịch vụ trên từng máy chủ của SharePoint Farm?

Chỉ cần thêm tham số “-ComputerName $Server.Address” vào các lệnh ghép ngắn “Get-Service” và “Start-Service”.

Vì vậy, mã sẽ như thế này:


#Get all SharePoint Servers
$ServersColl = Get-SPServer | where { $_.role -ne "Invalid"}

Foreach($Server in $ServersColl)
{
 #Wrap the above code
}

Lên lịch tập lệnh PowerShell này trong Bộ lập lịch tác vụ Windows trong bất kỳ máy chủ Ứng dụng nào (hoặc bất kỳ máy chủ nào khác sẽ làm được!) để quét định kỳ trạng thái Nhóm ứng dụng, Nói một lần trong 5 phút! Khoảng thời gian chạy có thể được điều chỉnh dựa trên mức độ ưu tiên ứng dụng của bạn. Đây là một bài đăng khác về Lập lịch tập lệnh PowerShell bằng Bộ lập lịch tác vụ Windows: Tạo tác vụ theo lịch trình cho Tập lệnh PowerShell bằng Bộ lập lịch tác vụ Windows

Bài viết liên quan