tableau / TabMon

A Tableau Server performance monitoring service
https://tableau.github.io/TabMon/
MIT License
108 stars 50 forks source link

Installation Error #7

Closed PhillipOverpeck closed 8 years ago

PhillipOverpeck commented 8 years ago

I am getting the following Error when I try to install TabMon: tabmonerror

Here is the log that is generated:

[151C:0384][2015-10-27T14:49:02]i001: Burn v3.9.1208.0, Windows v6.1 (Build 7601: Service Pack 1), path: C:\Users\poverpec\Desktop\InstallTabMon.exe, cmdline: '-burn.unelevated BurnPipe.{B9E27659-0675-464B-A33B-D55AF1AA8034} {C6320831-8E19-4C19-A115-EADD3D7FF527} 6104 ' [151C:0384][2015-10-27T14:49:02]i000: Initializing string variable 'InstallFolder' to value '[ProgramFilesFolder]TabMon' [151C:0384][2015-10-27T14:49:02]i000: Initializing string variable 'InstallFolder2' to value '[WindowsVolume]Postgres' [151C:0384][2015-10-27T14:49:02]i000: Initializing numeric variable 'OptionInstallPostgres' to value '1' [151C:0384][2015-10-27T14:49:02]i000: Initializing numeric variable 'OptionCreateStartMenuShortcuts' to value '1' [151C:0384][2015-10-27T14:49:02]i000: Initializing string variable 'PostgresPort' to value '5432' [151C:0384][2015-10-27T14:49:02]i000: Initializing string variable 'PostgresUsername' to value 'tabmon' [151C:0384][2015-10-27T14:49:02]i000: Initializing string variable 'PostgresPassword' to value 'password' [151C:0384][2015-10-27T14:49:02]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\poverpec\AppData\Local\Temp\TabMon_20151027144902.log' [151C:0384][2015-10-27T14:49:02]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\poverpec\Desktop\InstallTabMon.exe' [151C:0384][2015-10-27T14:49:02]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\Users\poverpec\Desktop\' [151C:0384][2015-10-27T14:49:02]i000: Setting string variable 'WixBundleName' to value 'TabMon' [151C:15E4][2015-10-27T14:49:02]i000: Setting version variable 'WixBundleFileVersion' to value '2.0.5762.41569' [151C:0384][2015-10-27T14:49:02]i100: Detect begin, 4 packages [151C:0384][2015-10-27T14:49:02]i000: Setting string variable 'NETFRAMEWORK45' to value '378389' [151C:0384][2015-10-27T14:49:02]i000: Setting numeric variable 'HasPowershellVersion3' to value 1 [151C:0384][2015-10-27T14:49:02]i052: Condition 'NETFRAMEWORK45 >= 378389' evaluates to true. [151C:0384][2015-10-27T14:49:02]i101: Detected package: NetFx45Web, state: Present, cached: None [151C:0384][2015-10-27T14:49:02]i101: Detected package: postgresql.exe, state: Absent, cached: None [151C:0384][2015-10-27T14:49:02]i101: Detected package: MainPackage, state: Absent, cached: None [151C:0384][2015-10-27T14:49:02]i101: Detected package: PostgresInitializer, state: Absent, cached: None [151C:0384][2015-10-27T14:49:02]i052: Condition 'HasPowershellVersion3' evaluates to true. [151C:0384][2015-10-27T14:49:02]i199: Detect complete, result: 0x0 [151C:15E4][2015-10-27T14:50:46]i000: Setting numeric variable 'OptionInstallPostgres' to value 1 [151C:0384][2015-10-27T14:50:46]i200: Plan begin, 4 packages, action: Install [151C:0384][2015-10-27T14:50:46]w321: Skipping dependency registration on package with no dependency providers: NetFx45Web [151C:0384][2015-10-27T14:50:46]i052: Condition 'OptionInstallPostgres' evaluates to true. [151C:0384][2015-10-27T14:50:46]w321: Skipping dependency registration on package with no dependency providers: postgresql.exe [151C:0384][2015-10-27T14:50:46]i000: Setting string variable 'WixBundleLog_postgresql.exe' to value 'C:\Users\poverpec\AppData\Local\Temp\TabMon_20151027144902_0_postgresql.exe.log' [151C:0384][2015-10-27T14:50:46]i000: Setting string variable 'WixBundleRollbackLog_postgresql.exe' to value 'C:\Users\poverpec\AppData\Local\Temp\TabMon_20151027144902_0_postgresql.exe_rollback.log' [151C:0384][2015-10-27T14:50:46]i000: Setting string variable 'WixBundleRollbackLog_MainPackage' to value 'C:\Users\poverpec\AppData\Local\Temp\TabMon_20151027144902_1_MainPackage_rollback.log' [151C:0384][2015-10-27T14:50:46]i000: Setting string variable 'WixBundleLog_MainPackage' to value 'C:\Users\poverpec\AppData\Local\Temp\TabMon_20151027144902_1_MainPackage.log' [151C:0384][2015-10-27T14:50:46]i052: Condition 'OptionInstallPostgres' evaluates to true. [151C:0384][2015-10-27T14:50:46]i000: Setting string variable 'WixBundleRollbackLog_PostgresInitializer' to value 'C:\Users\poverpec\AppData\Local\Temp\TabMon_20151027144902_2_PostgresInitializer_rollback.log' [151C:0384][2015-10-27T14:50:46]i000: Setting string variable 'WixBundleLog_PostgresInitializer' to value 'C:\Users\poverpec\AppData\Local\Temp\TabMon_20151027144902_2_PostgresInitializer.log' [151C:0384][2015-10-27T14:50:46]i201: Planned package: NetFx45Web, state: Present, default requested: Present, ba requested: Present, execute: None, rollback: None, cache: No, uncache: No, dependency: None [151C:0384][2015-10-27T14:50:46]i201: Planned package: postgresql.exe, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: None [151C:0384][2015-10-27T14:50:46]i201: Planned package: MainPackage, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register [151C:0384][2015-10-27T14:50:46]i201: Planned package: PostgresInitializer, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register [151C:0384][2015-10-27T14:50:46]i299: Plan complete, result: 0x0 [151C:0384][2015-10-27T14:50:46]i300: Apply begin [17D8:02D4][2015-10-27T14:50:47]i000: Caching bundle from: 'C:\Users\poverpec\AppData\Local\Temp{f3e0f9a3-42d5-4e51-ba66-d9ea9f1d5e34}.be\InstallTabMon.exe' to: 'C:\ProgramData\Package Cache{f3e0f9a3-42d5-4e51-ba66-d9ea9f1d5e34}\InstallTabMon.exe' [17D8:02D4][2015-10-27T14:50:47]i320: Registering bundle dependency provider: {f3e0f9a3-42d5-4e51-ba66-d9ea9f1d5e34}, version: 2.0.5762.41569 [17D8:0788][2015-10-27T14:50:48]i305: Verified acquired payload: postgresql.exe at path: C:\ProgramData\Package Cache.unverified\postgresql.exe, moving to: C:\ProgramData\Package Cache\E00C723134E29DFCA28E476541F7559881647872\postgresql.exe. [17D8:0788][2015-10-27T14:50:48]i305: Verified acquired payload: MainPackage at path: C:\ProgramData\Package Cache.unverified\MainPackage, moving to: C:\ProgramData\Package Cache{536D8BB3-4D4F-4FAD-AEFA-EB7944FEB174}v2.0.2\TabMon.msi. [17D8:0788][2015-10-27T14:50:48]i305: Verified acquired payload: PostgresInitializer at path: C:\ProgramData\Package Cache.unverified\PostgresInitializer, moving to: C:\ProgramData\Package Cache{8C3192D8-9D23-4C20-BBCE-459B898CD916}v1.0.0.0\TabMonServiceInstallerDBInitializer.msi. [17D8:02D4][2015-10-27T14:50:48]i301: Applying execute package: postgresql.exe, action: Install, path: C:\ProgramData\Package Cache\E00C723134E29DFCA28E476541F7559881647872\postgresql.exe, arguments: '"C:\ProgramData\Package Cache\E00C723134E29DFCA28E476541F7559881647872\postgresql.exe" --mode unattended --prefix "C:\Postgres" --extract-only 1' [151C:0384][2015-10-27T14:51:21]i319: Applied execute package: postgresql.exe, result: 0x0, restart: None [17D8:02D4][2015-10-27T14:51:21]i323: Registering package dependency provider: {536D8BB3-4D4F-4FAD-AEFA-EB7944FEB174}, version: 2.0.2, package: MainPackage [17D8:02D4][2015-10-27T14:51:21]i301: Applying execute package: MainPackage, action: Install, path: C:\ProgramData\Package Cache{536D8BB3-4D4F-4FAD-AEFA-EB7944FEB174}v2.0.2\TabMon.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" INSTALLFOLDER="C:\Program Files (x86)\TabMon " INSTALLSHORTCUTS="1"' [151C:0384][2015-10-27T14:51:32]i319: Applied execute package: MainPackage, result: 0x0, restart: None [17D8:02D4][2015-10-27T14:51:32]i325: Registering dependency: {f3e0f9a3-42d5-4e51-ba66-d9ea9f1d5e34} on package provider: {536D8BB3-4D4F-4FAD-AEFA-EB7944FEB174}, package: MainPackage [17D8:02D4][2015-10-27T14:51:32]i323: Registering package dependency provider: {8C3192D8-9D23-4C20-BBCE-459B898CD916}, version: 1.0.0.0, package: PostgresInitializer [17D8:02D4][2015-10-27T14:51:32]i301: Applying execute package: PostgresInitializer, action: Install, path: C:\ProgramData\Package Cache{8C3192D8-9D23-4C20-BBCE-459B898CD916}v1.0.0.0\TabMonServiceInstallerDBInitializer.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" INSTALLFOLDER="C:\Program Files (x86)\TabMon" POSTGRESFOLDER="C:\Postgres" PORT="5432" USERNAME="tabmon" PASSWORD="password"' [17D8:02D4][2015-10-27T14:51:43]e000: Error 0x80070643: Failed to install MSI package. [17D8:02D4][2015-10-27T14:51:43]e000: Error 0x80070643: Failed to execute MSI package. [151C:0384][2015-10-27T14:51:43]e000: Error 0x80070643: Failed to configure per-machine MSI package. [151C:0384][2015-10-27T14:51:43]i319: Applied execute package: PostgresInitializer, result: 0x80070643, restart: None [151C:0384][2015-10-27T14:51:43]e000: Error 0x80070643: Failed to execute MSI package. [17D8:02D4][2015-10-27T14:51:43]i318: Skipped rollback of package: PostgresInitializer, action: Uninstall, already: Absent [151C:0384][2015-10-27T14:51:43]i319: Applied rollback package: PostgresInitializer, result: 0x0, restart: None [17D8:02D4][2015-10-27T14:51:43]i329: Removed package dependency provider: {8C3192D8-9D23-4C20-BBCE-459B898CD916}, package: PostgresInitializer [17D8:02D4][2015-10-27T14:51:43]i351: Removing cached package: PostgresInitializer, from path: C:\ProgramData\Package Cache{8C3192D8-9D23-4C20-BBCE-459B898CD916}v1.0.0.0\ [151C:0384][2015-10-27T14:51:44]i399: Apply complete, result: 0x80070643, restart: None, ba requested restart: No

danjrahm commented 8 years ago

Hey,

It looks like the PostgresInitializer msi isn't executing with elevated permissions. To workaround this you should snag the msi from the package cache (C:\ProgramData\Package Cache{8C3192D8-9D23-4C20-BBCE-459B898CD916}v1.0.0.0\TabMonServiceInstallerDBInitializer.msi) and run the msi as an administrator (right click, Run as administrator).

If this doesn't resolve the issue let me know.

PhillipOverpeck commented 8 years ago

When I right click to look for the Run as administrator option it isn't there, which is odd. I have it for InstallTabMon but not TabMonServiceInstallerDBInitializer.msi

Here is a screen shot of what I see: dbinitializer

I tried just using the Install option but that doesn't seem to be working

Update: I found a step by step to add the install as admin option to a .msi file Update 2: I Ran the TabMonServiceIntallerDBInitializer as admin, but I don't think it worked. I tried to launch TabMon and connect the sample workbook, but it says the connection is being actively refused

danjrahm commented 8 years ago

Hey Phillip,

It looks like postgres is either unable to initialize or the service cannot be created/started.

Can you check in services to see if Tabmon-Postgres exists and is started?

If it does not exist can you attach the DBCreation.log file? It can be found in your temp directory.

PhillipOverpeck commented 8 years ago

I am not seeing DBCreation.log

That is just the C:\Temp directory that it should be in correct?

Some additional info, I am seeing that the TabMon Service itself is stopped and it doesn't change to start when I use the Start TabMon function from my start menu

danjrahm commented 8 years ago

So, there is no TabMon-Postgres in the services?

The best way to work around this may be to run the initialization powershell script manually.

To do this, please open up "Windows PowerShell ISE" as an administrator. Once there follow the steps below:

  1. Select File > Open...
  2. Navigate to the TabMon directory.
  3. Select PGSetup in that directory.
  4. Edit $InstallDir to point to the postgres directory.
  5. Change $Port to the specified port that postgres was installed with.
  6. Change $Username to the desired username.
  7. Change $Password to the desired password.
  8. Select Run Script (F5)

If errors occur when running the script let me know. There is the potential that the execution policy does not allow scripts to be run.

PhillipOverpeck commented 8 years ago

I am not seeing PGSetup in my TabMon Directory, here is a screen shot of what I see:

tabmon directory in power shell ise

danjrahm commented 8 years ago

Hello Phillip,

The contents of the powerShell script can be found here. To use it, I suggest opening Windows PowerShell ISE, copying the script from git, and then paste the script in the PowerShell ISE.

Once the script is there, make the changes mentioned in my earlier post and hit run!

danjrahm commented 8 years ago

Hello Phillip,

I just wanted to check in to see if you were able to get TabMon installed.

-Dan

PhillipOverpeck commented 8 years ago

I haven't had a chance to test out the PowerShell ISE script you pointed me to yet. I will be spending some time on it today. Hopefully we can get it working

PhillipOverpeck commented 8 years ago

Ok. The script is failing to run. It looks like the C:\Postgres\data\postgresql.conf file doesn't exist. In fact I am not seeing the C:\Postgres\data folder in my C:\Postgres directory

Here is a screen shot of the error in power shell:

pgsetupfailure

danjrahm commented 8 years ago

Hello Phillip,

The error "Cannot find path 'C:\Postgres\data\postgresql.conf' because it does not exist, is occurring because postgres failed to initialize. The initialization will generate the data directory and all of the files within.

We should try to manually initialize postgres before we move forward. To do so, please follow these instructions.

  1. Open the "Command Prompt" as an administrator. (Right-click, run as administrator)
  2. Navigate to the bin directory of postgres. Command if the default install path was used: cd "C:\Postgres\bin"
  3. Run the command below to initialize the database. Please be sure to change $InstallDir to the porstgres directory. (Default directory: C:\Postgres) initdb --username=tabmonsuperuser --auth=trust --pgdata="$InstallDir\data" --encoding=utf8

Once this is done, the data directory should be created.

I'll pass the next steps once I hear back from you. If there are any questions let me know.

PhillipOverpeck commented 8 years ago

I ran the following:

initdb --username=tabmonsuperuser --auth=trust --pgdata="C:\Postgres\data" --encoding=utf8

I did not get any info or error messages, It just immediately went back to the standard blinking cursor mode

danjrahm commented 8 years ago

Hey Phillip,

Since we are unable to run initdb we should manually install and configure postgres. Steps for installing and configuring postgres are below:

  1. Install Postgres http://www.enterprisedb.com/products-services-training/pgdownload#windows
  2. Setup superuser during setup a. Username: tabmon b. Password: your choice c. Port: 5432
  3. Open PGadminIII a. Right click your postgres server and go to add databases b. Input the following parameters i. Owner = tabmon ii. Encoding = UTF8 iii. Tablespace = pg_default iv. Collation = English_United States.1252 v. Character type = English_United States.1252 vi. Connection Limit = -1 c. Under privileges i. Give all privileges to tabmon ii. Revoke all privileges from public

If this doesn't work please let me know.

danjrahm commented 8 years ago

Formatting was butchered, reposting.

  1. Install Postgres http://www.enterprisedb.com/products-services-training/pgdownload#windows
  2. Setup superuser during setup -- a. Username: tabmon -- b. Password: your choice c. Port: 5432
  3. Open PGadminIII -- a. Right click your postgres server and go to add databases

-- b. Input the following parameters ---- i. Owner = tabmon ---- ii. Encoding = UTF8 ---- iii. Tablespace = pg_default ---- iv. Collation = English_United States.1252 ---- v. Character type = English_United States.1252 ---- vi. Connection Limit = -1

-- c. Under privileges ---- i. Give all privileges to tabmon ---- ii. Revoke all privileges from public

PhillipOverpeck commented 8 years ago

Is there a particular version that allows me to choose the superuser name? the 9.4 version is defaulting the superuser to postgres with no option to change it.

With that in mind after the install I justed added a second superuser called tabmon, but when I go to create the database I am not able to see any user other than public in the role drop down in the privileges tab.

PhillipOverpeck commented 8 years ago

Update: This approach worked.

I had to start the service by going into task manager and navigating to services tab and then selecting the Admin services option at the bottom right. Once that window opened I was able to start the TabMon service from there.

PhillipOverpeck commented 8 years ago

Now that I have the service running I am missing some of the fields that the Sample workbook you have provided is using. The following fields are missing:

danjrahm commented 8 years ago

Based on the info above, it looks like we're running into one of two scenarios.

  1. TabMon Service user does not have access to the perfmon counters
  2. The processes required to pull perfmon counters are disabled

Here are a few things we should check.

  1. If the server has the Windows firewall up, ensure an exception for the Performance Logs and Alerts is enabled.
  2. Make sure the user that is running the TabMon service has admin access to the machine that is running TabMon as well as every node in the Tableau Server cluster.
  3. Make sure the TabMon service user belongs to the Performance Log Users, Performance Monitor Users group, and the Event Log Readers group on the server (or domain).
  4. Ensure the Remote Registry service is running on the Tableau Server machine(s).

If we are remotely pulling the counters, we should also look into whether the services required to run perfmon remotely are enabled on the Tableau Server machine(s). This link has some good information on what services should be running: http://help.logicmonitor.com/monitoring-with-logicmonitor/windows/perfmon-datasources-fail/

Can you also send me the TabMon.log file? This file is located in the Logs folder of the TabMon directory. This file may offer more insight into why the counters aren't pulling.

PhillipOverpeck commented 8 years ago

Is there a way I can define the run as user for TabMon? I have a user that should have the necessary permissions, but it isn't a user that I can log into the machine as.

PhillipOverpeck commented 8 years ago

Update: I was able to specify the run as user in the same window I started the service in originally

That user seems to have all the necessary permissions and all of the fields are now available.

danjrahm commented 8 years ago

Hey Phillip,

I'm happy to hear that everything is working as expected now. Is it cool if I close this issue?

PhillipOverpeck commented 8 years ago

Yes we can close the issue