Quick Start

Adding a server to monitor

In the current directory there is a file named servers_shell.txt. Rename this to servers.txt. It includes sample entries you can modify.

This is a CSV file with two values: server and "display name". The server can be a name (NetBIOS, FQDN, IP, etc.) or a connection string. If the server name specifies a port, (ex. MyServer,1433) it should be enclosed in quotes. If you use just a name it will use a trusted connection. Connection strings should always be in quotes.

If you don't include a display name it will use the server name.

Add a few servers and save the file.

Launch the application

The simplest way is to double-click the isitsql.exe file in the directory. You can also open a console window and run the application. Any errors will be displayed in the console window. A simple Control-C (or Break) will exit the application.

After launching, navigate your browser to http://localhost:8143 to view the monitor

The monitor polls each server once per minute in the background. Pages refrehes every minute.

Required Permissions

The application requires the following permissions for the login that is running the service or executable:

  • VIEW SERVER STATE - View basic server information such as CPU, disk I/O, waits, and version.
  • VIEW ANY DEFINITION - View database details such as name, status, and size.


What's New

August 24, 2016 (1.0.19)

  • You can now view basic information about the databases on a server
  • We now prefer the ODBC 13 driver to the ODBC 11 driver.
  • If you run two instances or launch the EXE while the service is running we provide a better error
  • The menu bar now stays on top while scrolling down.
  • Processes waiting on BROKER_RECEIVE_WAITFOR are now excluded from the list of active processes

August 4, 2016 (1.0.18)

  • Unreachable servers are displayed at the top of every page. Previously some pages may have displayed them twice or not at all
  • Sessions with a wait type of WAITFOR no longer show up as Active Sessions when looking at a server
  • Previously the database size included snapshots. Snapshots are no longer included in when computing the data size. The next update should add them back in but only include the actual data in the snapshot.
  • The default sorting for some columns has been changed to show the higher values first. For example, CPU percentage and database size.

August 1, 2016 (1.0.17)

  • The table sort now retains the sort between page refreshes.
  • Any unreachable server now shows at the top of each page since a page may be sorted in a way that wouldn't show it.
  • If a server is unreachable, it will only log once. It will then log when it becomes reachable.
  • Polling should be faster due to more concurrent threads.
  • All JavaScript, CSS, HTML, fonts, etc. have been moved inside the executable.
  • SQL Server 2005 support is included. Barely.

July 28, 2016 (1.0.16)

  • Includes support for limited tags
  • Added a simple gradient for CPU
  • Changed the disk I/O chart to show writes as a line to fix the random gaps

July 19, 2016 (1.0.15)

  • The homepage now displays the number of databases and their total size
  • Added support for SQL Server Native Client 10.0
  • Improved graphing of CPU for servers in different time zones
  • Improve reporting of active sessions for SPIDs in unusual states

July 14, 2016

  • The disk graph is improved. There's still an issue in some browsers with gaps however.

July 13, 2016

  • The app captures the domain name and displays it when you hover over a server name.


Running as a Service

There isn't an installer but it is very easy to configure this as a service. Ideally this service will run as a domain service account. Please stop the application before completing these steps.

  1. Identify the domain account
  2. Launch SECPOL.MSC, Navigate to Local Policies -> User Rights Assignment and add the account to the Log on as a Service policy
  3. Grant the service account MODIFY permission on this directory
  4. Grant the service account VIEW SERVER STATE on all SQL Servers to be monitored
  5. Open an Administrator console window in this directory and run isitsql.exe install. This installs the executable as a service.
  6. Open the Local Services control panel:
    1. Change the service to run as the service account
    2. Start automatically
  7. Start the service. It will create a log directory here for error logs.
  8. If the application will be accessed from another machine, verify the Windows Firewall allows inbound access on port 8143.

Other Notes

  1. The server reloads the servers.txt file every minute when it polls. It adds any new servers it find. It does the best it can to remove servers too. It will also update Display Names if it can.
  2. If you have outbound Internet access the application will upload any internal errors. This won't include any information about your SQL Servers.
  3. To remove the service, stop the service, and type isitsql.exe remove from an Administrator console.
  4. To update the service, stop the service, repace any files including the executable and restart the service.
  5. You can see other command line options by typing isitsql.exe /?. There aren't many.

Connection Strings

The application will suggest a driver on startup. You can find the drivers installed by opening the ODBC data sources and looking at the Drivers tab. If you need to choose a driver I'd suggest the following priority:

  1. {SQL Server Native Client 11.0} Click on install instructions and look for Microsoft "SQL Server 2012 Native Client". This is also the version that ships with SQL Server 2016.
  2. {ODBC Driver 11 for SQL Server}
  3. {SQL Server}. Most servers have the generic SQL Server ODBC driver installed. It works but won't support some of the more advanced connection string settings.

Sample Connection Strings

  • Driver={SQL Server Native Client 11.0};Server=127.0.0.1;Database=tempdb;Trusted_Connection=Yes;App=IsItSql;
  • Driver={SQL Server Native Client 11.0};Server=MyServer;Database=tempdb;Trusted_Connection=Yes;App=IsItSql;
  • Driver={SQL Server Native Client 11.0};Server=127.0.0.1,1433;Database=tempdb;Trusted_Connection=Yes;App=IsItSql;
  • Driver={ODBC Driver 11 for SQL Server};Server=127.0.0.1;Database=tempdb;uid=test;pwd=test;App=IsItSql;
  • Driver={SQL Server};Server=myserver.mydomain.fqdn;Database=tempdb;uid=test;pwd=test;App=IsItSql;

Displaying Dashboards

  1. The dashboard displays the first three servers in the servers.txt file. You can display other servers by hacking the URL. For example, http://localhost:8143/dashboard/S4/S6/S8 will display the 4th, 6th and 8th servers.
  2. Pressing F11 in the browser will remove all chrome and display a nice dashboard.

Feedback and Known Issues

Please email Bill Graziano with any issues.

  1. If your server doesn't have internet access the graphing libraries won't download to the browser. Run the browser from a machine that does have internet access and open http://yourserver:8143. If that doesn't work email me and I'll try to help you.
  2. If you find the waits aren't mapping to wait groups properly please email me.