Geautomatiseerde taken bewaken
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.
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.
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.
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.
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.
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.
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.
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.
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;