NetApp Community Update
This site will enter Read Only mode on July 23 as we prepare to move to a new platform. You will still be able to view content, but posting and replying will be temporarily disabled.
We're excited to launch our new Community experience on July 30 and more information will follow soon.
Stay connected during the transition - Join our Discord community today.

Active IQ Unified Manager Discussions

monitoring Active IQ (9.13) itself

Shai_Viente
1,798 Views

Hello!

I want to monitor The Active IQ (9.13) itself, that if u suer can't access the application we get alert.

How can I do this?

And what are the services important in the application (ociea, ocie, mysqld, somthing else?)

 

 

1 ACCEPTED SOLUTION

mbeattie
1,761 Views

Hi Shai,

 

You can query the AIQUM service status using the REST API. Here's an example:

 

Param(
   [Parameter(Mandatory = $True, HelpMessage = "The AIQUM server Hostname, FQDN or IP Address")]
   [String]$Server,
   [Parameter(Mandatory = $True, HelpMessage = "The Credential to authenticate to AIQUM")]
   [System.Management.Automation.PSCredential]$Credential
)
#'------------------------------------------------------------------------------
Function Get-UMAuthorization{
   [Alias("Get-UMAuth")]
   [CmdletBinding()]
   Param(
      [Parameter(Mandatory = $True, HelpMessage = "The Credential to authenticate to AIQUM")]
      [ValidateNotNullOrEmpty()]
      [System.Management.Automation.PSCredential]$Credential
   )
   #'---------------------------------------------------------------------------
   #'Set the authentication header to connect to AIQUM.
   #'---------------------------------------------------------------------------
   $auth    = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($Credential.UserName + ':' + $Credential.GetNetworkCredential().Password))
   $headers = @{
      "Authorization" = "Basic $auth"
      "Accept"        = "application/json"
      "Content-Type"  = "application/json"
   }
   Return $headers;
}#'End Function Get-UMAuthorization
#'------------------------------------------------------------------------------
Function Get-UMSystemInfo{
   [CmdletBinding()]
   Param(
      [Parameter(Mandatory = $True, HelpMessage = "The AIQUM server Hostname, FQDN or IP Address")]
      [ValidateNotNullOrEmpty()]
      [String]$Server,
      [Parameter(Mandatory = $True, HelpMessage = "The Credential to authenticate to AIQUM")]
      [ValidateNotNullOrEmpty()]
      [System.Management.Automation.PSCredential]$Credential
   )
   #'---------------------------------------------------------------------------
   #'Set the authentication header to connect to AIQUM.
   #'---------------------------------------------------------------------------
   $headers = Get-UMAuthorization -Credential $Credential
   #'---------------------------------------------------------------------------
   #'Enumerate the system information.
   #'---------------------------------------------------------------------------
   [String]$uri = "https://$Server/api/management-server/system"
   Try{
      $response = Invoke-RestMethod -Uri $uri -Method GET -Headers $headers -ErrorAction Stop
      Write-Host "Enumerated system information on server ""$Server"" using URI ""$uri"""
   }Catch{
      Write-Warning -Message $("Failed enumerating system on Server ""$Server"" using URI ""$uri"". Error " + $_.Exception.Message + ". Status Code " + $_.Exception.Response.StatusCode.value__)
   }
   Return $response;
}#'End Function Get-UMSystemInfo.
#'------------------------------------------------------------------------------
#'Set the certificate policy and TLS version.
#'------------------------------------------------------------------------------
If(-Not("TrustAllCertsPolicy" -As [Type])){
Add-Type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
    public bool CheckValidationResult(
    ServicePoint srvPoint, X509Certificate certificate,
    WebRequest request, int certificateProblem) {
        return true;
    }
}
"@
}
[System.Net.ServicePointManager]::SecurityProtocol  = [System.Net.SecurityProtocolType]'Tls12'
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
#'------------------------------------------------------------------------------
#'Enumerate the AIQUM System Information.
#'------------------------------------------------------------------------------
[Int]$errorCount = 0
Try{
   $system = Get-UMSystemInfo -Server $Server -Credential $Credential -ErrorAction Stop
}Catch{
   Write-Warning -Message $("Failed Enumerating System Information for Server ""$Server"". Error " + $_.Exception.Message)
   Exit -1
}
If($Null -eq $system){
   Write-Warning -Message "Failed Enumerating System Information for Server ""$Server"""
   Exit -1
}
#'------------------------------------------------------------------------------
#'Check the Service Status.
#'------------------------------------------------------------------------------
Write-Host $("The Server ""$Server"" is running " + $system.Product + " " + $system.Version)
ForEach($service In $system.Services){
   If($service.Status -ne "running"){
      Write-Warning -Message $("The Service """ + $service.Name + """ is """ + $service.Status + """")
      [Int]$errorCount++
   }Else{
      Write-Host $("The Service """ + $service.Name + """ is """ + $service.Status + """")
   }
}
If($errorCount -ne 0){
   Write-Warning -Message "There are $errorCount Services that are unavailable on Server ""$Server"""
}Else{
   Write-Host "All Services are available on Server ""$Server"""
}
#'------------------------------------------------------------------------------

Usage:

PS C:\Scripts\PowerShell\Projects\AIQUM> .\GetSystemInfo.ps1 -Server aiqum.testlab.local -Credential $credentials
Enumerated system information on server "aiqum.testlab.local" using URI "https://aiqum.testlab.local/api/management-server/system"
The Server "aiqum.testlab.local" is running Active IQ Unified Manager 9.13P1
The Service "ocie" is "running"
The Service "ocie_au" is "running"
All Services are available on Server "aiqum.testlab.local"

 

Hope that helps

 

/Matt

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

View solution in original post

1 REPLY 1

mbeattie
1,762 Views

Hi Shai,

 

You can query the AIQUM service status using the REST API. Here's an example:

 

Param(
   [Parameter(Mandatory = $True, HelpMessage = "The AIQUM server Hostname, FQDN or IP Address")]
   [String]$Server,
   [Parameter(Mandatory = $True, HelpMessage = "The Credential to authenticate to AIQUM")]
   [System.Management.Automation.PSCredential]$Credential
)
#'------------------------------------------------------------------------------
Function Get-UMAuthorization{
   [Alias("Get-UMAuth")]
   [CmdletBinding()]
   Param(
      [Parameter(Mandatory = $True, HelpMessage = "The Credential to authenticate to AIQUM")]
      [ValidateNotNullOrEmpty()]
      [System.Management.Automation.PSCredential]$Credential
   )
   #'---------------------------------------------------------------------------
   #'Set the authentication header to connect to AIQUM.
   #'---------------------------------------------------------------------------
   $auth    = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($Credential.UserName + ':' + $Credential.GetNetworkCredential().Password))
   $headers = @{
      "Authorization" = "Basic $auth"
      "Accept"        = "application/json"
      "Content-Type"  = "application/json"
   }
   Return $headers;
}#'End Function Get-UMAuthorization
#'------------------------------------------------------------------------------
Function Get-UMSystemInfo{
   [CmdletBinding()]
   Param(
      [Parameter(Mandatory = $True, HelpMessage = "The AIQUM server Hostname, FQDN or IP Address")]
      [ValidateNotNullOrEmpty()]
      [String]$Server,
      [Parameter(Mandatory = $True, HelpMessage = "The Credential to authenticate to AIQUM")]
      [ValidateNotNullOrEmpty()]
      [System.Management.Automation.PSCredential]$Credential
   )
   #'---------------------------------------------------------------------------
   #'Set the authentication header to connect to AIQUM.
   #'---------------------------------------------------------------------------
   $headers = Get-UMAuthorization -Credential $Credential
   #'---------------------------------------------------------------------------
   #'Enumerate the system information.
   #'---------------------------------------------------------------------------
   [String]$uri = "https://$Server/api/management-server/system"
   Try{
      $response = Invoke-RestMethod -Uri $uri -Method GET -Headers $headers -ErrorAction Stop
      Write-Host "Enumerated system information on server ""$Server"" using URI ""$uri"""
   }Catch{
      Write-Warning -Message $("Failed enumerating system on Server ""$Server"" using URI ""$uri"". Error " + $_.Exception.Message + ". Status Code " + $_.Exception.Response.StatusCode.value__)
   }
   Return $response;
}#'End Function Get-UMSystemInfo.
#'------------------------------------------------------------------------------
#'Set the certificate policy and TLS version.
#'------------------------------------------------------------------------------
If(-Not("TrustAllCertsPolicy" -As [Type])){
Add-Type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
    public bool CheckValidationResult(
    ServicePoint srvPoint, X509Certificate certificate,
    WebRequest request, int certificateProblem) {
        return true;
    }
}
"@
}
[System.Net.ServicePointManager]::SecurityProtocol  = [System.Net.SecurityProtocolType]'Tls12'
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
#'------------------------------------------------------------------------------
#'Enumerate the AIQUM System Information.
#'------------------------------------------------------------------------------
[Int]$errorCount = 0
Try{
   $system = Get-UMSystemInfo -Server $Server -Credential $Credential -ErrorAction Stop
}Catch{
   Write-Warning -Message $("Failed Enumerating System Information for Server ""$Server"". Error " + $_.Exception.Message)
   Exit -1
}
If($Null -eq $system){
   Write-Warning -Message "Failed Enumerating System Information for Server ""$Server"""
   Exit -1
}
#'------------------------------------------------------------------------------
#'Check the Service Status.
#'------------------------------------------------------------------------------
Write-Host $("The Server ""$Server"" is running " + $system.Product + " " + $system.Version)
ForEach($service In $system.Services){
   If($service.Status -ne "running"){
      Write-Warning -Message $("The Service """ + $service.Name + """ is """ + $service.Status + """")
      [Int]$errorCount++
   }Else{
      Write-Host $("The Service """ + $service.Name + """ is """ + $service.Status + """")
   }
}
If($errorCount -ne 0){
   Write-Warning -Message "There are $errorCount Services that are unavailable on Server ""$Server"""
}Else{
   Write-Host "All Services are available on Server ""$Server"""
}
#'------------------------------------------------------------------------------

Usage:

PS C:\Scripts\PowerShell\Projects\AIQUM> .\GetSystemInfo.ps1 -Server aiqum.testlab.local -Credential $credentials
Enumerated system information on server "aiqum.testlab.local" using URI "https://aiqum.testlab.local/api/management-server/system"
The Server "aiqum.testlab.local" is running Active IQ Unified Manager 9.13P1
The Service "ocie" is "running"
The Service "ocie_au" is "running"
All Services are available on Server "aiqum.testlab.local"

 

Hope that helps

 

/Matt

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.
Public