Tag Archives: MimboloveManagement Pack
OMS Network Performance Monitor (NPM) has made to public preview few weeks ago. Unlike other OMS solutions, for NPM, additional configuration is required on each agent that you wish to enrol to this solution. The detailed steps are documented in the solution documentation.
The product team has provided a PowerShell script to configure the MMA agents locally (link included in the documentation). In order to make the configuration process easier for the OpsMgr users, I have created a management pack that contains several agent tasks:
- Enable OMS Network Performance Monitor
- Disable OMS Network Performance Monitor
- Get OMS Network Performance Monitor Agent Configuration
Note: Since this is an OpsMgr management pack, you can only use these tasks against agents that are enrolled to OMS via OpsMgr, or direct OMS agents that are also reporting to your OpsMgr management group.
These tasks are targeting the Health Service class, if you are also using my OpsMgr 2012 Self Maintenance MP, you will have a “Health Service” state view, and you will be able to access these tasks from the task pane of this view:
I can use the “Get OMS Network Performance Monitor Agent Configuration” task to check if an agent has been configured for NPM.
i.e. Before an agent is configured, the task output shows it is not configured:
Then I can use the “Enable OMS Network Performance Monitor” task to enable NPM on this agent:
Once enabled, if I run the “Get OMS Network Performance Monitor Agent Configuration” task again, the task output will show it’s enabled and also display the configured port number:
and shortly after, you will be able to see the newly configured node in OMS NPM solution:
If you want to remove the configuration, just simply run the “Disable OMS Network Performance Monitor” task:
Recently, I have had chance to evaluate the OpsLogix VMware management pack. In this post, I will discuss my experience with this MP so far.
Setup and Configuration
Once the MP files are imported , you will be able to import the license from the licensing dashboard in the monitoring pane under the OpsLogix folder.
Once the license is imported, you can manually add the VMware vCenter server from the “VMWare IMP COnfiguration dashboard” located under OpsLogix\VMware folder:
I have create a service account in AD and give it admin rights in vCenter. I used this account to connect to vCenter on this dashboard.
Note: Please do not use an account with administrative privilege in your production environment. a normal user with top level read-only access will suffice.
The OpsLogix VMware MP also has defined a resource pool that you can use for monitoring vCenter:
By default, the resource pool membership is set Automatic (which means all management servers are a member of). you can change it to Manual membership and hand pick the management servers you want to be a member of this resource pool.
Alternatively, you can also pick another existing resource pool (or even create your own) in the OpsLogix VMware configuration dashboard. You can also use resource pools containing OpsMgr gateway servers to monitor your VMware environment.
This MP discovers and monitors the following components:
- vCenter servers
- ESX hosts
- Virtual Machines
- VM Networks
- Various hardware components
Here’s the sample diagram view from my lab environment:
The MP ships with a top level Alert view for all alerts generated by the MP:
The MP collects data and queries the health state of the VMware components via the vCenter Managed Object Browser (MOB). I was impressed about how many performance counters are being collected by the MP. It also comes with a performance dashboard which you can view from the OpsMgr console:
I have been asked many times before that what exactly does this MP monitor / collect? To answer the question, I’ve used MPViewer and exported all the monitoring MPs to Excel and make this SpreadSheet that contains all the rules and unit monitors.
This MP does not require any additional servers to monitor the VMware infrastructure as it leverages a resource pool to query vCenter. In my lab environment, since I have installed vCenter server on a Windows server, I also installed the OpsMgr agent on the vCenter server, so the server itself is monitored by OpsMgr.
As mentioned previously, this MP also monitors the hardware components in your VMware environments. In particular, the following components are discovered and monitored:
- Network cards
- Power Supply
This covers all the essential fabric components (Compute, Network and Storage), as well as the other hardware components such as PSU, battery, and physical environments such as temperature and voltage. the screenshots below are some sample state views taken from a demo environment:
The reporting MP provides several availability reports for different VMware components:
i.e. ESX host availability report:
I’ve created a sample ESX host availability report, you can download it from HERE.
Note: all the reports shipped in this MP are linked reports, So if they don’t meet your requirements, you can always use other existing reports in your management group (i.e. the performance reports from Microsoft Generic Report Library).
Squared Up Dashboard
I have created a Squared Up dashboard for this the OpsLogix VMware MP.
If you are also Squared Up in your OpsMgr environment, you can download this dashboard and import this dashboard from Squared Up’s community site: https://community.squaredup.com/browse/download-info/opslogix-vmware/
If you’d like to know more about this MP, you can find the datasheet here: http://www.opslogix.com/wp-content/uploads/2014/08/VMware-MP-Datasheet-2016.pdf and the whitepaper here: http://www.opslogix.com/wp-content/uploads/2016/01/VMware-MP-White-Paper-2016.pdf
Over the last week or so, I’ve been busy creating Squared Up dashboards for various System Center 2012 components, which will be made publicly available through Squared Up’s new community site. While I was creating dashboards for some System Center components, I realised how little do the native MP from Microsoft offers (i.e. Orchestrator and Windows Azure Pack). Luckily, some awesome MP developers have recognised this and released additional MPs to fill the gaps. i.e
- Brian Wren’s (aka MP Author) Orchestrator Runbook Sample MP: https://gallery.technet.microsoft.com/Orchestrator-Runbook-90307b26
- Oskar Landman’s Windows Azure Pack (WAP) MP: https://gallery.technet.microsoft.com/SCOM-Management-Pack-3855607d
So in additional to creating Squared Up dashboards for the native System Center management packs, I have also created dashboards for above mentioned community MPs.
However, if you have used (or tried to use) Brian’s Orchestrator Runbook MP, you’d probably know the PowerShell scripts in the MP is not compatible with Windows Server 2012 R2 or PowerShell version 3 and later. The issue is raised in the Q and A section (in a function, you can not use return in try-catch-finally statement).
I have tried to implement this MP a while back at my previous job. Not only I tried to update the PowerShell scripts, in my opinion, I did not want to create another “Runbook Host” class (by creating few registry keys and values) for hosting runbooks. Therefore, I’ve made another update to this MP: I’ve removed “Runbbook Host” class, and configured the “Orchestrator Runbooks” objects to be hosted by the Orchestrator Management Server:
You can also see the hosting stack in Squared Up (the critical object on the top is the runbook, and the critical object at the bottom is the Windows Computer:
After I updated this MP (must be over a year ago), I’ve never bothered to publish it. Few weeks ago, my fellow SCCDM MVP Adin Ermie had a requirement for a fixed version. That’s when I realised I worked on it last year. When I gave Adin my version, he has also found out I fixed some scripts, but not all of them. So I updated it again, tested it myself today, and made sure the runbooks are correctly discovered and monitored.
If you have already imported the original MP in your management group, I am afraid my updated version will not be compatible for in place upgrade, because I have removed various elements from the original MP (class definition, discoveries, etc.), and I have also used another key to seal the MP. These changes made the updated MP not compatible for in-place upgrade. So, if you’d like to use my version, you will have to delete the original version from your management group first.
Configuring the Management Pack
From Brian’s original MP download, there is also a MP guide included. As stated in the original MP guide, you will need to create few registry keys and values for the Runbook Host as well as creating a Run As account that has access to the Orchestrator Web Service.
When using this updated MP, it is obvious that you do not need to create those registry keys and values anymore because the “Runbook Host” class has been removed. But you will still need to create this Run As account and assign it to the “Orchestrator Web Service Account” Run As Profile:
However, since I have removed the “Runbook Host” class, instead of distributing this Run As account to the health service hosting the “Runbook Host” class instance, you will need to distribute it to your Orchestrator management servers instead.
You may also want to monitor the “Monitor runbooks”. If this is the case, you will need to enable the “Runbook Running” monitor for the “MPAuthor Monitor Runbooks” group:
I have enabled this monitor in my lab, and the Squared Up dashboard I created ended up look like this:
Obviously, big thank-you would go to Brian Wren, for developing this MP and made the entire VSAE project available for everyone. I’d also like to thank my fellow SCCDM MVP Adin Ermie for testing it for me.
You can download my updated MP from the link below. Please feel free to contact me if you have any questions or issues.
Update: 09/09/2015: I found a small error in the demo MP provided at the end of this post, where one of the perf collection rules had an extra condition detection module (which prevents the real-time perf data to be sent to OMS). I have just updated the MP and the download link.
Yesterday, the OMS product team has announced the availability of the Near-Real Time (NRT) Performance Data Collection in OMS. My buddy and fellow SCCDM MVP Stanislav Zhelyazkov has already wrote an article on his blog: Operations Management Suite – Performance Monitoring.
I won’t repeat what’s already been discussed in these 2 posts, but I’ll tackle it from the management pack authoring perspective, and sharing what I have discovered so far.
Note: If you haven’t read above mentioned 2 posts, I strongly recommend you to do so before continuing with this article.
Management Pack Under The Hood
By default, OMS has 8 performance counters configured for near-real time perf collection. You can see them in the settings section of your workspace:
As explained in both the official blog post from the OMS product team as well as Stan’s blog, you can add additional perf counters on this page, and it will be pushed to the OpsMgr management groups that are connected to this OMS workspace. I am fairly certain, the sample interval range is between 10-1800 seconds (minimum 10 seconds, maximum 30 minutes).
All the counters configured on this page are stored in an Unsealed management pack called “Microsoft System Center Advisor Log Management Collection” in your OpsMgr management group.
If you export this MP and open it using MPViewer, you will see there are 2 rules for each counter:
These rules are collecting the raw real time perf data:
As the name suggested, these rules are collecting the 30-minute aggregated data (As stated in the official blog post, the raw data retention is 14 days and the 30-minute aggregated data retention is same as your OMS data plan).
After Examining these 2 rules closely, we can see the following:
01. Both rules are disabled by default
02. Both rules are not remoteable (won’t work for agentless machines)
03. Both rules are targeting the Windows Computer class (Microsoft.Windows.Computer)
04. Both Rules are using the same data source module with same input parameters (Microsoft.IntelligencePacks.Performance.DataProvider). This configuration enables OpsMgr agents to leverage the Cookdown feature to reduce the computer resource consumed by these rules.
05. Comparing with the raw data collection rule, the aggregation data collection rule has an additional condition detection module (which is used for data aggregation) and the aggregated data is submitted to OMS via a different write-action module (Microsoft.SystemCenter.CollectCloudPerformanceDataAggregated_PerfIP).
06. Since both rules are disabled by default, the MP also comes with overrides to enable these rules for the OMS managed computers:
Write Your own OMS Near-Real Time Perf Collection Rules
Now that we have discovered how are the near-real time perf data is collected in OpsMgr, I have spent some time today testing different rule configurations. Based on my own experience, my findings are:
01. Both raw data collection rule and aggregation data collection rule are required
Based on my testing, I found in order to submit near-real time perf data to OMS, I must create both raw data and aggregation data collection rules (as shown above). I tried with only one rule for the raw data, after few hours, I still couldn’t see the data in OMS. I then created another rule for the aggregation data, imported the updated MP in OpsMgr, after about 30 minutes, the data became visible from the search result.
02. Data source module “Microsoft.IntelligencePacks.Performance.DataProvider”
The rule must use the data source module “Microsoft.IntelligencePacks.Performance.DataProvider”, which is defined in management pack “Microsoft System Center Advisor Types Library” (Microsoft.IntelligencePacks.Types). This data source module consists of 2 member modules:
- Data Source: System.Performance.DataProvider
- Condition Detection: System.Performance.DataGenericMapper
I have tried to use System.Performance.DataProvider module directly in both raw and aggregation data collection rules, unfortunately this configuration does not seem to work. additionally, many 4502 events were logged in the Operations Manager log on the OpsMgr agent computer indicating the configuration for the aggregation data collection rule is incorrect.
03. The Rule target must be Windows Computer class (Microsoft.Windows.Computer).
Initially I have written few rules targeting SQL DB Engine class, waited few hours and I could only see the 30-minute aggregated data in OMS (collected by the aggregation collection rules). The data insertion is every 30 minutes and the perf graph could not be displayed in OMS (showed “No Data”). When I changed the target for both rules from SQL DB Engine to Windows Computer class, the raw data started to appear.
Having said that, I have also tried Windows Server Computer class (Microsoft.Windows.Server.Computer). This class is derived from Windows Computer class. This configuration also worked. So in my opinion, it is fair to guess the target class must be Windows Computer class or class that’s based on Windows Computer class.
Demo Management Pack “OMS Performance Demo MP”
I have created a MP during my experiments today. In the end, I have deleted all the rules that are not working in this MP and kept two sets rules for demonstration purpose:
- Set #1:
- Target: Microsoft.Windows.Computer
- Perf Counter: Processor(_Total)\% Privileged Time
- Set #2:
- Target: Microsoft.Windows.Server.Computer
- Perf Counter: SQLServer:Memory Manager(*)\Free Memory (KB)
You can download my demo MP from the link below:
This post is purely based on my own experiment, it may not be 100% accurate. Please use it with caution and test it in your test environment first!
I have just created 2 alert console tasks in OpsMgr for Squared Up:
- View Alert in Squared Up
- View Alert Source Object in Squared Up
These 2 tasks will open the selected alert and alert source object in Squared Up respectively using your default browser:
Squared Up Alert View:
Squared Up Monitoring Object view (Alert Source Object):
the management pack containing these 2 tasks can be downloaded at the end of this article. In order to use this MP, you will need to modify 2 lines:
You need to open the unsealed MP (xml) in a text editor (such as Notepad++), and modify line 29 and 38 (as shown above). Please replace “http://Your-SquaredUp-URL” with the Squared Up URL in your environment. i.e.
You can download this MP from the link below:
In OpsMgr, groups are frequently used when designing service level monitoring and dashboards. The group members’ health rollup behaviours can be configured by creating various dependency monitors targeting against the group.
When creating groups, only instance groups can be created within the OpsMgr console. Unlike computer groups, instance groups do not inherit any dependent monitors from their base class. Therefore when an instance group is created in the OpsMgr console, by default, the health state of the group is “Not monitored” (Uninitialized):
In order to configure group members to rollup health state to the group object (so the group can be used in dashboards), one or more dependency monitors must be created manually after the group has been created. This manual process can be time consuming.
Squared Up has recognised this issue, and many of their customers have also asked for a way to simplify the process of configuring health roll-up for the groups (so the groups can be used in Squared Up dashboards).
Squared Up has engaged me and asked me to develop an agent task to configure group health rollup and make it available to the broader OpsMgr community.
The “OpsMgr group health Rollup Configuration Task Management Pack” provides an agent task to create dependency monitors for the selected groups using OpsMgr SDK.
Management Pack Overview
In order for the OpsMgr operators to easily navigate to the groups, this management pack provides a state view for all groups (System.Group class):
Although a set of required parameters are pre-configured for the agent task, the operators can also modify these parameters using overrides.
The following parameters can be customized via overrides:
- Health Rollup Policy： Possible values: ‘BestOf’, ‘WorstOf’,’Percentage’.
- Worst state of the percentage in healthy state： Integer between 1 and 100. Only used when Algorithm is set to ‘Percentage’.
- Member Unavailable Rollup As： Possible Values: ‘Uninitialized’, ‘Success ‘, ‘Warning’ and ‘Error’
- Member in Maintenance Mode Rollup As： ‘Uninitialized’, ‘Success’, ‘Warning’ and ‘Error’
- Management Pack Name： The Management Pack name of which the monitors going to be saved. Only used when the group is defined in a sealed MP.’
- Increase Management Pack version by 0.0.0.1： Specify if the management pack version should be increased by 0.0.0.1.
NOTE: Please DO NOT select multiple instance groups at once.
After the task is executed against a group, 4 dependency monitors are created:
- Availability Dependency Monitor
- Configuration Dependency Monitor
- Performance Dependency Monitor
- Security Dependency Monitor
Natively in OpsMgr, only user accounts assigned either authors role or administrators role have access to create monitors. However, users with lower privileges (such as operators and advanced operators) can potentially execute this task and create dependency monitors.
Please keep this in mind when deploying this management pack. You may need to scope user roles accordingly to only allow appropriate users have access to this task.
Thanks Squared Up for making this management pack free to the community.
This management pack can be downloaded from the link below:
As I mentioned in previous blog posts, I will continue blogging on the topic of managing multiple OpsMgr management groups – a topic keeps getting brought up in the private conversations between us SCCDM MVPs.
Previously, I have written 2 posts demonstrated how to use Squared Up dashboard to access data from foreign management groups using their SQL and Iframe plugins. Now that I’ve covered the presentation layer (using Squared Up), I’d like to explore deeper in this subject.
I wanted to be able to synchronise the health state from a monitoring object managed by a remote management group into the local management group so it can be part of the health models users are building (i.e. be part of a Distributed Application, or simply a dashboard). I had this idea in my head for awhile now, over the last month or so, I finally managed to produce such a management pack that enables OpsMgr users to do so.
It is common to have multiple OpsMgr management groups in large organisations. When designing distributed application or creating custom dashboards, one of the limitations is that OpsMgr users can only select monitoring objects within the local management group to be a part of the Health Model. This becomes an issue when users want to design a Distributed Application or dashboard that include components monitored by different OpsMgr management groups.
The OpsMgr Health Synchronization Library management pack is designed to provide a workaround to this limitation. This management pack provides a template that enables OpsMgr users to create monitoring objects named “Health State Watcher” hosted by All Management Servers Resource Pool. Health State Watcher objects have monitors configured to query health state of monitoring objects located in a remote management group using OpsMgr SDK.
As shown in the diagram above, an instance of Health State Watcher can be created for each monitoring object of user’s choice from a remote management group. Each Health State Watcher object will periodically update its own health state based on the health state of the remote monitoring object it is watching for (every 5 minutes by default). As shown above, the Health State Watcher can query health state of any monitoring objects from remote management group (i.e. a Windows Computer object, a Distributed Application or any other types monitoring objects).
This management pack provides 4 unit monitors to the Health State Watcher class. They are used to query the health state of the Availability, Configuration, Performance and Security aggregate monitors of the remote monitoring object respectively.
Once the Health State Watcher objects are created and correctly configured, it can be used to display the health state of the remote monitoring object in a dashboard or distributed application hosted by the local management group.
How Do I Use this MP?
This management pack provides a management pack template for OpsMgr users to create the Health State Watcher instances from the OpsMgr operations console.
The following information must be provided when creating an instance using the management pack template:
- Display Name
- Description (Optional)
- Unsealed Management Pack (where the MP elements will be saved)
- One of the management servers from the remote management group
- Monitoring Object ID of the monitoring object from the remote management group
- Run-As account for SDK connection to the remote management group
Please follow the steps listed below to create a template instance.
1. Click the “Add Monitoring Wizard” from the Authoring pane under “Management Pack Template”
2. Choose “Cross Management Group Health State Monitoring” from the list
3. In General Property page, enter the display name, description and select an unsealed MP from the drop-down list:
4. In the Parameter Configuration Page, enter the following information:
- Management server from the remote management group
- Source Instance ID (monitoring object ID) of the monitoring object from the remote management group
Note: there are multiple ways to find the monitoring object ID in OpsMgr. Please refer to this article for possible ways to locate the ID: http://blog.tyang.org/2015/03/11/various-ways-to-find-the-id-of-a-monitoring-object-in-opsmgr/
- Select the Run-As account that was created prior to running this wizard.
Note: The Run-As account must meet the following requirements:
- It must have at least Operator access in the remote management group
- It must be distributed to all management servers
- It must have logon locally access on all management servers. – This is a general requirement for all Windows Run-As accounts in OpsMgr. Although it will never be used to logon locally on the management servers, without this right, the workflows that are using this Run-As account will not work.
5. Confirm all information is correct in the Summary page, and click on “Create”.
6. After few minutes, the health state of the Health State Watcher instance should be synchronized from the remote monitoring object:
Source monitoring object (from remote MG):
Sample Distributed Application
The diagram below demonstrates how to utilize the health state watcher in a Distributed Application:
In the demo environment, the 2 domain controllers (AD01 and AD02) are being monitored by a management group located in the On-Prem network. There is another domain controller located in Microsoft Azure IaaS, and it is being monitored by a separate management group in Azure. A Health State Watcher object was created previously to synchronize the health state of the Azure DC Windows computer health.
Sample Dashboard (Using Squared Up)
As shown above, on the left section, the Health State Watcher object for the Azure based domain controller is pinned on the correct location of a World Map dashboard. The health state of individual domain controllers are also listed on the right.
The workflows in this MP are actually pretty simple, but it has taken me A LOT of time to finish this MP. This is largely caused by the template UI interfaces. Unfortunately, I couldn’t find any official guides on how to build template UIs using C#. I’d like to thank my friend and fellow SCCDM MVP Daniele Grandini (blog, twitter) for testing and helping me debugging this MP when I hit the road block with the template UI interface.
Where can I download this management pack?
As I mentioned in my previous post, from now on, any new tools such as management packs, modules, scripts etc. will be released under TY Consulting and download links will be provided from it’s website www.tyconsulting.com.au.
You can download this MP for free from http://www.tyconsulting.com.au/products/, however, to help me promote and grow my business, I am asking you to provide your name, email and company name in a form and the download link will be emailed to you by the system.
Lastly, as always, any feedbacks are welcome. Please feel free to drop me an email if you have anything to share.