Under normal circumstances every server in the production architecture (including the operations architecture) is monitored. At a high level, the monitoring agent will:
Access performance counters or other performance indicators.
Extract information from logs and events.
Check services and processes.
Obtain configuration information from the underlying system.
It is also possible for the monitoring agent to execute custom scripts that gather information specific to a particular application or service. This can be very useful during post go-live support when additional monitoring capabilities might be required. A simple script can be developed to check certain records in the databases for consistency, and to raise an alert on inconsistent records. This could be very useful, especially if there are distributed transactions across multiple databases.
During testing (whether unit, integration, functional, or technical), numerous scripts and database extracts are used to verify expected results and check values. These scripts should be catalogued because they may prove very useful in live service. This is also true during incident investigation.
Each server and application will have its own monitoring requirements. For example, a SQL Server database server will be monitored for specific purposes, including but not limited to the following:
The state of its services (SQL Server, SQL Agent, and so on)
The state of the databases
Blocked processes ...