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
1.0.24 (April 6, 2017)
- Add a page to show database servers that don't have appropriate backups.
- Increased the number of servers that can be polled concurrently
- Cleaned up various wait group names
- Added a page to show a summary of all your servers
- The active sessions will show a percent complete if one is available. Hover over the duration to see it.
1.0.23 (December 13, 2016)
- Include support for availability groups. Is it SQL displays the health of any
availability groups it finds. Note: This is an Enteprise feature. Sign up for the mailing
list above and I'll send details on enabling this feature.
- Disk performance now breaks out the MB/sec, IOPS, averge IO size, and average duration
over the one minute monitoring period. It does this for reads and writes. This column
is also sortable based on the IOPS. This gives an easy way to see which servers
are generating the most disk I/O.
- The pages that show a list of servers now include a total line. It totals the disk I/O,
SQL batches per second, SQL Server memory, and the size of data and log files. This lets you see
the total load you're placing on your infrastructure across your all servers.
1.0.22 (November 10, 2016)
- Database Mirroring is show in two places:
- It appears on the server page will show any databases that are mirrored.
- Second, there's a global database mirroring page that will show each mirrored
database across all servers. It will show the status, partner, and send and
receive queue sizes. It also includes a "priority column". This gives an easy way to
prioritize databases that aren't online and synchronzied or have a send or receive queue.
- This is a beta feature. Sign up for the newsletter and we'll send instructions on enabling it.
- The log size of database is split out into its own column which makes it sortable.
- Information that is polled in real-time is identified with a cool lightning bolt. Every page refresh will update this data.
1.0.20 (September 19, 2016)
- BETA: User-defined tags can be assigned to each server. Please sign up for the newsletter to enable this feature.
- Assorted small bug fixes
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.
- Identify the domain account
- Launch SECPOL.MSC, Navigate to Local Policies -> User Rights Assignment and add the account to the Log on as a
Service policy
- Grant the service account MODIFY permission on this directory
- Grant the service account VIEW SERVER STATE on all SQL Servers to be monitored
- Open an Administrator console window in this directory and run
isitsql.exe install
. This
installs the executable as a service.
- Open the Local Services control panel:
- Change the service to run as the service account
- Start automatically
- Start the service. It will create a log directory here for error logs.
- If the application will be accessed from another machine, verify the Windows Firewall allows inbound access on
port 8143.
Other Notes
- 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.
- If you have outbound Internet access the application will upload any internal errors. This won't include any
information about your SQL Servers.
- To remove the service, stop the service, and type
isitsql.exe remove
from an Administrator console.
- To update the service, stop the service, repace any files including the executable and restart the service.
- 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:
- {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.
- {ODBC Driver 11 for SQL Server}
- {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
- 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.
-
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.
- 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.
- If you find the waits aren't mapping to wait groups properly please email me.