xSNMP Management Packs Milestone!

As of today, the xSNMP Management Pack Suite version 1.1.0 has been downloaded 1000 times!  Thanks to everyone who has provided test feedback and comments.   There are more updates and feature enhancements in the works.

Advertisements

Handling String Array() Values in OpsMgr WinRM Enumeration Data Sources

I was recently asked a question on this topic, and I thought it was worth sharing.  

In this post, I described discovering Oracle processes with enumerations of instances of the SCX_UnixProcess class that are filtered on the values of the “Parameters” property.   The question I was asked involved a problem with a similar discovery process that was not evaluating the full Parameters value if more than oe value is returned.   An example of an enumeration for such an SCX_UnixProcess instance would be:

SCX_UnixProcess
    CSCreationClassName = SCX_ComputerSystem
    CSName = tl-lx02.testlab.corp
    Caption = Unix process information
    CreationClassName = SCX_UnixProcess
    CreationDate = 2010-05-09T09:17:37.614884Z
    Description = A snapshot of a current process
    […]
    ModulePath = /usr/bin/Xorg
    Name = Xorg
    OSCreationClassName = SCX_OperatingSystem
    OSName = Red Hat Distribution
    OperationalStatus = null
    OtherEnabledState = null
    OtherExecutionDescription = null
   Parameters = /usr/bin/Xorg, :0, -br, -audit, 0, -auth, /var/gdm/:0.Xauth
    ParentProcessID = 4040
    Priority = 75
    ProcessGroupID = 4048
    ProcessNiceValue = 20
    ProcessSessionID = 4048
    ProcessTTY = null
    […]

In this example, if an ExpressionFilter module were configured to evaluate the XPATH query:  //*[local-name()=”Parameters”], the evaluated value  would resolve to:  /usr/bin/Xorg.  Just the first value in the string array  would be evaluated.  

However, with this array of strings, the other values can be accessed with an ordinal appended to the XPATH queries:
 //*[local-name()=”Parameters”][1]
//*[local-name()=”Parameters”][2]
//*[local-name()=”Parameters”][3]
etc.

So, the ExpressionFilter module could easily be configured with a top-level  ‘OR’ operator, and a sequence of RegExExpressions to evaluate the first 2, 3, 4, 5 etc values in the Parameters value list

Finishing the Oracle SCX Management Pack for OpsMgr Cross-Platform Agents

I am in the process of putting the finishing touches on the Oracle SCX Management Pack that I have described in several recent posts (part 1, part 2part 3, part 4) and will soon be moving on to finishing the documentation for the management pack.  This post is intended to provide a preview of the finished MP and highlight the monitoring implemented by this MP.   I intend to make this management pack freely available in the near future, but I would like to get some more testing done before posting it for download.   In the meantime, if anyone is interested in testing this management pack, please leave a comment or contact me and I will be glad to provide an early beta version.  

While completing this management pack has taken me longer than I had anticipated, this authoring process has been a great learning experience for me in an area a bit outside of my comfort zone.  I also like to think that this management pack is a good representation of just how flexible the OpsMgr SCX extensions are in that I was able to implement all of the discovery and monitoring in the management pack using the basic SCX agent CIM providers without any additional scripts or compiled code on the agents. 

Screenshots

View Menu

Alert View

(Looks like it’s time to grow some table spaces)

Read more of this post

Oracle Management Pack for OpsMgr SCX Agents, Part 4: File System and Process Monitoring

While the vast majority of the rules and monitors in the Oracle SCX management pack (part 1, part 2, part 3) that I am working on involve the basic form of a SQL query data source (see part 2) that queries a specific parameter value to evaluate the result, there are two areas of monitoring that required discovery logic a bit more complex:  file system monitoring and Oracle process monitoring.  I found the challenge of implementing these two categories of monitoring to be engaging, and thought that it might be worth writing a bit about the approaches that I took.   

File System Monitoring

Oracle dependencies on file systems could exist in several forms, such as the Flash Recovery Area, Dump space destinations, Data File locations, and log archive destinations.   While the OpsMgr cross platform agent provides File System availability and space-monitoring out-of-the-box, I wanted to implement additional space monitoring for the File Systems that an Oracle instance depends on, with custom thresholds and alerting. 

In order to achieve this result, I started by creating a class for the Oracle File System.   An instance of this class would represent the File System that Oracle depends on.  By using the FS name as the key property, if multiple Oracle components used that File System, only a single instance of the class would be discovered.   In order to enhance alerting, I also added a set of boolean properties to the File System class that, once discovered, would indicate the nature of the dependency that Oracle has on the File System.  

Read more of this post

Microsoft System Center Management Pack Extensions Contest

The Microsoft System Center Influencers program is sponsering a Management Pack Extensions Contest.  Information here.

OpsMgr: R2 PowerShell Modules Example – DNS Resolution Monitor

While I’m finalizing some work on the Oracle SCX management pack,  I wanted to interrupt that series of posts to make a post walking through the use of one of the OpsMgr R2 PowerShell modules –something that I have been meaning to write up for some time.

The addition of native PowerShell modules was one of the major improvements in OpsMgr R2, and these modules collectively introduce an incredible degree of flexibility and improved efficiency in highly customized script-based monitoring.  There are a total of six PowerShell modules available in R2, and in this post, I will walkthrough an example using the Microsoft.Windows.PowerShellPropertyBagProbe module.   The monitor created in this example is a simple DNS resolution check that can be deployed to Windows agent-managed systems for perspective monitoring of DNS client resolution.

The example management pack can be downloaded here.

Management Pack, Class, and Discovery

Firstly, to build this monitor, a new management pack named DNSClientMonitoring is created. 

Read more of this post

Building an Oracle Management Pack for OpsMgr Cross-Platform Agents, Part 3

Continuing on with the development of a management pack for monitoring Oracle database servers on a UNIX/Linux platform (part 1, part 2), I will describe in this post some of the characteristics and methodology of the class structure and object discoveries. 

Class Structure

To start the class structure, I defined a few arbitrary abstract classes to function as the base classes for Oracle objects:  OracleSCX.OracleSubsystem, OracleSCX.OracleApplication, and OracleSCX.OracleComponent.  Subsequently, I created a set of classes to represent the Oracle objects and components that would be discovered.  This class hierarchy is best illustrated with this image:

As for the object relationships, the discovered objects are organized as follows:

  • Oracle SCX Server
    • Oracle SCX Listeners      
      • Oracle SCX Listener
    • Oracle SCX Instance
      • Oracle SCX TableSpaces
        • Oracle SCX TableSpace
          • Oracle SCX Data File
      • Oracle SCX Processes
        • Oracle SCX Process
      • Oracle SCX Databases
        • Oracle SCX Database
      • Oracle SCX Alert Logs

A diagram view of a discovered Oracle system illustrates these relationships:

Secure References

Read more of this post