I recently had an unpleasant surprise when I realized that I had installed two of my Operations Manager database servers I had accidentally installed as an evaluation edition. I found this out when the databases would no longer start so that was "less than optimal". In my lab the first indication that this was an issue occurred due to a failure of the SQL Reporting Services service on the server (the alert name was "SQL Server Reporting Services Stopped"). During a restart of the SQL server it became more apparent that the SQL server version was an evaluation and that the evaluation had expired.

To avoid running into this surprise in the future I built a sample management pack which has two monitors. One monitor checks for an event which indicates that SQL evaluation edition is installed and creates a warning alert when it is found. A second monitor checks for an expired version of SQL evaluation edition and creates a critical alert when the condition is found. The configuration for these monitors is detailed below:

 

Monitor name: Check for SQL Evaluation version

Description: To fix this condition open the SQL server installation center (from the installation media), on maintenance and choose the edition upgrade providing a correct license key.

Condition: Application log, event # 17069 from source MSSQLSERVER, where description EventDescription does not contains "Evaluation"

Monitor state: Healthy

Condition: Application log, event # 17069 from source MSSQLSERVER, where EventDescription contains "Evaluation"

Monitor state: Warning

Alert name: SQL Evaluation version found

Enabled: False

 

Monitor name: Check for expired SQL Evaluation

Description: To fix this condition open the SQL server installation center (from the installation media), on maintenance and choose the edition upgrade providing a correct license key.

Condition: Application log, event # 17069 from source MSSQLSERVER, where description EventDescription does not contains "Evaluation"

Monitor state: Healthy

Condition: Application log, event #17051 from source MSSQLSERVER, where description EventDescription contains "expired"

Monitor state: Critical

Alert name: SQL evaluation version has expired

Enabled: False

 

The monitors are shown below:

 

These monitors were targeted to the Windows Server class and then enabled via override for the "SQL Computers" group as shown below from the authoring pane in the overrides section.

Below is where these appear in Health Explorer from the Windows computer object.

The screenshot below shows how the monitors are not enabled for systems which do not have SQL server installed.

The examples below show the monitors in an unhealthy state identifying it as an evaluation version:

And identifying it was an expired version of SQL server.

NOTE: If you were going to use this in a production environment it would be a better solution to match on parameters instead of EventDescription. Kevin Holman blogs on how to do this here: http://blogs.technet.com/b/kevinholman/archive/2008/04/22/using-event-description-as-criteria-for-a-rule.aspx.

To fix the evaluation situation I saw in my environment, I mounted the SQL 2012 licensed ISO, and ran setup to open the SQL server installation center (from the installation media), on maintenance and choose the Edition Upgrade providing a correct license key. Once this was done, services could be restarted successfully and the monitors reset to a healthy state.

Here’s the monitors both returned to a healthy state after changing the edition to a fully licensed version.

 

Summary: Hopefully this sample management pack will help me (and others) to find the SQL evaluation versions which are in an environment and be able to do something about them before they actually expire. Hey, that is like being proactive! J

This sample management pack available for download at: http://www.systemcentercentral.com/download/sample-management-pack-monitor-sql-server-evaluation-versions/