Monitoring of Tabeau Services on Azure VM

Tom Burton 1 Reputation point
2020-07-26T19:13:38.05+00:00

Hi,

Want to be able to capture when a Tableau service fails, which still leads to a login prompt being available, have had it where the service has been degraded but still able to provided a login prompt.

I have seen some queries that have been used for other windows services and was wondering if anyone has done this for Tableau, there are a few different Windows Services for Tableau so which one or ones would be the required to be monitored.

Or if a custom Insights or other.

Many thanks

Azure Monitor
Azure Monitor
An Azure service that is used to collect, analyze, and act on telemetry data from Azure and on-premises environments.
3,036 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. tbgangav-MSFT 10,421 Reputation points
    2020-07-27T12:35:28.4+00:00

    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.

    1. Create Log Analytics workspace in Azure Portal
    2. Install Log Analytics agent on your Azure VM
    3. Create Azure Automation Account in Azure Portal
    4. Deploy Windows Hybrid Runbook Worker
    5. 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.
    6. Forward Runbook Job data to Azure Monitor Logs
    7. 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.

    1. Create Log Analytics workspace in Azure Portal
    2. Install Log Analytics agent on your Azure VM
    3. Create Azure Automation Account in Azure Portal
    4. 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”
    }
    }
    }

    1. 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.
    2. Forward DSC status data to Azure Monitor Logs
    3. 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’

    0 comments No comments