As part of supporting a software system which is in production, the support people usually keep track of a lot of information about the production servers. This information may have to do with hardware (how much physical memory is installed, what is the capacity
of hard drives) or with software (what version of .Net is installed, how much have the tables of the production database grown, what are the versions of the .Net assemblies deployed). With the complexity of even small scale solutions growing every day, system
information can become important for the support personnel. Unfortunately in the majority of cases no particular methodology is used to extract and keep track of such vital information.
System Info Reporter (SIR) is a tool which can be used to provide such information. Implemented as a .Net console executable, SIR tries to provide a small footprint and is meant for scheduled or manual execution. Once run, SIR scans the server it runs on (or
other servers) and collects information. That information is written out to system information reports which can be sent to support or monitoring personnel on a regular basis, creating a trail that shows the current state of the server.
The current version of SIR offers the following build-in plugins:
*. This is mostly a test-bed writer plugin. It outputs collected information to the windows debug output stream.
*. This writer generates a simple HTML report.
*. This writer generates a simple text report.
*. This writer generates a simple PDF report. This is achieved by using
*. The WMI collector can be used to run WMI queries and search the results for particular pieces of information. Given the power of WMI, this collector can be used to gather a lot of information out of a system.
*. This collector gathers information about the configured windows services of the local server.
*. The registry collector reads sections of keys from the registry and includes them in the system info report.
*. The MSSQL collector connects to a Microsoft SQL server and executes a query or series of queries against a specified database, then includes the results to the system info report.
Event log collector
*. This collector retrieves entries from a given event log of the local machine or from a remote server.
*. The directory collector traverses specified directories looking for files matching a given file mask, then outputs the details of these files to the generated report.
*. Works much like the directory collector, but tries to load .Net assemblies and report on their version.
*. Gets information about the assemblies located in the global assembly cache.
*. This collector can ping a series of servers to determine whether they are reachable or not.
TCP Port collector
*. The TCP port collector attempts to establish a TCP connection to a series of server ports and determine the availability of TCP services.
If a writer creates file-based output, SIR can compress the file contents in a zip file. This is achieved by using
Who would use SIR?
System administrators and support personnel tasked with monitoring and supporting a system.
Considering the fact that SIR can gather information from a lot of sources in a batch-mode manner and generate a report, it is a good tool to use for
job. However, SIR is in no way a substitute for more tight monitoring of a server and that's the main reason why there is no Performance Counter collector. If perfmon seems more like the tool to use for a monitoring job, then it's certain
that SIR is not a good alternative.
On the presentation level SIR writers are data-agnostic, meaning that they have no knowledge about what the information they output to a report represents. Although that is a good way to promote abstraction of writers, it also imposes a limitation and is the
reason why nifty-looking reports cannot be created by SIR.
You can open
to see samples of SIR output.