Re: NRPE Status Appears in the "Status Information" Field
Posted: Fri Nov 22, 2013 11:38 am
Interesting. Could you post the current version of the script?
Support for Nagios products and services
https://support.nagios.com/forum/
Code: Select all
$NagiosStatus = "0"
$NagiosDescription = ""
$date = get-date
$sqlServer = "*****"
$dbUser = "****"
$dbPassword = "*****"
$DB = "msdb"
$Qry = "select `secondary_server`,` primary_server`, `last_copied_date`, `last_restored_latency` from log_shipping_monitor_secondary"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Data Source = $sqlServer;Initial Catalog=$DB;uid=$dbUser;pwd=$dbPassword"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $Qry
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
Clear
$Results = $DataSet.Tables[0]
$primary_server = $Results | select primary_server
$secondary_server = $Results | select secondary_server
$last_copied_date = $Results | select last_copied_date | % {$_.last_copied_date }
$last_restored_latency = $Results | select last_restored_latency
$last_copied_date = $last_copied_date.ToString()
function runStatus {
if ($date.AddMinutes(-16) -gt $last_copied_date) {
if ($NagiosDescription -ne "") {
$NagiosDescription = $NagiosDescription + ", "
}
$NagiosDescription = $NagiosDescription += "Log Shipping Stale. Last Copy Was: $last_copied_date"
# Set the status to failed.
$NagiosStatus = '2'
}
elseif ($date.AddMinutes(-15) -gt $last_copied_date) {
if ($NagiosDescription -ne "") {
$NagiosDescription = $NagiosDescription + ", "
}
$NagiosDescription = $NagiosDescription += "Log Shipping Stale. Last Copy Was: $last_copied_date"
# Set the status to failed.
$NagiosStatus = '1'
}
else {
$NagiosDescription += "Log Shipping: Last Copy Was: $last_copied_date"
$NagiosStatus = '0'
}
$NagiosDescription = $NagiosDescription.ToString()
$NagiosStatus = $NagiosStatus.ToString()
if ($NagiosStatus -eq '2') {
Write-Output "CRITICAL: " $NagiosDescription
}
elseif ($NagiosStatus -eq '1') {
Write-Output "WARNING: " $NagiosDescription
}
else {
Write-Output "OK: Log Shipping: Last Copy Was:" $last_copied_date
}
exit $NagiosStatus
}
runStatus
Code: Select all
[int]$NagiosStatus = 0
[string]$NagiosDescription = ""
$date = get-date
$sqlServer = "*****"
$dbUser = "****"
$dbPassword = "*****"
$DB = "msdb"
$Qry = "select `secondary_server`,` primary_server`, `last_copied_date`, `last_restored_latency` from log_shipping_monitor_secondary"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Data Source = $sqlServer;Initial Catalog=$DB;uid=$dbUser;pwd=$dbPassword"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $Qry
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$Results = $DataSet.Tables[0]
$primary_server = $Results | select primary_server
$secondary_server = $Results | select secondary_server
$last_copied_date = $Results | select last_copied_date | % {$_.last_copied_date }
$last_restored_latency = $Results | select last_restored_latency
$last_copied_date = $last_copied_date.ToString()
if ($date.AddMinutes(-16) -gt $last_copied_date) {
if ($NagiosDescription -ne "") {
$NagiosDescription += ", "
} # end if nagDesc
$NagiosDescription += "CRITICAL: Log Shipping Stale. Last Copy Was: $last_copied_date"
# Set the status to failed.
$NagiosStatus = 2
} # end if date compare
elseif ($date.AddMinutes(-15) -gt $last_copied_date) {
if ($NagiosDescription -ne "") {
$NagiosDescription += ", "
} #end if nagDesc
$NagiosDescription += "WARNING: Log Shipping Stale. Last Copy Was: $last_copied_date"
# Set the status to failed.
$NagiosStatus = 1
} # end elseif date compare
else {
if ($NagiosDescription -ne "") {
$NagiosDescription += ", "
} #end if nagDesc
$NagiosDescription += "OK: Log Shipping: Last Copy Was: $last_copied_date"
$NagiosStatus = 0
} # end else no compare
Write-Output $NagiosDescription
exit $NagiosStatusCode: Select all
$DataSet | get-members
$DataSet.getType()
write-host $DataSet