Geautomatiseerde taken bewaken

Voltooid

Nadat u uw taken hebt geautomatiseerd, is het belangrijk om ze te controleren om ervoor te zorgen dat ze goed werken. Op die manier kunt u de prestaties en beschikbaarheid van uw services maximaliseren en proactief problemen identificeren.

Runbooks bewaken

Uw runbooks moeten modulair zijn, met logica die eenvoudig opnieuw kan worden gebruikt en opnieuw kan worden gestart. Het bewaken van de voortgang in een runbook zorgt ervoor dat de logica van het runbook correct wordt uitgevoerd als er problemen optreden.

Een database, opslagaccount of gedeeld bestand kan worden gebruikt om de voortgang van een runbook te bewaken. Zorg ervoor dat uw runbook de laatste actie controleert die is uitgevoerd voordat u de volgende actie start. Op basis van de resultaten van de controle kan de logica specifieke taken in het runbook overslaan of voortzetten.

U kunt de uitvoering van runbooks bewaken in Azure Portal. Selecteer Taak in de sectie Procesautomatisering van de hoofdblade van uw Automation-account.

Screenshot of the job execution history page on Azure portal.

Zoals u in de bovenstaande afbeelding kunt zien, is het runbook gemarkeerd. Als u de details en status wilt onderzoeken, selecteert u de taak.

Zie Runbookproblemen oplossen voor meer informatie over het oplossen van runbooks

Waarschuwingen

U kunt ook waarschuwingen voor metrische gegevens maken om de uitvoering van uw runbooks te bewaken. Met waarschuwingen kunt u voorwaarden definiëren om te controleren en acties uit te voeren wanneer aan deze voorwaarden wordt voldaan.

Screenshot of the Create alert rule option for Azure Automation.

Wanneer u waarschuwingsregel maken selecteert, wordt de dia Een signaal selecteren aan de rechterkant van het scherm geopend. Vervolgens moet u een signaal selecteren dat het meest geschikt is voor uw scenario. Voor dit voorbeeld selecteert u Totaal aantal taken.

Screenshot of the select a signal page for an alert.

Selecteer statisch voor de eigenschap Drempelwaarde in de dia Signaallogicaconfigureren. Stel vervolgens de eigenschap Operator in op Groter dan en het aggregatietype op Totaal. Voer vervolgens in drempelwaarde een waarde van 10 in.

Screenshot of the Configure signal logic slide out for an Azure Automation alert.

U kunt ook een dimensie opgeven. U kunt bijvoorbeeld definiëren dat een waarschuwingsregel alleen wordt geactiveerd voor een specifiek runbook en de status. Als u geen dimensie opgeeft, wordt er geen filter toegepast.

Screenshot of how to add a custom dimension for an alert logic on Azure Automation.

Controleer vervolgens of u een actiegroep configureert. Een actiegroep is een verzameling acties die u voor meerdere waarschuwingen kunt gebruiken. Dit zijn e-mailmeldingen, runbooks, webhooks en vele andere.

Notitie

U kunt Azure Automation combineren met Azure Alerts-actiegroepen om een Automation-runbook te starten wanneer er een waarschuwing wordt gegenereerd.

Activiteitenlogboek

In Azure Automation worden runbooks uitgevoerd en worden gegevens verzameld in een activiteitenlogboek.

Screenshot of the activity log for an Azure Automation account.

In de bovenstaande afbeelding kunt u runbookgegevens ophalen, zoals de persoon of het account waarmee een runbook is gestart.

Als alternatief biedt het volgende PowerShell-voorbeeld de laatste gebruiker om het opgegeven runbook uit te voeren.

$rgName = 'MyResourceGroup'
$accountName = 'MyAutomationAccount'
$runbookName = 'MyRunbook'
$startTime = (Get-Date).AddDays(-1)

$params = @{
    ResourceGroupName = $rgName
    StartTime         = $startTime
}
$JobActivityLogs = (Get-AzLog @params).Where( { $_.Authorization.Action -eq 'Microsoft.Automation/automationAccounts/jobs/write' })

$JobInfo = @{}
foreach ($log in $JobActivityLogs) {
    # Get job resource
    $JobResource = Get-AzResource -ResourceId $log.ResourceId

    if ($null -eq $JobInfo[$log.SubmissionTimestamp] -and $JobResource.Properties.Runbook.Name -eq $runbookName) {
        # Get runbook
        $jobParams = @{
            ResourceGroupName     = $rgName
            AutomationAccountName = $accountName
            Id                    = $JobResource.Properties.JobId
        }
        $Runbook = Get-AzAutomationJob @jobParams | Where-Object RunbookName -EQ $runbookName

        # Add job information to hashtable
        $JobInfo.Add($log.SubmissionTimestamp, @($Runbook.RunbookName, $Log.Caller, $JobResource.Properties.jobId))
    }
}
$JobInfo.GetEnumerator() | Sort-Object Key -Descending | Select-Object -First 1

Log Analytics

Azure Automation kan de status van runbooktaak en taakstromen verzenden naar uw Log Analytics-werkruimte. Deze methode vereist geen koppeling tussen werkruimten en is onafhankelijk.

Met Azure Monitor-logboeken die zijn geïntegreerd met een Automation-account, kunt u het volgende doen:

  • De status van uw Automation-taken weergeven
  • Geavanceerde query's schrijven in uw taakwerkstroom
  • Een e-mail of waarschuwing activeren op basis van de status van uw runbooktaak
  • Gegevens uit meerdere Automation-taken correleren

Als u query's wilt uitvoeren, selecteert u Logboeken in de sectie Bewaking van de hoofdblade van uw Automation-account.

Azure Portal biedt een aantal querysjablonen, zodat u aan de slag kunt. Zoals we hieronder kunnen zien, hebben we een bestaande Kusto-querysjabloon gebruikt om alle voltooide taken in het Automation-account weer te geven.

Screenshot of the Log Analytics workspace runbook query showing a list all completed jobs in the automation account.

De mogelijkheid om diagnostische logboeken van Azure Automation door te sturen naar een Log Analytics-werkruimte is een belangrijke functie waarmee u de status van uw runbooks kunt bewaken.

Notitie

Voordat u Log Analytics gebruikt om gegevens van Automation-taken op te vragen, moet u diagnostische instellingen voor uw Automation-account configureren.

Elastische taken bewaken (preview)

Bij elastische taken worden taakuitvoeringen vastgelegd en worden eventuele fouten automatisch opnieuw geprobeerd. De functie voor automatisch opnieuw proberen biedt services toleranter voor tijdelijke fouten.

U kunt de uitvoering van elastische taken bewaken via Azure Portal, PowerShell en T-SQL.

Azure Portal

Als u de geschiedenis van de uitvoering van taken wilt weergeven, selecteert u Overzicht voor de hoofdblade van de elastische taakagent.

Screenshot of the Overview section for elastic jobs where you can monitor job execution.

PowerShell

De volgende codefragmenten krijgen details over taakuitvoering.

# get the latest 5 executions run
$jobAgent | Get-AzSqlElasticJobExecution -Count 5

# get the job step execution details
$jobExecution | Get-AzSqlElasticJobStepExecution

# get the job target execution details
$jobExecution | Get-AzSqlElasticJobTargetExecution -Count 2

T-SQL

In het volgende voorbeeld ziet u hoe u details van de uitvoeringsstatus voor alle taken kunt weergeven. Maak een taakagent en maak verbinding met de taakdatabase en voer vervolgens de volgende opdracht uit:

--View all execution status for all jobs
SELECT * 
FROM jobs.job_executions
ORDER BY start_time DESC;

--View all execution statuses for job named 'MyJob'
SELECT * FROM jobs.job_executions
WHERE job_name = 'MyJob'
ORDER BY start_time DESC;

-- View all active executions
SELECT * 
FROM jobs.job_executions
WHERE is_active = 1
ORDER BY start_time DESC;