1 2 3 Previous Next 36 Replies Latest reply on Nov 16, 2015 6:36 AM by Toby Erkson Go to original post Branched to a new discussion.
      • 30. Re: Introducing TabMon, a Cluster Monitor for Tableau Server
        Jambeswar Mahapatra

        Hi Mat,

         

        In  Tabmon Config file under -- TabMon/Config directory   i changed the following line

        <OutputMode value="DB"/>

        To

        <OutputMode value="CSV"/> 


        It is a simple change as mentioned in the user guide then  do the following ---

         

        Stop and restart the TabMon Service and It will instantly generate CSV file under  TabMon \ Results folder.

        You can then create a new data source  in Tableau Desktop by point to this text file  ...and replace the existing DB connection in the sample Workbook.

         

        Thanks

        Jambes

        • 31. Re: Introducing TabMon, a Cluster Monitor for Tableau Server
          Daniel Rahm

          Hello Mat,

           

          I created a version of the workbook with the CSV. Just open it up in a version of Tableau Desktop 9.x or newer and replace the data source with the csv you created using TabMon.

           

          It'll also prompt for readonly credentials.

           

          If there are any questions let me know.

           

          -Dan

          • 32. Re: Introducing TabMon, a Cluster Monitor for Tableau Server
            Daniel Rahm

            Hello,

             

            Just to clarify, is it not possible to run the TabMon service remotely?

             

            We natively support multiple clusters if TabMon can be run remotely. The architecture can be seen in the following image:

            TabMon Option 3.PNG

             

            If this is not a suitable solution, option 2 will work. In order to do this I suggest setting up postgres manually on a host that is accessible to all of the Tableau Server clusters. Instructions for the manual installation can be found in the "MANUALLY INSTALLING & CONFIGURING POSTGRES" section of this guide: TabMon/UserGuide.pdf at master · tableau/TabMon · GitHub

             

            Once Postgres is setup and configured, you will have to install TabMon (service only) on a host within each cluster. After TabMon is installed on each host you will need to edit the TabMon config files to look something like this.

             

            <?xml version="1.0"?>

            <!-- TabMon user settings: set these as required -->

            <TabMonConfig xmlns="TabMon">

              <!-- Output mode.  "DB" for database, "CSV" for flat-file export -->

              <OutputMode value="db"/>

              <!-- Polling rate, in seconds -->

              <PollInterval value="30"/>

              <!-- Target cluster & host configuration -->

              <Clusters>

                <Cluster name="Cluster 1 Name">

                  <Host name="PRIMARY HOSTNAME"/>

                  <Host name="WORKER1 HOSTNAME"/>

                  <Host name="WORKER2 HOSTNAME"/>

                </Cluster>

              </Clusters>

              <!-- Results output database Configuration-->

              <Database name="TabMon" type="Postgres">

                <Server host="POSTGRES HOSTNAME" port="5432"/>

                <User login="tabmon" password="password"/>

                <Table name="ClusterSamples"/>

              </Database>

            </TabMonConfig>

             

             

            After each configuration is changed and TabMon is started, TabMon will automatically write to the remote database.

             

             

            As for the performance impact, TabMon is extremely lightweight. Running the service with a remote database should not affect the environment at all.

             

            Let me know if there are any questions.

             

            -Dan

            • 33. Re: Introducing TabMon, a Cluster Monitor for Tableau Server
              Tai Kim

              Hi Dan,

               

              What you described sounds similar to Option 2 I depicted. I've updated the design based on what I've read so I can be on the same page. Essentially, the TabMon service needs to be installed on all Tableau environments include the server where the Postgres DB reside? I don't fully understand why the TabMon service is needed here.

               

              Yes, TabMon service can be run remotely. The issue is granting the service account local Admin access to the Tableau servers. We try to abide by least privileges if possible.  In the illustration below, since the TabMon service is running on the Tableau server, can it run as Local System to collect the perf mon counters without having to use an elevated account?

               

              Thanks!

               

              TabMonOptionUpdate.png

               

               

              <?xml version="1.0"?>
              <!-- Dev Tableau Server: Dev TabMon config -->
              <TabMonConfig xmlns="TabMon">
                <OutputMode value="db"/>
                <PollInterval value="30"/>
                <Clusters>
                  <Cluster name="DevCluster">
                    <Host name="DEVSERVER"/>
                  </Cluster>
                </Clusters>
                <Database name="TabMon" type="Postgres">
                  <Server host="POSTGRES_SERVER" port="5432"/>
                  <User login="tabmon" password="password"/>
                  <Table name="ClusterSamples"/>
                </Database>
              </TabMonConfig>
               
              <?xml version="1.0"?>
              <!-- Test Tableau Server: Test TabMon config -->
              <TabMonConfig xmlns="TabMon">
                <OutputMode value="db"/>
                <PollInterval value="30"/>
                <Clusters>
                  <Cluster name="TestCluster">
                    <Host name="TESTSERVER"/>
                  </Cluster>
                </Clusters>
                <Database name="TabMon" type="Postgres">
                  <Server host="POSTGRES_SERVER" port="5432"/>
                  <User login="tabmon" password="password"/>
                  <Table name="ClusterSamples"/>
                </Database>
              </TabMonConfig>
               
              <?xml version="1.0"?>
              <!-- Prod Tableau Server: Prod TabMon config -->
              <TabMonConfig xmlns="TabMon">
                <OutputMode value="db"/>
                <PollInterval value="30"/>
                <Clusters>
                  <Cluster name="ProdCluster">
                    <Host name="ProdSERVER"/>
                  </Cluster>
                </Clusters>
                <Database name="TabMon" type="Postgres">
                  <Server host="POSTGRES_SERVER" port="5432"/>
                  <User login="tabmon" password="password"/>
                  <Table name="ClusterSamples"/>
                </Database>
              </TabMonConfig>
              • 34. Re: Introducing TabMon, a Cluster Monitor for Tableau Server
                Daniel Rahm

                Hello Tai,

                 

                In this case the TabMon service will only need to be installed on the Tableau Server machines. There is no need to install the service on the Postgres DB host.

                 

                As far as permissions go, the service account does not need to be a full admin. The account only needs to be a member of the "Performance Monitor Users" and "Performance Log Users" domain group on every server you wish to remotely monitor. One possible configuration is to create an account on each of the clusters that has access to the "Performance Monitor Users" and "Performance Log Users" groups, this would allow TabMon to use the native clustering without allowing a full admin access to every machine.

                 

                Based on the configuration above, the local system account should work just fine.

                 

                I do spot one issue with the configuration though. From the configurations it looks like every TabMon service is writing to the same "ClusterSamples" table. I highly recommend writing to 3 separate tables with this architecture this means having a "DevSamples", "TestSamples", and "ProdSamples" table to write into.

                 

                Here is my suggested configurations:

                 

                <?xml version="1.0"?>

                <!-- Dev Tableau Server: Dev TabMon config -->

                <TabMonConfig xmlns="TabMon">

                  <OutputMode value="db"/>

                  <PollInterval value="30"/>

                  <Clusters>

                    <Cluster name="DevCluster">

                      <Host name="DEVSERVER"/>

                    </Cluster>

                  </Clusters>

                  <Database name="TabMon" type="Postgres">

                    <Server host="POSTGRES_SERVER" port="5432"/>

                    <User login="tabmon" password="password"/>

                    <Table name="DevSamples"/>

                  </Database>

                </TabMonConfig>

                 

                <?xml version="1.0"?>

                <!-- Test Tableau Server: Test TabMon config -->

                <TabMonConfig xmlns="TabMon">

                  <OutputMode value="db"/>

                  <PollInterval value="30"/>

                  <Clusters>

                    <Cluster name="TestCluster">

                      <Host name="TESTSERVER"/>

                    </Cluster>

                  </Clusters>

                  <Database name="TabMon" type="Postgres">

                    <Server host="POSTGRES_SERVER" port="5432"/>

                    <User login="tabmon" password="password"/>

                    <Table name="TestSamples"/>

                  </Database>

                </TabMonConfig>

                 

                <?xml version="1.0"?>

                <!-- Prod Tableau Server: Prod TabMon config -->

                <TabMonConfig xmlns="TabMon">

                  <OutputMode value="db"/>

                  <PollInterval value="30"/>

                  <Clusters>

                    <Cluster name="ProdCluster">

                      <Host name="ProdSERVER"/>

                    </Cluster>

                  </Clusters>

                  <Database name="TabMon" type="Postgres">

                    <Server host="POSTGRES_SERVER" port="5432"/>

                    <User login="tabmon" password="password"/>

                    <Table name="ProdSamples"/>

                  </Database>

                </TabMonConfig>



                If there are any other questions let me know.

                 

                -Dan

                • 35. Re: Introducing TabMon, a Cluster Monitor for Tableau Server
                  Tai Kim

                  Dan,

                   

                  Thanks for the feedback!  Makes perfect sense!

                   

                  Tai

                  • 36. Re: Introducing TabMon, a Cluster Monitor for Tableau Server
                    Toby Erkson

                    Locking this thread.  Please continue to post TabMon questions here in the Server Administration forum.

                    1 2 3 Previous Next