Hello @Tom Burton ,
I am not a tableau SME and am not sure on which particular tableau service or which set of services would be required to be monitored in your case. I believe this is a better place to ask tableau related questions.
However, (you might already be aware but just letting you know that) tableau service manager manages lifecycle of many processes and status of those set of processes can be viewed by TSM CLI so if the requirement is to automatically monitor that status then to accomplish it from Azure end, I would leverage TSM CLI, Azure Automation Hybrid Runbook Worker and Azure Log Analytics.
For detailed information on the implementation, please find below steps.
- Create Log Analytics workspace in Azure Portal
- Install Log Analytics agent on your Azure VM
- Create Azure Automation Account in Azure Portal
- Deploy Windows Hybrid Runbook Worker
- Develop Azure Automation Runbook to run "tsm status" command which would ideally return one of four potential statuses. Make sure to send the Runbook Output to output stream
a. RUNNING: The node is running without error statuses for any service.
b. DEGRADED: A primary service - such as the repository - is in an error state.
c. ERROR: One or more services is in an error state.
d. STOPPED: The node is stopped. - Forward Runbook Job data to Azure Monitor Logs
- Create and configure alert rule to monitor Job output stream that matches DEGRADED and send email with the help of action group in such case. The kusto query in the alert rule would look something like shown below.
AzureDiagnostics
| where ResourceProvider == “MICROSOFT.AUTOMATION” and Category == “JobStreams”
On the other hand, if the requirement is to monitor all the required Windows services then to accomplish it from Azure end, I would leverage Azure Automation DSC and Azure Log Analytics.
For detailed information on the implementation, please find below steps.
- Create Log Analytics workspace in Azure Portal
- Install Log Analytics agent on your Azure VM
- Create Azure Automation Account in Azure Portal
- Develop a PowerShell script (i.e., configuration file) something like shown below and save it in your local machine. Replace below xxxxxxx, yyyyyyy, zzzzzzz with the appropriate service names.
Configuration ServiceSetTest
{
Import-DscResource -ModuleName PSDesiredStateConfiguration
Node localhost
{
ServiceSet ServiceSetExample
{
Name = @(“xxxxxxx”, “yyyyyyy”, “zzzzzzz”)
State = “Running”
}
}
}
- Onboard Azure Automation DSC i.e., onboard your Azure VM to Azure Automation DSC, compose or import and compile above configuration file, view compilation job, view node configuration.
- Forward DSC status data to Azure Monitor Logs
- Create and configure alert rule to monitor DSC node status not equal to COMPLIANT and send email with the help of action group in such case. The kusto query in the alert rule would look something like shown below.
AzureDiagnostics
| where Category == ‘DscNodeStatus’
| where OperationName contains ‘DSCNodeStatusData’
| where ResultType != ‘Compliant’