Custom Reporting in Microsoft Operations Manager

10/26/2009

MOM uses two separate databases to store data collected from the systems it manages. The main MOM database is used to store all the configuration data for the MOM Server, and also acts as a short-term store for data that is collected from managed computers. Because of the sheer size of the data collected, MOM will delete older data after a certain user-defined period, and to allow this data deletion to happen in a high-performance manner, dynamically-generated partitioned tables are used to store operational data. The schema of the main operational data, and the fact that data is deleted from it on a regular basis, make it a very poor option for reporting.

To support longer-term reporting on operation data, MOM uses a DTS package to regularly move data from the main database into a data warehouse with a schema that is optimised for reporting purposes. SQL Server Reporting Services sits on top of this data warehouse, and offers a rich set of pre-built reports that can be created on demand or scheduled for publication and distribution to relevant parties. This means that a CIO can be automatically provided with a regular report in say, PDF format that is delivered via email every Monday morning, while operations staff can dynamically extract much more detailed information in a format that is more accessible to them, such as an Excel spreadsheet.

The reports that ship with MOM can easily be extended, and the process of writing new reports is quite simple and straight forward. For an overview of how SQL Server Reporting services works and how easy it is to write reports, see the two-part series of articles on Reporting Services archived on the authors website at http://www.dotnetperformance.com/articles.aspx.

Conclusion

Logging is a critical element of a real-world application. Without adequate logging, operations staff will have an extremely difficult job managing the applications that you write, increase the likelihood of animosity and outright rejections of the code that you spent so long writing. Adding logging to an application is a simple task, and the first two articles in this series showed that there is a wide range of options available for the .NET developer to choose from. With the improvements in the in-built logging and tracing functionality in the .NET 2.0 Framework Libraries, it is likely that this will end up as the default choice for most developers to provide rich instrumentation data in a manner that is not too imposing.

To allow the log output of many applications, machines and domains to be managed in a reliable manner, server software like Microsoft Operations Manager allows operations staff to see a holistic view of the IT assets they are charge with maintaining, and put in place rules that allow them to be notified automatically when systems need attention. There are a number of ways that a developer can assist with the management, including producing Management Packs, MOM Reports, and applications that interact deeply with MOM using the MOM Connector Framework.

Posted in: Software Programming| Tags: Microsoft .NET technologies Management Packs Microsoft Operations Manager MOM MOM Components MOM Management Server MOM Operator Console MOM SDK PerfMon Windows Management Instrumentation WMI

Logging and Application Instrumentation

10/26/2009

In the final instalment in this series on logging in the .NET world, the focus will switch to enterprise tools that allow operations staff to collect the output of the various logging frameworks and techniques that have been covered to date, and, once this data has been collected, act and report on this data in a timely manner. After looking at how these products work, and focusing in on Microsoft’s offering in this area, the article will conclude with an overview of how developers can ensure that the systems they build interact well with monitoring tools and also cover techniques for deeply integrating with these tools.

The motivation for an enterprise-level management tool is obvious to those that have been involved in or observed the operational management of any sizable IT department. Users and managers expect the systems that they rely on to get their job done to be available and capable of delivering high levels of performance. As the number of hardware and software assets under management grows, the small-shop practice of regularly scanning event logs and occasionally ensuring hard-disks are not too low on storage rapidly fails to scale to the increase management demands. A management tool that can automatically perform these tasks, and raise timely alerts in the event of a system failure, is required.

This material is often seen as little interest to developers, and the traditional view has been that once the code is cut, tested and built into a deployment package, the hard work is done. This attitude is clearly naïve, and organisations will typically spend more money on applications during the post-deployment operational phase rather than the pre-deployment development phase. Given that development can strongly influence how easy it is for an application to be managed, it is worth conducting this brief detour from the code-centric view of the developer into the world of the IT operations management team.

Management Packs group Rules into Rule Groups, and have various other configuration sections like Computer Groups that Rules Groups apply to, Providers for use in creating the Rules and Override Groups that can override rules for a particular computer or group of computers. One item of particular interest is Tasks. A task is a command that can be executed either on the MOM server in the case of a Console Task or on the monitored computer in the case of a Runtime Task. Tasks provide a way to store a script or action that can be run to diagnose or rectify a problem relevant to the Management Pack. For example, a Console Task may involve pinging the monitored machine to see if it is responsive and a Runtime Task may involve running IPConfig on the monitored machine to flush the DNS cache and renew the IP address.

From this description, it is apparent that a Management Pack is essentially a codified operations manual and set of best practices that would have been performed manually in the days before shrinking IT budgets and increased server numbers made manual monitoring infeasible. Large IT departments will clearly want to develop custom Management Packs that conform to their existing workflows and procedures, but for smaller organisations , and even larger organisations looking for a good starting point, pre-built Management Packs will be preferred.

MOM Server 2005 ships with a Management Pack that monitors the actual MOM Server, and the MOM distribution disk also contains Management Packs for the Baseline Security Analyzer, Exchange Server, SMS Server, SQL Server, Active Directory, Base Windows Operating System, DNS, IIS and Windows Clustering. In addition, there are literally hundreds of Management Packs available from the http://www.microsoft.com/management/mma/catalog.aspx, and these include packs from various vendors like Dell, HP and Citrix as well as ISVs that specialize in management software. For all off-the-shelf software and hardware systems, there is a strong likelihood that there will be a Management Pack available to support its monitoring.

Posted in: Software Programming| Tags: Microsoft .NET technologies Management Packs Microsoft Operations Manager MOM MOM Components MOM Management Server MOM Operator Console MOM SDK PerfMon Windows Management Instrumentation WMI

Microsoft Operations Manager (MOM) For the Developer

10/26/2009

The first point that is worth stating very clearly is that MOM is designed to pick up logging data from a wide variety of sources, including custom text log files written directly using the IO functionality in .NET. This means that all an application has to do to support a basic level of MOM monitoring is to ensure that accurate and timely log information is output somewhere. If an application takes advantage of .NET’s inbuilt Trace functionality, EIF, log4net or the Logging and Instrumentation Application Block, the application can certainly be configured to deliver output to a format that MOM can pick-up and monitor.

The technologies covered in this section are for applications and developers that wish to have a deeper level of integration with MOM. The integration techniques will start with the relatively simple option of providing a Management Pack with the application, then progress on to looking at extending the reporting of MOM, and finally look at deep integration with the MOM Connector Framework (MCF).

Microsoft Management Packs

Deciding whether it is worthwhile to provide a custom Management Pack for an application or software system is influenced by a number of criteria:

  • The complexity of the software system.
  • The likelihood that the end user of the software system will be using MOM Server.
  • Developer skills and development budget available.
  • Monitoring offerings of competitive products.

A good rule-of-thumb is when the documentation for monitoring the software system begins exceeding a page, it is time to codify this documentation into a Management Pack rather than burden each operator charged with monitoring the system with the task. Management Packs can start very small, and gradually grow in complexity as more monitoring criteria becomes apparent. If a Management Pack is planned for a product, it would be well worth spending some time with the operations staff at a pilot or beta site and note the various pieces of data that they are using to monitor the system. This can give an indication of which area of the system need to have there logging output improved, and which pieces of this logging data needs to be incorporated into a Management Pack.

Deciding which logging data to inspect in a management pack will be an iterative process, but the key starting point for existing products will be analysing past support calls from customers to determine which operational characteristics of the software system they are having the most trouble dealing with. If these problems can be tracked via a Management Pack, and MOM Alerts with appropriate Knowledge attached can be raised, the likelihood that the customer will be able to address the problem without the need for a support call will be significantly increased.

The simplest way of building a MOM Management Pack is to use the MOM Administrator console. Simply add the various elements needed in the Pack, such as computer groups, rules and tasks and then export the Pack to a standard Management Pack AKM file. This file can then be imported by other MOM users, and customised as required.

Further information on developing MOM Management Packs is available at http://www.microsoft.com/downloads/details.aspx?familyid=c5b42e5b-68ed-45ea-8864-a9d4087d261d&displaylang=en.

Posted in: Software Programming| Tags: Microsoft .NET technologies Management Packs Microsoft Operations Manager MOM MOM Components MOM Management Server MOM Operator Console MOM SDK PerfMon Windows Management Instrumentation WMI

Product Connectors and the MOM Connector Framework (MCF)

10/26/2009

Product Connectors represent the deepest level of integration with MOM. The MOM SDK (available at for download from http://www.microsoft.com/mom/downloads/sdk/) offers two main modes of integration - a .NET API that can be consumed by managed applications and components written in Visual Studio.NET 2003 and a web service API that can be consumed by any web-service capable development tool, such as Visual Basic 6 with the SOAP Toolkit. For COM-centric clients, generating COM Callable Wrappers (CCW) from the managed MOM assemblies is also an option.

There are two basic motivations for writing a product connector. The first motivation is the obvious one – extending the product to do something that is doesn’t already do. For example, an organisation may want to write a connector to make data from a propriety device or system available within MOM. A number of third-party connectors that make logging and monitoring data available from non-Windows systems use the SDK to provide this functionality.

The second extension scenario is a little more obscure, but no less useful. In some situations, operations staff will have a set collection of tools that they are using for system management. Migrating from these tools to the MOM Operator Console may not be feasible due to retraining costs or functionality in the old tools that cannot be replicated easily in MOM. In these situations, it is possible to use MOM as the monitoring engine for Windows computers, and to use MCF to retrieve alerts from MOM and forward them to the existing management tool. For popular management software like IBM’s Tivoli a MCF adapter is available pre-built, but for home-grown management tools, a custom adapter needs to be written.

Posted in: Software Programming| Tags: Microsoft .NET technologies CCW COM Callable Wrappers Management Packs Microsoft Operations Manager MOM MOM Components MOM Management Server MOM Operator Console MOM SDK Windows Management Instrumentation WMI

Microsoft Operations Manager (MOM) 2005 Overview

10/26/2009

This section will provide a brief architectural overview of Microsoft Operations Manager (MOM), and explain the basic setup of a MOM system. At a very high level, MOM is Microsoft’s offer that allows operations staff to monitor and manage the IT infrastructure of a company. MOM also offers a rich reporting offering that uses SQL Server Reporting Services to support long-term health tracking and performance monitoring.

MOM Components

Like many of the more advanced products in the Windows Server System, MOM requires SQL Server as the data store for both its configuration data and the actual data that MOM collects from the systems that it monitors. For smaller organisations , deployment onto an MSDE database is supported, but given the volume of data that continuous monitoring of systems will generate, the storage capacity of MSDE will be quickly exceeded in most deployment scenarios.

There are three basic entities in a MOM management system -

  • The MOM Management Server, which is responsible for coordinating the overall management of a particular set of IT assets.
  • MOM Management Packs, which define how management and monitoring will occur.
  • Managed computers, which can be either managed via the installation of a MOM agent (which is the default and recommended configuration) or through an agent-less configuration which uses standard technologies like Windows Management Instrumentation (WMI) for monitoring.

The MOM Management Server is administered through a Microsoft Management Console (MMC) snap-in, and once a MOM Management Server has been configured, management and monitoring is accomplished through the MOM Operator Console, as shown in Figure 1. The Operator Console is a managed application (again proving that Microsoft’s own internal adoption of .NET technologies is continuing to increase) that provides an Outlook-style interface for managing the day-to-day operations of an IT department.

MOM also ships with a web version of the Operator Console called the Web Console, which allows remote monitoring of a MOM Server-managed environment. Of interest to developers is the fact that the Web Console is written entirely using the publicly-released MOM SDK, highlighting the deep degree on integration that MOM makes available.

Management Packs

Management Packs are the glue that binds the whole MOM monitoring experience together. The basic atom of a Management Pack is a rule, which may be an Event Rule, a Performance Rule or an Alert Rule. A rule acts on a piece of data from a provider, which may be a Windows Event Log, the Windows System Monitor (PerfMon) or a custom log file. A rule applies criteria against this data that a provider makes available, and if this criteria is met, a response can be trigger. A response may be an email, pager notification or execution of a piece of managed code. Finally, knowledge can be applied to a rule, so that operations staff responding to an alert trigger by a rule being fired have ready access to documentation that they can use to diagnose and rectify the problem. Figure 2 shows a MOM rule and supporting entities.

Posted in: Software Programming C# and .NET| Tags: Microsoft .NET technologies Management Packs Microsoft Operations Manager MOM MOM Components MOM Management Server MOM Operator Console MOM SDK PerfMon Windows Management Instrumentation WMI

Hot Posts

Latest posts

Tags

Others

Sponsors

asp.net interview questions