<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
	<title><![CDATA[Oskar Landman]]></title>
	<link><![CDATA[http://www.systemcentercentral.com/Community/Blogs/tabid/150/rss/1/userId/440/CategoryId/61/Default.aspx]]></link>
	<description></description>
	<language>en-us</language>
	<copyright><![CDATA[Copyright 2009 System Center Central All Rights Reserved.]]></copyright>
	<lastBuildDate>Sat, 04 Sep 2010 03:07:28 GMT</lastBuildDate>
		<item>
			<title><![CDATA[Blog: SCC Health Check Reports Management Pack V2 !]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73350/Default.aspx]]></link>
			<description><![CDATA[<p>This is the version 2 of the SCC Health Check Reports Management Pack released previous month. </p>
<p> <a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/69989/Default.aspx">OpsMgr Database Hygiene: SCC Health Check Reports Management Pack by Oskar Landman & Pete Zerger</a></p>
<p>This version is a follow up based on feedback on the first version.</p>
<p>Apart from more knowledge and links added we have also wrapped up almost twice the amount of reports in this version!</p>
<h2><span style="font-size: large">Version 2</span></h2>
<p>A quick review on all reports in this version: <img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" />New additions!</p>
<table border="0" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td width="428"><span style="font-size: larger"><strong>Report Name</strong></span></td>
            <td width="159"><span style="font-size: larger"><strong>Queries Database</strong></span></td>
        </tr>
        <tr>
            <td><strong>Agents - Agent Hotfix Report (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Agents - Agents Missing Hotfix Report (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Agents - Down Agents (OM)</strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Alerts - Alerts Closed by Specific User (DW)</strong></td>
            <td><strong>OperationsManagerDW</strong></td>
        </tr>
        <tr>
            <td><strong>Alerts - Alerts Closed by User [Count] (DW)</strong></td>
            <td><strong>OperationsManagerDW</strong></td>
        </tr>
        <tr>
            <td><strong>Alerts - Alerts Closed by UserID (DW)</strong></td>
            <td><strong>OperationsManagerDW</strong></td>
        </tr>
        <tr>
            <td><strong>Alerts - Number of Alerts per Day (OM)</strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Alerts - Top 20 Alerts By Alert Count (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Alerts - Top 20 Alerts By Repeat Count (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Config Churn - Discoveries Last 24 Hours (DW)</strong></td>
            <td><strong>OperationsManagerDW</strong></td>
        </tr>
        <tr>
            <td><strong>Config Churn - Modified Properties Details Last 24 Hours (DW)</strong></td>
            <td><strong>OperationsManagerDW</strong></td>
        </tr>
        <tr>
            <td><strong>Events - All Events Count By Last 7 Days (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Events - Most Common Events by Number and Publisher (OM)</strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Events - Top 20 Computers Generating the Most Events (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Misc - Groups Report (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Misc - Infrastructure Overview (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Misc - Management Packs (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Misc - Operational and Datawarehouse Usage Report (OM) - (DW)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>Both</strong></td>
        </tr>
        <tr>
            <td><strong>Misc - Outage and Maintenance Report (DW)</strong></td>
            <td><strong>OperationsManagerDW</strong></td>
        </tr>
        <tr>
            <td><strong>Misc - Run As Profiles (OM)</strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Performance - Performance Inserts Per Day (OM)</strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Performance - Top 20 Computers By Perf Count (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Performance - Top 20 Performance Insertions By Perf (OM)</strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>Performance - Top Performance Baseline Generating Rules (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>State - Noisiest Monitors (OM)</strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>State - Old State Changes Not Groomed (OM)<img alt="" src="http://www.systemcentercentral.com/Providers/HtmlEditorProviders/Fck/fckeditor/editor/images/smiley/msn/lightbulb.gif" /></strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
        <tr>
            <td><strong>State - State Changes Per Day (OM)</strong></td>
            <td><strong>OperationsManager</strong></td>
        </tr>
    </tbody>
</table>
<p>We have also changed the documentation a little because some people reported authentication problems when running the Ops DB reports.</p>
<h2><span style="font-size: large">Feedback</span></h2>
<p>Again the idea behind this MP is a real community MP. If you have feedback or additions please contact <a href="http://www.systemcentercentral.com/Community/tabid/119/controlType/ViewProfile/UserID/440/Default.aspx">Oskar Landman</a> or <a href="http://www.systemcentercentral.com/Community/tabid/119/controlType/ViewProfile/UserID/7/Default.aspx">Pete Zerger</a> and we are happy to add them to version 3! Of course your additions will be recognized by the community it the way of special credits!</p>
<p>The feedback can be in several ways of adding knowledge like links to good articles to fancy SQL queries to retrieve data out of the DB. Also if you feel we are missing crucial reports and don’t have the sql query to retrieve the data let us know we always  like a challenge ;-)</p>
<p>Besides this we have also received rules and monitors to monitor the health of your environment more closely. We are currently looking if we will fit this in version 3 or make an additional MP accompanied by the reporting MP.</p>
<h2><span style="font-size: large">Future</span></h2>
<p>The future of this MP will depend on the feedback and additions received. Although I can already tell you version 3 will be released and in here we will consolidate the reports to bring down the number of reports which will make it faster to check up on your environment! Because many of them are related.</p>
<h2><span style="font-size: large">Special Credits</span></h2>
<p>Special thanks to  <a href="http://blogs.technet.com/b/kevinholman/">Kevin Holman</a> for his great feedback and as a query resource ;-)</p>
<p>And of course <a href="http://www.systemcentercentral.com/Community/tabid/119/controlType/ViewProfile/UserID/7/Default.aspx">Pete Zerger</a> for his reports and query additions! <em><font size="1">Always fun and looking forward to version 3! maybe we can do this one in German ;-)</font></em></p>
<p> </p>
<p>The writers of this MP are not responsible for any problems derived from the MP although the MP has been tested on different installations and there are no known issues. There is always a possibility things are different in your environment so as always use the documentation and make sure that you know what you are doing.</p>
<p>The MP can be downloaded at the <a href="http://www.systemcentercentral.com/tabid/145/indexId/69990/Default.aspx">MP catalog</a>.</p>
<p>Have Fun and feel free to comment or send in your feedback!</p>]]></description>
			<pubDate>Thu, 15 Jul 2010 10:30:15 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73350/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: OpsMgr Database Hygiene : SCC Health Check Reports Management Pack by Oskar Landman &amp; Pete Zerger]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/69989/Default.aspx]]></link>
			<description><![CDATA[<p>Database Hygiene is greatly covered by Pete Zerger in his<a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/61060/Default.aspx">6 part series </a>on database hygiene. Why you should care and how it effects the functionality and performance of your (or your customers) SCOM environment.</p>
<p>Most of the times it comes down to running SQL queries directly on the databases to gather this information. After gathering the information you can retrieve the information widely spread on the Internet and start tuning over enthusiastic rules and monitors to keep your environment nice and tidy.</p>
<p>This Management Pack is written to make your life more easy!</p>
<hr />
<h2>The story behind the MP</h2>
<hr />
<p>When we first started talking about this MP the question “<em>Should we put it into the open?”</em> was one of the first questions we needed to answer.</p>
<p>Because reporting on data from the Ops DB is not supported by Microsoft. But with some effort you will soon find lots of queries to retrieve the data from the Ops DB by running queries directly on the Ops DB.</p>
<p>There are tons of them around on the internet and this MP may be a guidance on how you should use them in a need reporting format.</p>
<p>Pete and I started of with building some custom reports and use commonly used queries to retrieve the data, mostly derived from his series. Based on this I expanded the layout and settings to proper reports.</p>
<p>Next I started to gather some more useful queries from the famous blog by<a href="http://blogs.technet.com/b/kevinholman/archive/2007/10/18/useful-operations-manager-2007-sql-queries.aspx">Kevin Holman </a>which has a long list of really useful queries and postings on performance and tuning.</p>
<p>Now I wrapped up all queries we think are useful gave the reports a knowledge addition and added them to a Management pack called <strong>SCC Health Check Management Pack!!</strong></p>
<hr />
<h2>Community MP</h2>
<hr />
<p>The management pack is included with a small readme because you need to create a custom shared datasource to be able to connect to the Operational Database.The idea behind this Management Pack is it will be a community MP with ongoing development.</p>
<p>What does this mean?</p>
<p>Well as you know there are many articles written nowadays on SCOM and how to get it and keep it running smooth. The difficult part is most of the articles are scattered all over different blogs.</p>
<p>The idea behind this MP is to run the reports and read the knowledge accompanied by the report which should include a short description of the report and mostly important hyper links to articles explaining why the data is important and how you should interpret it.</p>
<p>The reports and knowledge links should be included in this MP by SCOM experts with their findings and real life recommendations!</p>
<p>Come to think of it this is one of the benefits for using management packs developed with the knowledge of experts in the first place!  ;-)</p>
<p>This is just the first version which has some knowledge but along the way we will extend the reports and knowledge based on your feedback!</p>
<hr />
<h2>Feedback</h2>
<hr />
<p>Because we want to have a real life community MP it is crucial for people to deliver their feedback and additions to this MP. All feedback will be reviewed by the authors Oskar Landman and Pete Zerger and if relevant will be added to the Next version of the SSC Health Check Management Pack. This way this MP can be a real benefit for running a smooth SCOM environment.</p>
<hr />
<h2>The SCC Health Check Management Pack</h2>
<hr />
<p>The MP contains 16 reports which are required to run on the Datawarehouse or the Operational Database. There is documentation accompanied how to set up the solution and import the MP.</p>
<p>Please <strong><u>first</u></strong> read the documentation otherwise the MP will fail…..as you already know as SCOM Experts ;-)</p>
<p>You need to create a custom Shared Datasource on your report sever to be able to run the reports on the Operational Database.</p>
<p>After creating the Shared Datasource on your reporting server you can add the Management Pack! Doing any sooner and the import of reports will fail! Which you should already know since as a SCOM expert you always read the documentation before adding any MP………….right???</p>
<p>Here are the reports currently in the MP:</p>
<table border="0" cellspacing="0" cellpadding="2" width="999">
    <tbody>
        <tr>
            <td valign="top" width="499"><strong><font size="4">Report Name</font></strong></td>
            <td valign="top" width="499"><strong><font size="4">Queries Database</font></strong></td>
        </tr>
        <tr>
            <td valign="top" width="499">Alerts Closed by UserID (DW)</td>
            <td valign="top" width="499">OperationsManagerDW</td>
        </tr>
        <tr>
            <td valign="top" width="499">Alerts Closed by Specific User (DW)</td>
            <td valign="top" width="499">OperationsManagerDW</td>
        </tr>
        <tr>
            <td valign="top" width="499">Alerts Closed by User [Count] (DW)</td>
            <td valign="top" width="499">OperationsManagerDW</td>
        </tr>
        <tr>
            <td valign="top" width="499">Discoveries Last 24 Hours (DW)</td>
            <td valign="top" width="499">OperationsManagerDW</td>
        </tr>
        <tr>
            <td valign="top" width="499">Modified Properties Details Last 24 Hours (DW)</td>
            <td valign="top" width="499">OperationsManagerDW</td>
        </tr>
        <tr>
            <td valign="top" width="499">Outage and Maintenance Report (DW)</td>
            <td valign="top" width="499">OperationsManagerDW</td>
        </tr>
        <tr>
            <td valign="top" width="499">Top 20 Largest Tables (DW)</td>
            <td valign="top" width="499">OperationsManagerDW</td>
        </tr>
        <tr>
            <td valign="top" width="499">Most Common Events by Number and Publisher (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
        <tr>
            <td valign="top" width="499">Down Agents (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
        <tr>
            <td valign="top" width="499">Noisiest Monitors (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
        <tr>
            <td valign="top" width="499">Number of Alerts per Day (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
        <tr>
            <td valign="top" width="499">Performance Inserts Per Day (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
        <tr>
            <td valign="top" width="499">Run As Profiles (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
        <tr>
            <td valign="top" width="499">State Changes Per Day (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
        <tr>
            <td valign="top" width="499">Top 20 Largest Tables (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
        <tr>
            <td valign="top" width="499">Top 20 Performance Insertions By Perf (OM)</td>
            <td valign="top" width="499">OperationsManager</td>
        </tr>
    </tbody>
</table>
<p>The writers of this MP are not responsible for any problems derived from the MP although the MP has been tested on different installations and there are no known issues. There is always a possibility things are different in your environment so as always use the documentation and make sure that you know what you are doing.</p>
<p>The MP can be downloaded at the <a href="http://www.systemcentercentral.com/tabid/145/indexId/69990/Default.aspx">MP catalog</a>.</p>
<p> </p>
<p>Have Fun and feel free to comment or send in your feedback!</p>]]></description>
			<pubDate>Tue, 22 Jun 2010 21:03:29 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/69989/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SNMP Setup and Simple Custom SNMP Discovery]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/66140/Default.aspx]]></link>
			<description><![CDATA[<p>Due to a question on the forum and many people are still struggling with setting up SNMP here a quick guide on the following SNMP issue’s:</p>
<p><em><strong>Basics</strong></em></p>
<p>How to Setup SNMP on both SCOM and the Network device or Windows Server.</p>
<p><em><strong>Authoring Console:</strong></em></p>
<p>How to create a custom class based on Network Device and how to discover it.</p>
<p>The example MP is attached at the bottom of this post.</p>
<hr />
<h2><span style="font-size: large"><em><strong>SNMP overall</strong></em></span></h2>
<hr />
<p>This part is where most of the problems start. Because of wrongly configured SNMP Settings the devices never get discovered in the first place.</p>
<p>First you need to make sure SNMP is setup correctly on both the SCOM Management server and the Windows Server or Device you want to discover. Without the correct setup we are not going to discover anything ;-)</p>
<p>First some details on SNMP:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_33.png"><img title="image" border="0" alt="image" align="left" width="760" height="337" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_11.png" /></a></p>
<p> </p>
<p><em><font size="2"><a href="http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol">Wikipedia</a> - SNMP operates in the </font></em><em><font size="2">Application Layer</font></em><em><font size="2"> of the </font></em><em><font size="2">Internet Protocol Suite</font></em><em><font size="2"> (</font></em><em><font size="2">Layer 7</font></em><em><font size="2"> of the </font></em><em><font size="2">OSI model</font></em><em><font size="2">). The SNMP agent receives requests on UDP port 161. The manager may send requests from any available source port to port 161 in the agent. The agent response will be sent back to the source port on the manager. The manager receives notifications (</font></em><em><font size="2">Traps</font></em><em><font size="2"> and </font></em><em><font size="2">Inform Requests</font></em><em><font size="2">) on port 162. The agent may generate notifications from any available port</font></em></p>
<p>Basically our SCOM management server will act as a SNMP Manager and our device is going to act as a SNMP agent.</p>
<p>SNMP in detail on <a href="http://technet.microsoft.com/en-us/library/bb726987.aspx">TechNet</a></p>
<p>SNMP on Windows 2003 from the <a href="http://support.microsoft.com/default.aspx/kb/324263?p=1">Knowledgebase</a></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>Maybe obvious but always make sure you can communicate by port UDP 161 and 162 between the SCOM Server and the Windows Server or Device. <hr />
</p>
<h2><span style="font-size: large"><strong>SNMP Setup SCOM Server</strong>  </span></h2>
<p><hr />
</p>
<p>For easy understanding we are going to use the example above.</p>
<p>On the SCOM Server <strong>SCOM2007.mydomain.local</strong></p>
<p>First we need to install / add the SNMP components to <strong>SCOM2007.mydomain.local</strong>.</p>
<table border="0" cellspacing="0" cellpadding="2" width="1126">
    <tbody>
        <tr>
            <td valign="top" width="249"><strong>Windows 2003 </strong></td>
            <td valign="top" width="249"> </td>
            <td valign="top" width="249"><strong>Windows 2008</strong></td>
            <td valign="top" width="377"> </td>
        </tr>
        <tr>
            <td valign="top" width="249"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_4.png"><img title="image" border="0" alt="image" align="left" width="244" height="198" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_1.png" /></a><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_6.png"><img title="image" border="0" alt="image" align="left" width="256" height="197" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_2.png" /></a></td>
            <td valign="top" width="249">Make sure you have access to the Windows 2003 Installation Source. (i386)</td>
            <td valign="top" width="249"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_18.png"><img title="image" border="0" alt="image" width="244" height="244" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_8.png" /></a></td>
            <td valign="top" width="377">To install SNMP on Windows 2008 you will need to use server manager and add the SNMP Service feature.</td>
        </tr>
    </tbody>
</table>
<p>After the installation you will have the following services on the SCOM Server:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_8.png"><img title="image" border="0" alt="image" width="408" height="93" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_3.png" /></a></p>
<p>You can leave the default settings.</p>
<hr />
<h2><span style="font-size: large"><strong>SNMP Managed Devices</strong></span></h2>
<hr />
<p><em><strong>Network Device / other SNMP Device </strong></em></p>
<p>When you want to add a network device you will also need to configure SNMP on the Device. How to do this will differ by device, most of the times you can find help on changing these settings in the manual of your device.</p>
<p>When you know how to you will simply need to add the SCOM Server, <strong>SCOM2007.mydomain.local</strong> or <strong>10.10.10.10</strong> and its community name <strong>scomtestsnmp</strong> on the device to be able to discover it by the use of SNMP.</p>
<p><em><strong>*****TIP!</strong> <font size="1">Always make sure you know the version of SNMP your device is using. SCOM 2007 R2 Supports both SNMPv1 and SNMPv2. SNMPv3 is <strong><u>not supported </u></strong>in the current version we will have to wait until VNext. When running a Network Device discovery you need to specify the SNMP Version make sure you use the correct one otherwise discovery will fail.</font></em></p>
<p> </p>
<p><em><strong>Windows Server by SNMP </strong></em></p>
<p><strong>Win2003.mydomain.local</strong> or <strong>10.10.10.30</strong></p>
<p>(Settings apply to both Windows 2003 as well as Windows 2008.)</p>
<p><em><strong>*****TIP!</strong> <font size="1">When using 2008 always make sure the Windows Firewall has exceptions for SNMP Traffic.</font></em>  </p>
<p> </p>
<p>When you want to add a windows server to your SCOM environment by the use of SNMP. You should also install the SNMP Service like we did at the SCOM server.</p>
<p>After the Installation You need to Adjust the SNMP Settings to allow the SCOM Server,<strong>SCOM2007.mydomain.local,</strong> to communicate with the Windows Server,<strong>Win2003.mydomain.local</strong>.</p>
<p> </p>
<p>Simply navigate to the SNMP Service run—>Services.msc\SNMP Service</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_16.png"><img title="image" border="0" alt="image" align="left" width="286" height="322" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_7.png" /></a></p>
<p> </p>
<p> </p>
<p>Select the properties and navigate to the Security tab and add the SCOM Server IP Address or Hostname and add the Community name you want to use.</p>
<p>In our Example we are going to use:</p>
<p>Community String <strong>scomtestsnmp</strong></p>
<p>SCOM Server IP is <strong>10.10.10.10</strong> or hostname <strong>SCOM2007.mydomain.local</strong></p>
<p>Configuring these settings on the Windows server you want to discover by SNMP, <strong>Win2003.mydomain.local,</strong> allows the SCOM Server to talk SNMP to the Windows 2003 Server ! Without these settings the windows server will never be discovered as a SNMP Device…..</p>
<p> </p>
<p> </p>
<p> </p>
<p>If you followed the above procedures you should be able to now discover your SNMP enabled devices. When discovering these devices you are able to use the basic monitoring rules default to SCOM to monitor your device.</p>
<p>Next we are going to use the authoring console to configure a custom class and how we can discover the class and any additional properties.</p>
<p>Like stated this one is based on a forum post / question. Therefore I will use the same Management Pack and approach.</p>
<p>The approach was to discover an Application running on Windows 2003 that uses it’s own MIB.</p>
<p>Because monitoring requires to send SNMP get requests to check for a state <hr />
</p>
<h2><span style="font-size: large"><strong>Create Management Pack</strong></span></h2>
<p><hr />
</p>
<p>Create a Empty management pack named: <strong><em>XYZ.Management.Pack </em></strong></p>
<p>On the properties tab of the management pack make sure you have the correct mp references:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_35.png"><img title="image" border="0" alt="image" width="244" height="99" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_15.png" /></a></p>
<p>If they are not present please add them.</p>
<p>Create a class named MyApp - <strong><em>XYZ.Management.Pack.Class.MyApp</em></strong> set the base class to be <strong><em>Microsoft.SystemCenter.NetworkDevice</em></strong>.</p>
<p>Because the Base class is <strong><em>Microsoft.SystemCenter.NetworkDevice</em></strong> it will automatically inherit al the Network Device properties.</p>
<p>Add a new property called Version to the class and don’t forget the displayname ;-)</p>
<p>  <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image1.png"><img title="image" border="0" alt="image" width="277" height="277" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image1_thumb.png" /></a> <hr />
</p>
<h2><span style="font-size: large"><strong>Create the Datasource for the Discovery </strong></span></h2>
<p><hr />
</p>
<p>Create a Datasource named <strong><em>XYZ.Management.Pack.DataSource.Discovery.MyApp</em></strong></p>
<table border="0" cellspacing="0" cellpadding="2" width="1069">
    <tbody>
        <tr>
            <td valign="top" width="346"><strong><u>Member Modules</u></strong></td>
            <td valign="top" width="347"> </td>
            <td valign="top" width="368"> </td>
            <td valign="top" width="6"><strong><u>ConfigurationSchema</u></strong></td>
        </tr>
        <tr>
            <td valign="top" width="346">Scheduler – <strong><em>System.Discovery.Scheduler</em></strong></td>
            <td valign="top" width="347">SNMPGetProbe – <strong><em>System.SNMPProbe</em></strong></td>
            <td valign="top" width="368">Mapper – <strong><em>System.Discovery.ClassSnapshotDataMapper</em></strong></td>
            <td valign="top" width="6"> </td>
        </tr>
        <tr>
            <td valign="top" width="346"><img alt="" style="width: 368px; height: 310px" src="http://www.systemcentercentral.com/Portals/0/blog-images/pic1.png" /></td>
            <td valign="top" width="347"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image7.png"><img title="image" border="0" alt="image" width="341" height="309" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image7_thumb.png" /></a></td>
            <td valign="top" width="368"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image10.png"><img title="image" border="0" alt="image" width="362" height="307" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image10_thumb.png" /></a></td>
            <td valign="top" width="6"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_20.png"><img title="image" border="0" alt="image" width="351" height="308" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_6.png" /></a></td>
        </tr>
    </tbody>
</table>
<p>How the datasource works:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_26.png"><img title="image" border="0" alt="image" width="926" height="376" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_12.png" /></a></p>
<p>If you want to discover more properties you can add them to the SNMPprobe Module.</p>
<p>The easiest way is to copy the XML and change the OID you want to query.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_37.png"><img title="image" border="0" alt="image" width="444" height="230" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_16.png" /></a></p>
<p>The ISwriteAction will always be false since we wan to do a SNMP get and not a SET!</p>
<p><hr />
</p>
<h2><span style="font-size: large"> <strong>Create Discovery Rule</strong></span></h2>
<hr />
<p>Create a Custom discovery Rule called <em><strong>XYZ.Management.Pack.Discovery.MyApp</strong></em></p>
<p>Target the discovery at <em><strong>Microsoft.SystemCenter.NetworkDevice</strong></em></p>
<p>For Discovered Classes select the MyApp Class - <em><strong>XYZ.Management.Pack.Class.MyApp</strong></em></p>
<p>At the configuration tab you need to browse for the datasource, <em><strong>XYZ.Management.Pack.DataSource.Discovery.MyApp</strong></em>, you just created and select it.</p>
<table border="0" cellspacing="0" cellpadding="2" width="1267">
    <tbody>
        <tr>
            <td valign="top" width="460"> </td>
            <td valign="top" width="805"> </td>
        </tr>
        <tr>
            <td valign="top" width="460"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_31.png"><img title="image" border="0" alt="image" width="450" height="389" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index66140/WLW-SimpleSNMPDiscoveryandMonitor_BB84-image_thumb_10.png" /></a></td>
            <td valign="top" width="805">Next you need to add the variables we declared in the datasource.<br />
            <br />
            <strong><font size="4"><font size="2">Interval</font> </font></strong>- Remember the interval is in seconds 86400 = 1 day so the discovery runs daily.<br />
            <strong><font size="2">IP</font></strong> - Because we set the target to <strong><em>Microsoft.SystemCenter.NetworkDevice</em></strong> we can simply use it’s properties. Use the arrow to select the IP property of a Network device.<br />
            <strong><font size="2">CommunityString</font></strong> - Use the arrow to select CommunityString from the target property Network Device.<br />
            <br />
            <em><strong>*****TIP!</strong></em> <font size="1"><em>Remember to first delete any values present in the Value box, like IP,Community string when selecting the arrow next to the box. Otherwise the value selected will be just added and you will get something like CommunityString$Target/Property[Type="NetLib!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$ instead of $Target/Property[Type="NetLib!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</em></font></td>
        </tr>
    </tbody>
</table>
<p><hr />
</p>
<h2><span style="font-size: large"> <strong>Create Monitors / Rules links</strong></span></h2>
<hr />
<p>After discovering our custom class for the application we are now able to create rules and monitors target to the class.</p>
<p>Since the creation of rules and monitors really depend on How you want to monitor your application or device here are links from basic to advanced on how to setup monitoring.</p>
<p>System Center Central</p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/13020/Default.aspx">SNMP Series</a> by Pete Zerger</p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/indexid/19277/Default.aspx">SNMP Support of Devices</a> by Pete Zerger</p>
<p><a href="http://www.systemcentercentral.com/Details/tabid/147/IndexID/58815/Default.aspx">SNMP Probe Based Monitors</a> by David Allen</p>
<p><a href="http://www.systemcentercentral.com/Downloads/DownloadsDetails/tabid/144/IndexID/9740/Default.aspx">SNMP Device simulator</a> by Jalasoft</p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/58919/Default.aspx">SNMP Management Pack Example</a> - NetApp by Oskar Landman</p>
<p>Other</p>
<p><a href="http://www.systemcentercentral.com/ http://operatingquadrant.com/">SNMP Monitoring</a> by Kris Bash -  <a title="http://operatingquadrant.com/" href="http://operatingquadrant.com/">http://operatingquadrant.com/</a></p>
<p>Microsoft</p>
<p><a href="http://technet.microsoft.com/en-us/library/bb309453.aspx">How to create a SNMP Probe-Based Unit Monitor</a> in Operations manager 2007</p>
<p><a href="http://technet.microsoft.com/en-us/library/bb381355.aspx">How to Create a Monitor for SNMP Traps</a> in Operations manager 2007</p>
<p><a href="http://technet.microsoft.com/en-us/library/bb309507.aspx">How to Create a SNMP Performance Collection Rule</a> in Operations manager 2007</p>
<p><a href="http://technet.microsoft.com/en-us/library/bb381242.aspx">How to Create a SNMP Trap Event Collection rule</a> in Operations Manager 2007</p>
<p><a href="http://technet.microsoft.com/en-us/library/bb381344.aspx">How to Create a SNMP Event Collection Rule</a> in Operations Manager 2007</p>
<p><a href="http://technet.microsoft.com/en-us/library/bb381296.aspx">How to Create an Alert-Generating SNMP-Trap-Based Rule</a> in Operations manager 2007</p>]]></description>
			<enclosure url="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/66140/Default.aspx" length="1301" type="application/xml"></enclosure>
			<pubDate>Mon, 10 May 2010 11:46:40 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/66140/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: Creating a Custom Report for SCOM 2007 R2 with SQL 2008 reporting in Microsoft Visual Studio 2008]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60805/Default.aspx]]></link>
			<description><![CDATA[<p>Most of the times we can rely on the more general reporting features delivered with SCOM 2007 R2 for reporting purposes. But when you want to design a really nice looking report which is much easier to generate and target you need to dive into report designer or even the even more flexible Visual Studio which.</p>
<p>Although the approaches may be the same for most steps in Visual Studio 2008 the reports created in Visual Studio are NOT backwards compatible with Sql Reporting Services 2005. Reports designed with visual studio 2008 can only be used if you are running SQL 2008 reporting services! So for SQL reporting 2005 you should visual studio 2005 instead!</p>
<p>Wouldn’t it be nice to design your own reports with nice looking bars or graphs with your company logo on it ?</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-test_2.jpg"><img title="test" border="0" alt="test" width="702" height="528" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-test_thumb.jpg" /></a></p>
<p> </p>
<hr />
<p><strong><u>Requirements before starting are:</u></strong></p>
<ul>
    <li>Visual Studio 2008 which is delivered with SQL 2008</li>
    <li>Authoring Console</li>
    <li>Feeling really artistic!</li>
</ul>
<p> </p>
<p>Before we start with opening the Visual Studio console you will first need to determine which counters you want to generate the report on.</p>
<p>The example will create a custom report for reporting on logicaldisk space. Since this is one of the most asked for and is missing from the default reports.</p>
<hr />
<h2><span style="font-size: large">Counter(s) of interest</span></h2>
<p><hr />
</p>
<p> </p>
<p>We are going to start with % Free Space. <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_4.png"><img title="image" border="0" alt="image" align="right" width="889" height="214" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_1.png" /></a></p>
<p>This is the information we need to know to be able to collect the counters:</p>
<p><strong>Counter : % Free Space</strong></p>
<p><strong>Object: LogicalDisk</strong></p>
<p>The other ones are also of interest but to start with we need to know the object and counter to be able to setup a dataset to retrieve the information from the Datawarehouse.</p>
<p> </p>
<p> </p>
<hr />
<h2><span style="font-size: large">The begin</span></h2>
<hr />
<p>Open visual studio and follow the steps below to start a new project in which we are going to create the report for disk space.</p>
<table border="1" cellspacing="0" cellpadding="2" width="1428">
    <tbody>
        <tr>
            <td valign="top" width="376"><font size="1">Go to new and start a new project.<br />
            Select a Report Server Project and give it a Name.<br />
            <br />
            </font></td>
            <td valign="top" width="111"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_2.png"><img title="image" border="0" alt="image" width="455" height="327" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb.png" /></a></td>
            <td valign="top" width="448"><font size="1">After Creating the project we are going to create a report within this project.<br />
            Navigate to Solution Explorer on the right side of the screen. </font><font size="1"><em>(if not shown go to view and select Solution Explorer)<br />
            </em>Right Click on Reports and select Add New Item…<br />
            </font></td>
            <td valign="top" width="491"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image38.png"><img title="image" border="0" alt="image" width="533" height="327" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image38_thumb.png" /></a></td>
        </tr>
        <tr>
            <td valign="top" width="376"><font size="1">Select Report and give it a Friendly Name and click Add.</font></td>
            <td valign="top" width="111"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image18.png"><img title="image" border="0" alt="image" width="456" height="277" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image18_thumb.png" /></a></td>
            <td valign="top" width="448"><font size="1">Now we have a report in our project.<br />
            Next we are going to add an Item to the report.<br />
            As stated in the design surface you can add one by using the toolbox on the right or you can right click and select insert.</font></td>
            <td valign="top" width="491"><img alt="" style="width: 532px; height: 274px" src="http://www.systemcentercentral.com/Portals/0/blog-images/screen5.jpg" /></td>
        </tr>
        <tr>
            <td valign="top" width="376"><font size="1">When you right click and select insert you have the following options you can select.<br />
            For our example we are going to select a Matrix.</font></td>
            <td valign="top" width="111"><a href="http://www.systemcentercentral.com/file:///D:/wwwroot/SCC/Portals/0/VivoIndexItem/Index0/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_10.png"><font color="#000000" size="1"><img title="image" border="0" alt="image" width="319" height="297" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_4.png" /></font></a></td>
            <td valign="top" width="448"><font size="1">When the Matrix is selected we need to define a dataset. This is going to be the query we are going to use to query the OperationsManagerDW.<br />
            Give it a friendly name and select New next to Datasource.</font></td>
            <td valign="top" width="491"><a href="http://www.systemcentercentral.com/file:///D:/wwwroot/SCC/Portals/0/VivoIndexItem/Index0/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_16.png"><font color="#000000" size="1"><img title="image" border="0" alt="image" width="385" height="299" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_7.png" /></font></a></td>
        </tr>
        <tr>
            <td valign="top" width="376"><font size="1">The Datasource is the Shared datasource the Reporting server uses to connect to the OperationsManagerDW. The Name is “Data Warehouse Main” Unfortunately Visual studio 2008 doesn’t support datasource names with spaces… so we fill in “DataWarehouseMain” instead. We change this afterwards.<br />
            Next connection string, simply edit browse your sql server for the OperationsManagerDW.<br />
            <em>The connection string to you data warehouse is used to test our reports directly from visual studio.</em></font></td>
            <td valign="top" width="111"><a href="http://www.systemcentercentral.com/file:///D:/wwwroot/SCC/Portals/0/VivoIndexItem/Index0/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_6.png"><font color="#000000" size="1"><img title="image" border="0" alt="image" width="393" height="288" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_2.png" /></font></a></td>
            <td valign="top" width="448"><font size="1">After Setting up the datasource we can add the query we are going to use.<br />
            For ease click Query Designer…<br />
            The Query Designer will open and you need to add your query in the box with SELECT FROM</font><br />
             </td>
            <td valign="top" width="491"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_18.png"><img title="image" border="0" alt="image" width="391" height="291" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_8.png" /></a></td>
        </tr>
    </tbody>
</table>
<hr />
<h2><span style="font-size: large">Main Dataset Query</span></h2>
<hr />
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_42.png"><img title="image" border="0" alt="image" align="left" width="1017" height="316" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_20.png" /></a></p>
<p><font size="1">This is the query we are going to use. The SELECT and FROM part are for collecting the data from the Perf.vPerfDaily view which is the view for Daily data from the OperationsmanagerDW.</font></p>
<p><font size="1"><strong><em><u>TIP!</u> If you change vPerfDaily to vPerfHourly you will retrieve the data per hour!</em></strong></font></p>
<p><font size="1">The WHERE part is the part we are filtering the data on. Notice we are going to filter on date @Start_Date and @End_Date which will be the parameters we are going to define. This way we can tell from which date to which date we want to run the report on.</font></p>
<p><font size="1">The data is filtered on LogicalDisk which will only retrieve Data from the Object Logicaldisk.</font></p>
<p><font size="1">Last we are also filtering on @ServerName which will also be a Parameter we are going to declare for the servername we want to retrieve the data.</font></p>
<p><font size="1"> </font></p>
<p><font size="1">Lastly the data is ORDER BY date. This way the data is retrieved in a chronological way.</font></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<table border="1" cellspacing="0" cellpadding="2" width="1418">
    <tbody>
        <tr>
            <td valign="top" width="548"><font size="1">Well after pasting in the query you can run it by pressing “<font color="#800040"><strong>!</strong></font>”.<br />
            It will ask for the parameters fill in a start date / end date and server name (FQDN).<br />
            The query designer now shows the data and how it collected the data by joining the tables.<br />
            <br />
            <em><strong>How cool is that and you are starting to look like a developer now already with this cool code and models ;-)</strong><br />
            <br />
            </em><font size="1">After looking over your result. You will notice we are retrieving more data then we are actually going to use in this example. No worries you will probably have enough inspiration after designing the report to use the other data as well!<br />
            <br />
            <strong><em><font size="1">When you are done looking at your developer like screen you can click ok and save your dataset settings.</font> <br />
            </em></strong></font></font></td>
            <td valign="top" width="10"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_26.png"><img title="image" border="0" alt="image" width="466" height="283" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_12.png" /></a></td>
            <td valign="top" width="389"><font size="1">We are going to create 1 more dataset and after that declare the parameters.<br />
            First the Dataset, let’s call it DataSet_Servers<br />
            Use the following query:<br />
            </font>
            <p><em><font color="#000080" size="1"><strong>Select DISTINCT vManagedEntity.Path<br />
            FROM Perf.vPerfDaily AS vPerf INNER JOIN<br />
            vPerformanceRuleInstance ON vPerformanceRuleInstance.PerformanceRuleInstanceRowId = vPerf.PerformanceRuleInstanceRowId INNER JOIN<br />
            vManagedEntity ON vPerf.ManagedEntityRowId = vManagedEntity.ManagedEntityRowId INNER JOIN<br />
            vPerformanceRule ON vPerformanceRuleInstance.RuleRowId = vPerformanceRule.RuleRowId<br />
            Where ObjectName = 'logicaldisk'</strong></font></em></p>
            <font size="1">This query retrieves all Server Objects to report on.</font><br />
            <br />
             </td>
            <td valign="top" width="469"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image17.png"><img title="image" border="0" alt="image" width="174" height="309" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image17_thumb.png" /></a></td>
        </tr>
        <tr>
            <td valign="top" width="548"><font size="1">Declaring the parameters in the last thing before we can start with designing the report.<br />
            These are our parameters:<br />
            </font><font size="1"><em><strong><font color="#000080">@Start_Date<br />
            @End_Date<br />
            @ServerName</font></strong></em><br />
            Go to parameters and go their properties.<br />
            <br />
            </font></td>
            <td valign="top" width="10"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image17_1.png"><img title="image" border="0" alt="image" width="176" height="313" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image17_thumb_1.png" /></a> </td>
            <td valign="top" width="389"><font size="1">At the parameters properties for @End_Date set the data type to <strong>Date/Time</strong> on the general tab. Next Default Values tab and select <strong>Specify values</strong>. </font><font size="1"><em>This will set the default values for the parameters when opening the report.<br />
            </em>For Value click the Function button <strong>(fx)</strong> and now you are in the expression designer. Go to<strong> Common Functions\Date & Time\ and select today</strong> <em>(double click). <br />
            <br />
            <strong><u>TIP!</u>Also there are examples how to use this function.You can select each to find what it is used for!<br />
            </strong><br />
            </em>Function for End_Date which should be today </font><font size="1"><strong><font color="#000080"><em>=Today()</em></font><br />
            </strong><br />
            Do the same for @Start_Date with function </font><font color="#000080"><em><strong><font size="1">=DateAdd("d",-7,Today())<br />
            </font></strong></em><font color="#000000" size="1"><br />
            Finally the @Servers at the General Tab select <strong>Multiple values</strong>.Next open the Available values tab and select <strong>Get Values from Query.</strong> <br />
            Fill the Dataset we created DataSet_Servers and fill in both Value field and Label field with Path. Simple use the selection to select the dataset and the values.<br />
            </font></font></td>
            <td valign="top" width="469"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image35.png"><img title="image" border="0" alt="image" width="288" height="262" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image35_thumb.png" /></a></td>
        </tr>
        <tr>
            <td valign="top" width="548"><font size="1">Now we can start with the design drag and drop the values from the report data pane onto the Matrix like on the right.<br />
            You can now run a test report to check which results you get.<br />
            </font></td>
            <td valign="top" width="10"><a href="http://www.systemcentercentral.com/file:///D:/wwwroot/SCC/Portals/0/VivoIndexItem/Index0/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_30.png"><font color="#000000" size="1"><img title="image" border="0" alt="image" width="470" height="241" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_14.png" /></font></a></td>
            <td valign="top" width="389"><font size="1">When you did test the report you noticed there where many counters and data. <br />
            First we going to filter the results since we are interested in the <strong>% Free Space</strong> for this example.<br />
            To filter the results we need to change the Column Group Countername.<br />
            Open the group selecting the column and go to the group properties.<br />
            Now navigate to Filters. Here we are going to filter our results.<br />
            Click Add to add a filter and in expression select<strong> [CounterName]</strong> use the <strong>=</strong> sign as Operator and fill in <strong>% Free Space.<br />
            </strong>Select Ok and run the report again to check the results. running the report will tell you how the data is presented and give you a quick solution to be able to visualize what you are actually doing.<strong><br />
            <br />
            <font size="1">After Adding the filter we have narrowed the results down to only % Free Space. Except now the result is calculated all results together.</font></strong></font></td>
            <td valign="top" width="469"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_44.png"><img title="image" border="0" alt="image" width="293" height="241" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_21.png" /></a></td>
        </tr>
        <tr>
            <td valign="top" width="548"><br />
            <font size="1">We need to change the results to 1 value which makes sense and probably the most up-to-date one.<br />
            Select the cell and right click to open the FX Expression designer again.</font><font size="1"><em> Almost every value in the report has a possibility to add expressions! This makes it very flexible!<br />
            Now change the expression to the following:<br />
            </em></font><font color="#000080"><font size="1"><em><strong>=Round(Last(Fields!AverageValue.Value))<br />
            <br />
            </strong></em><font color="#000000"><em><strong>The Round function is used to round the number so it’s easier to read instead of a PI like number ;-)<br />
            <br />
            </strong></em>The Last function is used to only retrieve the last value. Which is today because we ordered the query on Date we now this is the last number!</font></font></font></td>
            <td valign="top" width="10"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_46.png"><img title="image" border="0" alt="image" width="294" height="269" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_22.png" /></a></td>
            <td valign="top" width="389"><font size="1">The result should now look something like the right picture. By adding the filter on the Countername we only see the counter % Free Space.<br />
            And by adding the expression in the details part<br />
            </font><font size="1"><font color="#000080"><strong><em>=Round(Last(Fields!AverageValue.Value))</em></strong></font><font color="#000000"> we have the results shown.<br />
            The screen is just from a test environment and the results are probably different but the basics should look the same.<br />
            Computer \ Instances running on the computer and free space.<br />
            The next steps will draw the graph in a more nicer way.</font></font></td>
            <td valign="top" width="469"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_48.png"><img title="image" border="0" alt="image" width="244" height="127" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_23.png" /></a></td>
        </tr>
    </tbody>
</table>
<p><hr />
</p>
<h2><span style="font-size: large">The Designing Part</span></h2>
<p> </p>
<hr />
<p>The designing part really depends on your personal favor but I will show you how you can make your report look more sharp in a couple of minutes.</p>
<p> </p>
<table border="1" cellspacing="0" cellpadding="2" width="1423">
    <tbody>
        <tr>
            <td valign="top" width="249"><font size="1">Let’s add some more to the report.<br />
            Open the toolbox and drag and drop a Gauge onto the drawing area.<br />
            <br />
            <strong><em>Wow aren’t those meters looking sharp!</em> </strong><br />
            <br />
            Select the one you want to use and ok.<br />
            The meter will be pasted into your design as a new object.<br />
            Simply drag and drop your new meter object into your matrix and let it go in the cell with <font color="#000080"><font size="1"><strong><em>=Round(Last(Fields!AverageValue.Value))<br />
            </em></strong></font></font>.<br />
            </font></td>
            <td valign="top" width="474"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_28.png"><img title="image" border="0" alt="image" width="384" height="344" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_13.png" /></a></td>
            <td valign="top" width="316"><font size="1">First let’s go to report properties to check and maybe change the page settings of the report.<br />
            The values given here you should pay close attention since when designing you should always make sure you stay within these boundaries. Especially when you want the report to be converted to like.pdf.<br />
            When you go over the settings the graph will expand multiple pages which isn’t always nice looking.</font><br />
            <font size="1">If you look at the default values here you will notice the width is 8.5 and margins both right and left 1 in this makes your drawing area 6.5 same goes for the height of your page which would be 9.<br />
            <br />
            Make sure your designing area is within 6.5 and 9!<br />
            Simply click on your designing area and go to it’s properties if no properties are shown on the left of the screen click F4 to make them appear. Now change your design area to 6.5 by 9. This way you are always sure you are editing within the page limit!<br />
            <em><strong><br />
            <u>TIP!</u> When you get blank pages it is most of the times because these boundaries are not set correctly!</strong></em></font></td>
            <td valign="top" width="382"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_34.png"><img title="image" border="0" alt="image" width="439" height="340" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_16.png" /></a></td>
        </tr>
        <tr>
            <td valign="top" width="249"><font size="1">The matrix should now look something similar. you can expand the matrix now from one point of your designing area to the other and make the gauge more visible.<br />
            You can select the different objects which make up the gauge graph. The important one is the bar as shown. For both pointers add the expression<br />
            </font><font color="#000080"><font size="1"><strong><em>=Round(Last(Fields!AverageValue.Value))<br />
            </em></strong><font color="#000000">This will show the %free space collected value but now on the bar!!<br />
            <strong><em><br />
            <u>TIP!</u> when designing the bar first make it look like you want and after this you can edit the size. This makes navigation easier ;-)</em></strong></font></font></font></td>
            <td valign="top" width="474"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_38.png"><img title="image" border="0" alt="image" width="404" height="229" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_18.png" /></a></td>
            <td valign="top" width="316"><font size="1"><em><strong>After playing around endlessly with colors and settings let’s continue we have a report to make  ;-)<br />
            </strong></em></font><br />
            <font size="1">Let’s make a page header and footer to hold extra information like title company logo execution time etc.<br />
            Right click on your design area to add a page header and footer.Here you can add a text box or image.<br />
            In the text box you can also add expressions! Or drag and drop report properties to the text box.<br />
            This way you can display logos, a title, creation date, etc.of the report.<br />
            Save your report as .rdl file and open the SCOM Authoring Console.<br />
            </font></td>
            <td valign="top" width="382"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_50.png"><img title="image" border="0" alt="image" width="445" height="201" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_24.png" /></a></td>
        </tr>
        <tr>
            <td valign="top" width="249"><font size="1">Create a new Management pack and go to the reporting tap. Create a new report and give it a name.<br />
            Next go to the Definition tab and select “<strong>Load content from file</strong>”<br />
            Navigate to the .rdl file and import it.<br />
            </font></td>
            <td valign="top" width="474"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_52.png"><img title="image" border="0" alt="image" width="401" height="268" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_25.png" /></a></td>
            <td valign="top" width="316"><font size="1">Now you will see the xml version of your report in the authoring console.<br />
            First remove the first line</font><br />
            <font color="#000080"><font size="1"><em><strong><?xml version="1.0" encoding="utf-8"?><br />
            </strong></em><font color="#000000">After removing this line we need to correct the datasource setting.<br />
            Remove the connection settings</font><em><strong> </strong></em></font></font>
            <p><em><strong><font color="#000080" size="1"><ConnectString>Data Source=.;Initial Catalog=OperationsManagerDW</ConnectString><br />
                    <IntegratedSecurity>true</IntegratedSecurity><br />
                  </ConnectionProperties></font></strong></em></p>
            <p><font color="#000080"><font size="1"><font color="#000000">And add after </font></font></font><font color="#000080"><font size="1"><em><strong></rd:DataSourceID></strong></em></font> </font><font color="#000080"><font size="1"><font color="#000000">the following </font><DataSourceReference>Data Warehouse Main</DataSourceReference>.</font></font></p>
            <p><font size="1"><strong><em><u>TIP! </u>Don’t forget to change the options tab the visible setting to True otherwise no report will be shown!!!</em></strong></font></p>
            <p><font size="1">Now you can save your report in the management pack. And after this you can import the management pack in your environment.</font></p>
            <p> </p>
            <p> </p>
            </td>
            <td valign="top" width="382"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_54.png"><img title="image" border="0" alt="image" width="306" height="310" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60805/WLW-CreatingaCustomReportforSCOM2007R2inMicr_4C0-image_thumb_26.png" /></a></td>
        </tr>
    </tbody>
</table>
<hr />
<h2><span style="font-size: large">Result</span></h2>
<hr />
<p>This post described how to create a report for SQL 2008 reporting with visual studio 2008. Although it takes some time to get the graphical results you want you can now create a custom report.</p>
<p>This report is a simple example of how to create reports using visual studio 2008. I know there are more and possible better solutions and queries to get results but this is for another post ;-)</p>
<p> </p>
<p> </p>
<p>Have fun with expanding your reporting functionalities and drawing skills!</p>]]></description>
			<pubDate>Sat, 13 Mar 2010 14:29:45 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60805/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: Review: NetApp Management Pack Appliance Watch 2.0 for System Center Operations Manager 2007 / System Center Virtual Machine Manager]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60444/Default.aspx]]></link>
			<description><![CDATA[<p>There is a new management pack for monitoring NetApp devices for System Center Operations manager 2007 R2. This management pack can be used to integrate both SCVMM, SCOM and NetApp!</p>
<p>The Management Pack is a big improvement compared to the old version 1.4 which was basically a SNMP trap catcher.</p>
<p>The Management pack can be freely downloaded from the <a href="http://now.netapp.com/">NetApp Now page</a>. If you are a NetApp customer you should have access.</p>
<p>The official documentation reads</p>
<p><em><font size="1">You can do the following with ApplianceWatch PRO 2.0:<br />
• Use your existing storage management tools<br />
• Use one interface to monitor all of your NetApp storage systems<br />
• Simplify data management through integration with Microsoft System Center Operations Manager 2007<br />
• View hardware and storage layout of all of your NetApp storage systems<br />
• Isolate problems using alerts and Microsoft Health Explorer<br />
• Monitor the performance of your NetApp storage controllers using different performance metrics<br />
• Configure deduplication and autosize settings on NetApp flexible volumes<br />
• Launch FilerView from the ApplianceWatch interface<br />
• Connect to Data ONTAP DataFabric Manager servers from the ApplianceWatch interface<br />
• Monitor storage availability and capacity of virtual machines running on Microsoft Hyper-V hosts<br />
• Receive Performance and Resource Optimization (PRO) Tips with automatic remediation support</font></em></p>
<p><font size="1"><em>The following is <strong><u>NOT</u></strong> supported</em></font></p>
<p><font size="1"><em>• Traditional volumes are not supported.<br />
• Data ONTAP GX and Data ONTAP 8.0 Cluster-Mode are not supported.</em></font></p>
<p><em><font size="1">ApplianceWatch<strong><u> supports</u></strong> the following versions of Data ONTAP:<br />
• 7.2.6 or later in the Data ONTAP 7.2 product family<br />
• 7.3 or later in the Data ONTAP 7.3 product family<br />
• 8.0 (7 mode) in the Data ONTAP 8.0 product family</font></em></p>
<h2><span style="font-size: large">Before we start</span></h2>
<hr />
<p>Needles to say since you are a good SCOM admin and are fully aware of the use of the installation manual before adding anything in your environment, right? ….. ;-)</p>
<p>Every documentation accompanied by a management pack is not for people who don’t know or for read when you have some spare time because SCOM is watching your environment for you ……but it is a absolute must before doing any importing or adjustments in the environment !</p>
<p>Okay after reading the documentation and knowing the limitations and actions to take we can continue.</p>
<h2><span style="font-size: large">Installation</span></h2>
<hr />
<p>After Downloading the management pack msi you can install (extract) the files.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_10.png"><img title="image" border="0" alt="image" align="left" width="392" height="186" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_thumb_4.png" /></a></p>
<p>The Actual management packs which you can import are:</p>
<ul>
    <li>DataONTAP.mp for general monitoring your NetApp Appliances</li>
    <li>DataONTAP.PRO.mp if you are using System Center Virtual Machine Manager 2008 R2 and want to use PRO tips.</li>
</ul>
<p>The other files are required to run tasks and to connect to the NetApp Appliances.</p>
<p>Before you can start with importing the management packs you need to setup SNMP on your NetApp Appliances and SCOM and make sure you add the NetApp Appliance as a Network device in your SCOM environment.</p>
<p>The procedure for doing this is described in the manual (a separate download from <a href="http://now.netapp.com/">NetApp NOW</a>). Also notice there may be hotfixes needed in your scom environment dependent on the version you use.</p>
<p>After making sure the NetApp Appliances are discovered and being monitored as network devices you can continue the installation extract (install) the MSI and import the DataONTAP.mp and optionally the DataONTAP.PRO.mp into you SCOM environment.</p>
<p>The next step is to fill in the login credentials for the NetApp Appliances you want to monitor.</p>
<p>You need to target your management server and start the task in the action pane <em><u>DataONTAP:Manage Controller Credentials</u></em> the following screen will appear:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image3.png"><img title="image" border="0" alt="image" align="left" width="368" height="310" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image3_thumb.png" /></a></p>
<p>Here you can fill in the credentials for the NetApp Appliances you want to use for monitoring and discovering the appliances. Simply select the NetApp Appliance and fill in your credentials. You also have the possibility to test the credentials.</p>
<p> </p>
<p>The design of the management pack is not standard this makes it more difficult to understand and manage. By default you would want to store any additional credentials or accounts in the way SCOM is designed in your Run As configuration although the approach is similar.</p>
<p>Personally I think you want to use one approach for standardization and ease of usage which should be using Run As accounts but this is just my thoughts. </p>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2><span style="font-size: large">Discovery</span></h2>
<hr />
<p>After setting the credentials to access the DataONTAP on the NetApp Appliances you need to turn on discovery.You need to turn on discovery on your management server because it is disabled by default. Well let’s take a look at the MP.</p>
<p>The Management pack has 1 discovery rule which is a group populator. This one is activated by default and it is not the one we are after. How does the discovery run?</p>
<p>Actually it is a rule which is doing the discovery, again different approach from most management packs. Let me explain….</p>
<p>The NetApp Appliancewatch management pack uses it’s own libraries, these are the dll files which are extracted into the installation directory of NetApp Appliance watch 2.0 they start with NetAppSCOM…..dll.</p>
<p>Besides the SCOM dll’s there are more which are being used to talk to DATA Ontap. This is the way the management pack is designed and it is not just a couple of MP’s.</p>
<p>This approach makes it hard to tell how the data is being collected or “read” the management pack because besides knowledge of Management Packs you should also have knowledge of the SCOM api and Data Ontap api and know how to read the dll’s files and understand the functions being used in the files!!</p>
<p>This makes it difficult for most people to understand what is happening under the hood. Although this is most of the times no problem, an admin who really wants to know what is being done at the NetApp Appliances can be hard to convince although the management pack is designed by NetApp.</p>
<p>Well back to turning on the discovery for NetApp Appliances. The rule which needs to be turned on by the use of an override is <strong>DataONTAP.Discovery.Rule </strong>and can be found under <u>rules</u> instead of <u>Object discoveries</u>.</p>
<p>Simply go to the authoring pane in your console select rules and search on “ontap” will reveal the rule we want to override. The override needs to be set at your Management Server, if you have more then one management server you can select which Management Server you want to use to run the discoveries on.</p>
<p>The default discovery interval is set at 24 hours or 86400. If you want, you can force a discovery by the use of a task <em><u>DataONTAP: Run Discovery task</u></em> which is targeted at the management server where you turned on the discovery rule.</p>
<p>After the discovery runs  your filers should look something  like this:</p>
<p align="center"><em><strong>He, where did I see this diagram view before ;-)</strong></em></p>
<p> </p>
<p>  <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image13.png"><img title="image" border="0" alt="image" width="317" height="501" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image13_thumb.png" /></a><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image7.png"><img title="image" border="0" alt="image" width="312" height="494" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image7_thumb.png" /></a><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_8.png"><img title="image" border="0" alt="image" width="171" height="499" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_thumb_1.png" /></a><img alt="" width="560" height="504" src="http://www.systemcentercentral.com/Portals/0/blog-images/health.jpg" /></p>
<p>When all components are discovered they will be monitored. The monitoring of the components is being done by the use of the newly created eventlog AppWatch. The monitors are triggered when certain event id’s occur and when the event occurs the mapping is being done by the UUID of the effected component.</p>
<p>Example:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_20.png"><img title="image" border="0" alt="image" align="left" width="323" height="360" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_thumb_9.png" /></a></p>
<p>This is an example of the events being created in the AppWatch log. These events are being picked up by the Monitor <strong>DataONTAP.Volume.UsedSpace.Monitor </strong>which monitors the AppWatch eventlog for events 4000 – 4001 – 4002 - 4003 The event ID itself will be monitored for the status of the monitor. In this example Event ID 4000 will tell everything is OK.</p>
<p>When an error event is detected the health status changes to warning or worse and an alert is raised. The UUID will tell which instance is having problems. When an event is detected everything is ok again the health status will change to healthy again.</p>
<p> </p>
<p> </p>
<p> </p>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2><span style="font-size: large">Monitors</span></h2>
<hr />
<p> </p>
<p>These are all monitors within the management pack. This to give an idea of what is being monitored by the management pack.</p>
<p>Also you have the possibility to receive snmp traps but these monitors need to be set by an override.</p>
<p style="text-align: center"> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_6.png"><img title="image" border="0" alt="image" align="left" width="813" height="392" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_thumb.png" /></a></p>
<p> </p>
<p> </p>
<p> </p>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2> </h2>
<h2><span style="font-size: large">Pro Pack</span></h2>
<hr />
<p>The NetApp Appliance watch also includes a management pack to implement PRO tips for SCVMM 2008 R2. This management pack consists of a discovery rule to discover Hyper-v Hosts and virtual machines.</p>
<p>The management pack will send pro tips which can be manually changed or automatically by the MP.</p>
<p><strong><em>To give an idea what exactly is discovered for a Hyper-V Virtual machine</em></strong> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_13.png"><img title="image" border="0" alt="image" align="left" width="359" height="252" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_thumb_2.png" /></a></p>
<p>The cool part is it actually discovers the relation between a Virtual Machine and the NetApp Storage to give a better view on the health status of your NetApp Storage and how it relates to the virtual machines! Nice Job!</p>
<blockquote>
<p align="center"><strong><em>The PRO tips which you may expect:</em></strong>  <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_16.png"><img title="image" border="0" alt="image" width="309" height="174" style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60444/WLW-NetappManagementPackApplianceWatch2.0_D130-image_thumb_3.png" /></a></p>
</blockquote>
<h2><span style="font-size: large">Conclusion</span></h2>
<hr />
<p>Great to see more and more management packs from vendors which make the datacenter solutions for your entire datacenter monitoring possible! Especially combining System Center Products together.</p>
<p>Really a step forward compared to the old version NetApp Appliance Watch 1.4! For standard monitoring needs version 2.0 will deliver the basic availability of your NetApp Storage. </p>
<p><strong><em>A few pointers though from my personal perspective.</em></strong></p>
<p><em>Still no performance collection for disk space which is one of the crucial parts which missing in the Management Pack. Don’t understand why they didn’t include it. Every SCOM project I run one of the first questions I get is does it monitor disk space? And if so can we report on it? Although the base management packs collect disk space performance you will certainly want to know how much storage is left on your storage solution. With today’s virtual environments adding space to a virtual machine is  just a couple of mouse clicks away..but adding space to your storage solution is another thing. Also it is always nice you can prepare your manager in an early stage he has to spend money and show him the graphs to convince him ;-)</em></p>
<p><em>Another nice feature would be to relate the luns used on Servers to the luns on the NetApp Appliance like they did in the pro pack. But without SCVMM this is not an option, although it is again one of the reasons to start thinking Hyper-V + SCVMM ;-)</em></p>
<p><em>The design of the management pack is not standard which makes it hard to understand what is happening under the hood. Therefore extending it or trouble shooting will be very hard or you will have to have developer like expertise. Maybe an extended expert documentation on the management pack would be really beneficial.</em></p>
<p><em><u>Although I did not have the opportunity to test this MP in a big environment and see it running together with Hyper-V and see it performing. I think this management pack can be a real addition to your monitoring solution with little extra configuration. Would be interested to hear from people who are using the mp about their findings!</u></em></p>]]></description>
			<pubDate>Wed, 03 Mar 2010 21:34:28 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60444/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: Active Directory Management Pack and extremely high response times]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60246/Default.aspx]]></link>
			<description><![CDATA[<p>Last week I solved a puzzle which was bugging me quite some time. The problem was the fact that the Active Directory Management pack was hard or impossible to control.</p>
<p>And as with most annoying problems the solution was easy, well most solutions are easy if you know them ;-)</p>
<p> First of all some back ground. There are like 20 domain controllers all running Windows 2003 and where working fine. All monitors running and after configuring everything According to the guide and knowledge available there where still  a couple of domain controllers which kept on complaining about the response times.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60246/WLW-ActiveDirectoryManagementPack_205-image_4.png"><img title="image" border="0" alt="image" width="571" height="174" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60246/WLW-ActiveDirectoryManagementPack_205-image_thumb_1.png" /></a></p>
<p> </p>
<p>If you look at the default thresholds of these monitors:</p>
<p>Configuration<br />
• Interval (sec) default 300.<br />
• Number of Sample default 5. Number of times the threshold has to be exceeded before an alert is raised.<br />
• Threshold Warning (sec) default 5. GC Search time threshold for warning.<br />
• Threshold Error (sec) default 15. GC Search time threshold for error.</p>
<p> </p>
<p>When I compared the value’s collected on the 3 effected domain controllers they where way off and when looking at the performance reports they where all around 200 - 300 average which means the response times where around 5 minutes!!!</p>
<p>Since I don’t like and want to adjust thresholds just to have a green view this asked for further investigation.</p>
<p>There are some tasks to check the response times like running the task <strong>AD General Response Task</strong>  when I ran this task manually it would give back a value way below what was shown in the performance graphs.</p>
<p>So this task was telling me there where no response problems!?!?! But the monitors showed all red with values above 200 and the performance graphs where also showing these values.</p>
<p>After checking the overall performance of the DC’s which resulted in nothing….. time to dive a little deeper into the Management Pack and it’s rules.</p>
<p> </p>
<p>A quick review of the management pack in a unsealed version learned the response times where calculated by script based monitors. Which uses the script : <strong>AD_Op_Master_Response.vbs</strong></p>
<p>Since you can always get a copy of the script on the agent (<font size="1"><em>Default C:\Program Files\System Center Operations Manager 2007\Health Service State\Monitoring Host Temporary Files</em></font>) and copy it to a temp location.</p>
<p>If you copied the script to a temporary location open the script and check which parameters the script uses. Now run the script in a command prompt (cscript AD_Op_Master_Response.vbs <Parameters 1-5>) if the parameters are passed correctly you should be able to view the output in the command prompt.</p>
<p>When I tested the script and reviewed the output the values where all again below the thresholds…..  like 0,029</p>
<p> </p>
<p>Hmm why where the values in the monitors and performance views so high compared to the values collected directly by the script?</p>
<p>After taking a break and discussing the outcome with a colleague of mine we both simultaneously said the same thing “<em><strong>Well good it be the regional setting aka the good old “comma-dot” mix up! “</strong></em></p>
<p> </p>
<p>A quick investigation of the effected domain controllers learned indeed the regional settings where different!</p>
<table border="0" cellspacing="0" cellpadding="2" width="999">
    <tbody>
        <tr>
            <td valign="top" width="499"><strong>Domain controller with no latency problems</strong></td>
            <td valign="top" width="499"><strong>Domain controller <u><em>With</em></u> latency problems.</strong></td>
        </tr>
        <tr>
            <td valign="top" width="499"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60246/WLW-ActiveDirectoryManagementPack_205-image_6.png"><img title="image" border="0" alt="image" width="286" height="339" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60246/WLW-ActiveDirectoryManagementPack_205-image_thumb_2.png" /></a></td>
            <td valign="top" width="499"> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60246/WLW-ActiveDirectoryManagementPack_205-image_8.png"><img title="image" border="0" alt="image" width="286" height="339" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index60246/WLW-ActiveDirectoryManagementPack_205-image_thumb_3.png" /></a></td>
        </tr>
    </tbody>
</table>
<blockquote> </blockquote>
<p>Changing these settings and on the advanced tab check the box “Apply all settings to the current user account and to the default user profile” and restarting the health service on the effected domain controllers resulted in green monitors with the correct values!</p>
<p>The problem was because these settings where active it caused the comma to jump a couple of places resulting in values of 290 instead of 0,029 when the value’s where converted after the script runs.</p>
<p> </p>
<p>Lesson learned with this problem is double check your outcome and make sure data is converted, translated and read in the correct way! If you have strange high values always be sure to be able to explain why the values are high before changing a threshold!</p>]]></description>
			<pubDate>Wed, 24 Feb 2010 22:13:41 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60246/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SNMP Management Pack Example: NetApp Management Pack for SCOM 2007 R2 part 4]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/58919/Default.aspx]]></link>
			<description><![CDATA[<p>In the previous series I showed how to create the the discoveries for the different instances that make up a NetApp Filer.</p>
<p>This part will cover the parts which are still missing if we look at the properties of the classes. We are going to “discover” these properties which in return will make it possible to collect and monitor performance of the NetApp Filer.</p>
<p>Previous series:</p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/57726/Default.aspx"><strong>SNMP Management Pack Example: NetApp Management Pack for SCOM 2007 R2 part 1</strong></a></p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/58049/Default.aspx"><strong>SNMP Management Pack Example: NetApp Management Pack for SCOM 2007 R2 part 2</strong></a></p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/58417/Default.aspx"><strong>SNMP Management Pack Example: NetApp Management Pack for SCOM 2007 R2 part 3</strong></a></p>
<p><strong> </strong>As I stated in the first post I wanted to be able to monitor performance and not just alert on the performance but calculate health status based on the collected information. The big improvement instead of telling the device to send a trap if it is running out of disk space is that the health status will warn if there are problems and will return to healthy if resolved. Besides this it will also make it possible to do forecast and trend analyses using reporting and the performance data collected.</p>
<h2> <em><span style="font-size: large">Discovered Properties by Now</span></em></h2>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_4.png"><img title="image" border="0" alt="image" align="right" width="332" height="575" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_1.png" /></a></p>
<p> </p>
<blockquote>
<p>By using the previously  created datasources and discoveries we are now able to discover the following (<font size="1">picture right</font>) classes and their properties.</p>
<p>With the lun discovery we didn’t go through the process of creating another datasource to discover the Index property. This is because we can reuse the same datasource as we used by discovering the Aggregate class property Index. Just create another discovery rule and use datasource <strong><em>NetApp.Management.Pack.Datasource.Discovery.ObjectIndex</em></strong> and target it to a NetApp Lun to discover the Lun Property Index!</p>
<p><strong><em>There is again one of the benefits of creating your own datasources. You create one datasource and reuse it in your discoveries or monitors!</em></strong></p>
<p> </p>
<p>Below are the properties we are still missing to be able to discover these we are going to create a couple of more data sources.</p>
<p>We are going to use the same principles we used in our earlier discoveries and some more. These will give you a more detailed view on how the datasource principle is so beneficial if you are designing your own management packs.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_10.png"><img title="image" border="0" alt="image" align="left" width="328" height="324" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_4.png" /></a></p>
</blockquote>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>Because of the design of the NetApp MIB we need to discover again an index value.</p>
<p>The reason for this is we are running our initial discovery at a different Index then we are going to use when collecting performance data.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_12.png"><img title="image" border="0" alt="image" align="left" width="332" height="352" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_5.png" /></a>  Again when browsing the MIB <font size="1"><em>(picture left)</em></font> there is a index table called dfTable as you can see in the description this is the one we need.</p>
<p>  This index contains all counters for the disk space performance collection. These are the ones we are interested in now how are we going to discover these and make sure we are collecting information for the effected file system?</p>
<p align="left"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_14.png"><img title="image" border="0" alt="image" align="right" width="392" height="301" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_6.png" /></a></p>
<p align="left"> </p>
<p align="left">Now when browsing the MIB deeper <em><font size="1">(picture right)</font></em> under dfTable we notice an OID called dfFileSys This OID contains the name of the referenced file system which we are going to use!</p>
<p align="left">We have now managed to create a couple of datasources which in their turn use different approaches for data collection. Combining the knowledge we should be able to come up with a solution!</p>
<p align="left">The solution for collecting performance data contains 2 parts the first part is discovering the dfIndex OID. The second part is using this dfIndex OID to target the correct OID’s for collecting performance data.</p>
<p align="left">First part dfIndex oid discovery which is the FSIndex property for aggregate and volume classes.</p>
<p align="left">Let’s start with creating the datasource give it a name <strong>NetApp.Management.Pack.DataSource.Discovery.FSIndex</strong></p>
<p align="left">And use the following modules:</p>
<p align="left"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_16.png"><img title="image" border="0" alt="image" align="left" width="521" height="97" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_7.png" /></a></p>
<p>The datasource is based on previously created datasources it’s a combination.</p>
<p>The Scheduler and Mapper Modules are the same as in the datasource <strong><em>NetApp.Management.Pack.Datasource.Discovery.ObjectIndex.</em></strong></p>
<p>The SNMPProbe is basically the same as <strong><em>NetApp.Management.Pack.Class.NetApp.Aggregate</em></strong></p>
<p> </p>
<p> Now let’s start in a chronological way of how the datasource runs.</p>
<h3><span style="font-size: larger">Scheduler</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_18.png"><img title="image" border="0" alt="image" width="435" height="105" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_8.png" /></a></p>
<h3><span style="font-size: larger">SNMPProbe</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_2.png"><img title="image" border="0" alt="image" align="left" width="310" height="160" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb.png" /></a></p>
<p> </p>
<p>Notice the oid we are going to run a SNMP walk on is the dfFileSys which is the filesystem name.</p>
<p> </p>
<p> </p>
<p> </p>
<h3><span style="font-size: larger"> ValueFilter</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_19.png"><img title="image" border="0" alt="image" align="left" width="381" height="116" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_2.png" /></a></p>
<p>The value filter is used to filter the results. Like we did with the datasource NetApp.Management.Pack.DataSource.Discovery.Lun</p>
<p>After making sure we have the value oid for the corresponding volume or aggregate the data is passed to the script otherwise the data is dropped.</p>
<p> </p>
<p> </p>
<h3><span style="font-size: larger">ScriptProbe</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_21.png"><img title="image" border="0" alt="image" align="left" width="358" height="311" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_3.png" /></a></p>
<p>After making sure the correct data is collected by use of the filter the OID is passed to the scriptprobe.Which will retrieve the last number of the OID which is the index number of the corresponding aggregate or volume.</p>
<p>Notice there are actually two components discovered FSIndex which is the indexnumber of the filesystem and SNIndex which is the index number of the snaphots hosted on the effected volume or aggregate.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image15.png"><img title="image" border="0" alt="image" align="right" width="331" height="147" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image15_thumb.png" /></a></p>
<p>When browsing the Mib and retrieve the data for dfFileSys which returns the following value’s:</p>
<p>Notice there are actually 2 filesystem value’s for each volume or aggregate. The reason is the first one is always the filesystem itself and the second one is always the snapshot usage.</p>
<p>By retrieving the first index FSIndex we are able tell the snapshot index as well!</p>
<p>If the first FSIndex is 5 then the snapshot index of this volume will be 6 and so on. Although I haven’t used the SNIndex yet in the management pack. I have plans to add the snapshots as well for performance monitoring.</p>
<h3><span style="font-size: larger">Mapper</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_25.png"><img title="image" border="0" alt="image" width="528" height="48" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_10.png" /></a></p>
<p>Remember the approach we took when designing the datasource <strong><em>NetApp.Management.Pack.Datasource.Discovery.ObjectIndex</em>. </strong>This mapper is exactly the same so when designing the mapper use the same approach, save as default and edit afterwards in xml editor.</p>
<p>Finally for this datasource the configuration tab</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_27.png"><img title="image" border="0" alt="image" width="551" height="131" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_11.png" /></a></p>
<p>Now we can use this datasource for discovering the FSIndex and SNIndex of Aggregates and volumes! Simply create a discovery rule target it at the aggregate or volume class and use the newly created datasource and fill in the missing pieces!(<font size="1">right picture</font>)</p>
<p> </p>
<h3><span style="font-size: larger">Wrap up:</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_29.png"><img title="image" border="0" alt="image" align="right" width="812" height="374" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_12.png" /></a></p>
<p>Now we have created the datasource and discovery let’s wrap up.</p>
<p>Let’s say we want to discover the FSindex of an aggregate named Aggregate1.</p>
<p>The discovery runs on aggregate1 which does a walk on the filesystemindex dfFileSys.</p>
<p>All collected values from the walk are passed through the filter which filters the value on aggregate1. Only the Value for Aggregate1 and it’s OID is returned.</p>
<p>Now the OID is passed to the script which trims it to only the index number and adds the index number in a property bag FSIndex. For SNIndex the FSIndex is increased by one.</p>
<p>Both values are now mapped to the Aggregate1 class properties FSIndex and SNIndex!</p>
<p><u><em> Now we are able to discover the different classes and their main properties. </em></u></p>
<p><u><em>Although there are some more discoveries which we didn’t cover but with the information provided in the series you should be able to figure them out yourself ;-)</em></u></p>
<h2><em><span style="font-size: large">Performance Datasources</span></em></h2>
<p> Now with all the properties discovered we can start with the next part which are the performance counters. Although you are free to design your own I have narrowed it down to the main counters.</p>
<p>Basically we going to create the following performance counters</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_32.png"><img title="image" border="0" alt="image" width="481" height="145" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_13.png" /></a></p>
<p>Creating these counters we are going to use 2 datasources</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_34.png"><img title="image" border="0" alt="image" align="right" width="247" height="545" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_14.png" /></a></p>
<p> </p>
<p>The first one NetApp.Management.Pack.DataSource.Performance.Percentage.Used is the easiest one it consists of tree modules a schedule a filter and a SNMPProbe.</p>
<p>The SnmpProbe sends a SNMP Get to the OID named dfPercentKBytesCapacity OR <strong>.1.3.6.1.4.1.789.1.5.4.1.6.$Config/Index$ </strong>where $config/Index$ is the FSindex property of the Aggregate or Volume Class.</p>
<p> </p>
<p align="center"><strong><em>That’s all to it!</em></strong></p>
<p>In more detail we needed to discover the FSIndex for the aggregate classes and volume classes to be able to pass this index along with the correct OID to retrieve any value in the dfindextable which is shown on the right side. Notice all the OIDS shown in the index and their corresponding MIB name.</p>
<p>When using the FSIndex property we can send a snmp get to any OID listed in this index! And for percentage used this is dfPercentKBytesCapacity….. <em>Although the name is not really clear ;-)</em></p>
<p>This approach we are also going to use in our next datasources.</p>
<p><em>Although creating the above datasource is optional because you could as well be using the one from the system.performance.library MP named System.Performance.SNMPPerformanceProvider!</em></p>
<p><em>There is one difference since I created the datasource myself I have the option to declare which $Config/ values I want to be able to set overrides on!</em></p>
<p><em>Default you can only enable or disable the one from System.Performance.SNMPPerformanceProvider.</em></p>
<p><em>And I wanted the most flexibility in the MP I created the datasource to be able to override the value for the interval.This way when sealing the MP I don’t have to worry about flexibility!</em></p>
<p> </p>
<p>The next datasource we are going to design is NetApp.Management.Pack.Datasource.Performance.KBytesToGB which is the datasource for collecting the value and translating it to GB values since with today's disk space consumption it is easier to read GB instead of KBytes ;-)</p>
<p><em>If you want to use KBytes you are free to do so and don’t need this datasource in fact you can rely on the good old System.Performance.SNMPPerformanceProvider again but no overrides on the interval!</em></p>
<p> </p>
<p>First I needed to find the values for UsedBytes this was a real journey! Why?</p>
<p>If you look they are right there<strong> dfKBytesUsed </strong>so just use the same approach as with the percentage used one would say. This works great as long as your values are beneath the 2 TB there is no problem with using this approach.</p>
<p>But when you go above the magic number of 2 TB (2147483647) something magical happens. The value of the OID changes to a negative value!</p>
<p>Instead of sending 2.1 TB it will show –2 TB (or something) and using the calculator in any possible way I know (and don’t know) I couldn’t come up with the correct value when collecting this OID.</p>
<p>This called for further investigation!</p>
<p>The reason for this magic number….. is not so magic when explained. These SNMP OID values are 32 bit Integer values and they can hold only SNMP Value up until 2147483647 (2TB) if it gets above this it will go into a negative value.</p>
<p>Well that explained the problem but didn’t resolve it. Looking further at the index the are actually 64 bits OID’s. Great!  These are the counters we are looking for.</p>
<p><em>There are also counters for High and Low, since we are using SNMPv2c which supports 64bits we have no need for them but just for the record. Back in the (old) days when SNMPv1 was/is used and they discovered the limitations of 32 bits they did some math to come up with a clever solution of writing the data to 2 OID values High and Low. You would need to do the math in a script to come up with the correct value like below:</em></p>
<p><em>if (Low >= 0) x = High * 2^32 + Low</em></p>
<p><em>if (Low < 0)  x = (High + 1) * 2^32 + Low</em></p>
<p> </p>
<p>Back to the datasource we know the OIDs we are interested in and we have the FSIndex number so we are able to do our trick again.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_30.png"><img title="image" border="0" alt="image" width="726" height="106" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_9.png" /></a></p>
<p>Scheduler and Filter are familiar and take a look at the SNMPProbe.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_36.png"><img title="image" border="0" alt="image" align="left" width="286" height="127" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_15.png" /></a></p>
<p> </p>
<p>Notice the OID values are actually two parameters combined in one. The reason for this is we can reuse the datasource in the following performance collection rules</p>
<p>Used – Total and Available!</p>
<p> </p>
<h3><span style="font-size: larger">ScriptProbe</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_38.png"><img title="image" border="0" alt="image" align="left" width="382" height="259" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_16.png" /></a></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>A simple script to calculate from KBytes to GB and pass it to a property bag called SizeGB.</p>
<p> </p>
<p> </p>
<p> </p>
<p>Now just create your custom Performance Collection rules and you are able to collect performance on your Aggregates and Volumes on disk usage. For the full information here are the basic steps:</p>
<p>Create a custom Rule and target it at the Aggregate or Volume Class create the following modules on the modules tab:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_40.png"><img title="image" border="0" alt="image" align="left" width="440" height="450" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_17.png" /></a></p>
<p> </p>
<p> </p>
<p> </p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_42.png"><img title="image" border="0" alt="image" width="875" height="77" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_18.png" /></a></p>
<p> </p>
<p> </p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_44.png"><img title="image" border="0" alt="image" width="625" height="76" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_19.png" /></a></p>
<p> </p>
<p> </p>
<p>A Module for writing data to the Operations Database (PerfWriteOpDB) and one for writing data to the Reporting Database (PerfWriteRepDB)</p>
<h2><em><span style="font-size: larger"> Monitor Type</span></em></h2>
<p>Now we have created the performance collection rules I also wanted to create a Monitor type and explain how to. This way you can re-use this approach in your own management pack journeys ;-)</p>
<p>Before I start I have also created a Datasource to do a basic SNMPprobe called <strong>NetApp.Management.Pack.Datasource.Basic.SNMPProbe </strong>it is a basic datasource of a schedule, filter and SNMP probe module. For details see the Management pack itself.</p>
<p> </p>
<p>Create A new Monitor Type and call it <strong>NetApp.Management.Pack.MonitorType.PercentageUsedSpace</strong></p>
<h3><span style="font-size: larger"><strong>States Tab</strong></span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_46.png"><img title="image" border="0" alt="image" align="left" width="338" height="78" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_20.png" /></a></p>
<p>Make it a 3 state monitor since we want to monitor the percentage used till a warning state is raised and an error state is raised.</p>
<p>Create the 3 IDs for the three different states.</p>
<p> </p>
<h3><span style="font-size: larger"><strong>Member Modules Tab</strong></span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_48.png"><img title="image" border="0" alt="image" align="left" width="381" height="82" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_21.png" /></a></p>
<p>Here we are telling which datasource to use to collect the value and what condition the data needs to have.</p>
<p> </p>
<p> </p>
<p><strong>DS1 </strong><a href="http://www.systemcentercentral.com/file:///D:/wwwroot/SCC/Portals/0/VivoIndexItem/Index0/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_54.png"><strong><img title="image" border="0" alt="image" align="left" width="244" height="62" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_24.png" /></strong></a></p>
<p> </p>
<p> </p>
<p> </p>
<p><strong>                              UtilizationOK                                                                                                 UtilizationLow                                                                                                              UtilizationHigh</strong></p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_56.png"><img title="image" border="0" alt="image" align="left" width="468" height="142" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_25.png" /></a> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_58.png"><img title="image" border="0" alt="image" align="left" width="466" height="306" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_26.png" /></a> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_60.png"><img title="image" border="0" alt="image" width="473" height="141" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_27.png" /></a></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><em><span style="font-size: larger"><strong>Regular Tab - Configuration Schema - Overridable Parameters</strong></span></em></p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
    <tbody>
        <tr>
            <td valign="top" width="133"><font size="1">Combine condition detection and status if the monitor.</font><br />
            <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_68.png"><img title="image" border="0" alt="image" align="left" width="381" height="452" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_31.png" /></a></td>
            <td valign="top" width="133"><font size="1">Fill in the parameters to be use in the monitor.</font><br />
            <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_70.png"><img title="image" border="0" alt="image" align="left" width="385" height="455" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_32.png" /></a> <br />
            <br />
             </td>
            <td valign="top" width="133"><font size="1">Fill in the overridable parameters.</font><a href="http://www.systemcentercentral.com/file:///D:/wwwroot/SCC/Portals/0/VivoIndexItem/Index0/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_72.png"><br />
            <img title="image" border="0" alt="image" width="387" height="459" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58919/WLW-SNMPManagementPackExampleNetAppManagemen_134B2-image_thumb_33.png" /></a></td>
        </tr>
    </tbody>
</table>
<p>We have created our monitor type. And as it is the same with creating datasources you can change or configure them as you like.</p>
<p>Now just create a custom monitor target it at the class you want (aggregate or volume) and select this monitor type as it’s base and fill in the missing information.</p>
<p> </p>
<h2><strong><em><span style="font-size: large">Wrap up:</span></em></strong></h2>
<p> We have covered the main areas in designing this Management Pack and I hope you found the information useful and will use the approaches explained in your own MP’s.</p>
<p> As promised I will upload the Management Pack NetApp Management Pack for SCOM 2007 R2 to the site for everyone to use and have fun with it!</p>
<p>LINK: <a href="http://www.systemcentercentral.com/tabid/145/IndexId/58922/Default.aspx"><font color="#003f7d" size="5">NetApp Management Pack for SCOM 2007 R2</font></a></p>
<p>Be aware though that using the MP is at your own risk because of the way SCOM and SNMP work the workload on your SCOM server can increase as well as on the filer you want to monitor.</p>
<p>I have tested the MP in different areas and as soon as the filers are getting bigger the more probes are being send and the heavier the workload is going to be on both sides! Although the MP is more tuned then described in this series always be careful when importing management packs in you environments especially when it is production. <u>If available always use a test environment to be sure you understand the management pack and it’s impact! Closely monitor your environment before, during and after to be sure no problems arise. </u></p>
<p>Especially if you want to play around first try the <a href="http://communities.netapp.com/docs/DOC-1034">NetApp Simulator</a> like I did when developing this management pack.</p>
<h6><em>I have created this Management Pack for fun and brains! To play around with SNMP and SCOM and to learn. I hope you do as well ;-)</em></h6>
<p><u><em><strong><font size="1">The release of Kris his </font></strong></em></u><u><em><a href="http://operatingquadrant.com/2009/12/12/introducing-the-xsnmp-management-pack-suite/"><strong><font size="1">XSNMP management pack</font></strong></a><strong><font size="1"> has brought a new approach for dividing the workload on SNMP monitoring! Great Job! Will look into it to it as soon as I have time to tune this MP based on the approach used. Also will be working on a SCOM 2007 SP1 version as soon as I have time probably within the next weeks.</font></strong></em></u></p>]]></description>
			<pubDate>Wed, 27 Jan 2010 20:35:17 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/58919/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SNMP Management Pack Example: NetApp Management Pack for SCOM 2007 R2 part 3]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/58417/Default.aspx]]></link>
			<description><![CDATA[<p>In the previous series I showed how to create the datasource and 2 discoveries. This part will cover the more complex discoveries.</p>
<p>Previous series:</p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/57726/Default.aspx">SNMP Management Pack Example: NetApp Management Pack for SCOM 2007 R2 part 1</a></p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/58049/Default.aspx">SNMP Management Pack Example: NetApp Management Pack for SCOM 2007 R2 part 2</a></p>
<p> </p>
<p>First I will start by creating a new datasource for extracting the Index number.</p>
<p>This part is from <a href="http://operatingquadrant.com/">Kristopher Bash</a> his solution on creating SNMP management packs for network devices as I explained I used his approach as a baseline for this Management Pack.</p>
<p>Let’s take the last part of the Aggregate Discovery</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_2.png"><img title="image" border="0" alt="image" width="375" height="131" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb.png" /></a></p>
<p>Besides the OID and AggrName there are more properties which I will cover each in this series. As stated we start with the Index Property.</p>
<p>Why is this index number so handy?</p>
<p>Well the example for the Aggregate isn’t that great but let’s assume we want to discover more properties for the aggregate we add one for aggrRaidType.</p>
<p> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_4.png"><img title="image" border="0" alt="image" width="244" height="186" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_1.png" /></a></p>
<p>How would we discover the aggrRaidType property for each aggregate?</p>
<p>We know we need to query OID .1.3.6.1.4.1.789.1.5.11.1.11 for the aggrRaidType but we also need to know the index number from the aggregate to query the correct one.</p>
<table border="0" cellspacing="0" cellpadding="2" width="402">
    <tbody>
        <tr>
            <td valign="top" width="200">OID</td>
            <td valign="top" width="200">Value</td>
        </tr>
        <tr>
            <td valign="top" width="200"><em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong><font color="#ff0000"><u>1</u></font></strong></td>
            <td valign="top" width="200">Aggregate Name 1</td>
        </tr>
        <tr>
            <td valign="top" width="200"><em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong><font color="#ff0000"><u>2</u></font></strong></td>
            <td valign="top" width="200">Aggregate Name 2</td>
        </tr>
        <tr>
            <td valign="top" width="200"><em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong><font color="#ff0000"><u>3</u></font></strong></td>
            <td valign="top" width="200">Aggregate Name 3</td>
        </tr>
    </tbody>
</table>
<p>Above are the properties for each aggregate we discovered. We did a walk on the aggrName OID <em>.1.3.6.1.4.1.789.1.5.11.1.2</em> for the discovery and the last number of the OID of each aggregate instance is the index number.</p>
<p>We are going to create a datasource for extracting <em>(discovering)</em> the Index number for each Aggregate class instance by using a script based discovery on the OID property of each aggregate.</p>
<p>Create a datasource named <strong><em>NetApp.Management.Pack.Datasource.Discovery.ObjectIndex</em></strong> Create 3 Modules:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_50.png"><img title="image" border="0" alt="image" width="597" height="76" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_24.png" /></a></p>
<p>The scheduler is the same as in our previous discoveries.</p>
<h3><span style="font-size: larger">Script probe</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_6.png"><img title="image" border="0" alt="image" width="323" height="310" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_2.png" /></a></p>
<p>The script uses 1 parameter $Config/OID$ which we are going to declare in the actual discovery. This parameter will be the OID property of the aggregate.</p>
<p>It passes the OID to the script which extracts the index number and put it in a property bag named “Index”</p>
<h3><span style="font-size: larger">Mapper</span></h3>
<p>This one is different then our previous one. The XML will look like below:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_8.png"><img title="image" border="0" alt="image" width="481" height="40" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_3.png" /></a></p>
<p>Be aware though that you cannot add these settings in the Authoring console. You will receive the error below:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_10.png"><img title="image" border="0" alt="image" style="border-right-width: 0px; width: 362px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 128px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_4.png" /></a></p>
<p>A work around this issue is don’t change the default Mapper settings.</p>
<p>Fill in the Configuration SchemaTab:</p>
<p>Add Schema References:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_36.png"><img title="image" border="0" alt="image" width="513" height="127" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_17.png" /></a></p>
<p>Add Simple Configuration Schema:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_40.png"><img title="image" border="0" alt="image" width="524" height="80" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_19.png" /></a></p>
<p>Save your MP and open it in XML editor and change the values.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_8.png"><img title="image" border="0" alt="image" width="481" height="40" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_3.png" /></a></p>
<p>Now save it again and open it in the Authoring console again and add the following in your Simple Configuration Schema:</p>
<p> </p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_42.png"><img title="image" border="0" alt="image" width="533" height="114" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_20.png" /></a></p>
<p>The reason for designing the mapper this way is we can use this datasource now universal in all of our discoveries for the NetApp Management Pack. I will show you the actual discovery to explain.</p>
<p>Create a new custom discovery rule <strong><em>NetApp.Management.Pack.Discovery.NetApp.Aggregate.Index</em></strong> target it at the NetApp Aggregate Class</p>
<p>As a Datasource use your newly created datasource <strong><em>NetApp.Management.Pack.Datasource.Discovery.ObjectIndex</em></strong></p>
<p>We can now fill in the appropriate settings according to the Configuration Schema:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_42.png"><img title="image" border="0" alt="image" width="533" height="114" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_20.png" /></a></p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_12.png"><img title="image" border="0" alt="image" width="750" height="340" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_5.png" /></a></p>
<p>Simply add the appropriate values and notice we are actually not discovering anything except the index number!</p>
<p>All Settings are derived from already discovered components and because we designed the mapper in a universal way the datasource can remain the same only the parameters are changing.</p>
<p>The reason for first designing the datasource and discovery for the index number is we are going to use this one in our next discovery which is more challenging the NetApp Volume which is hosted by the NetApp Aggregate which is hosted by a NetApp Filer!</p>
<p> </p>
<h2><span style="font-size: large"><strong><em>Discovery of NetApp Volume</em></strong></span></h2>
<p>Now this is where the fun starts. Because we want to discover a volume which is hosted by an Aggregate we need to design something which is more challenging.</p>
<p>When you browse over the MIB by SNMP and look for the volume property it looks pretty simple at first besides the aggrtable we used in our previous discovery there is also a volTable!</p>
<p>Just use the same approach as the aggregate one would say!</p>
<p>Well in fact not…….. let’s think about it for a while. We want the volume to be hosted by the aggregate and not by the filer. There is our first difference…… well just add another key property of the aggregate which hosts the volume in our discovery then… nope although this will get the volumes discovered correctly there is a big downside.</p>
<p>Since the discovery will be targeted at the Aggregate Class the discovery will run on each aggregate class and start discovering volumes. When testing this with one aggregate this looks ok. But when you add another aggregate (or more) you will notice the error. On each aggregate <strong><u>all </u></strong>volumes will be discovered! So each aggregate will host all volumes on the filer and this is simply not the case…..</p>
<p>Back to the drawing board then.</p>
<p>In our Volume discovery we need to actually discover the Aggregate as well. We will need to find a way to discover a NetApp volume <strong><u>and</u></strong> on which aggregate the volume is hosted in <u>1 discovery</u>!</p>
<p>Well let’s browse some more the NetApp MIB and finding some value which will cover both the Volume as well as the aggregate. This way we can discover both in one discovery.</p>
<p>hmm remember our earlier Aggregate discovery, let’s go to the aggrtable again:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_14.png"><img title="image" border="0" alt="image" width="226" height="226" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_6.png" /></a></p>
<p>Now there is a very interesting OID when you look at it’s description <em>“List of all the flexible volumes within this aggregate”</em></p>
<p>When you do a get on this OID you will receive a list of all volumes hosted by the aggregate!</p>
<p>Because we created a discovery to discover the index number property of an aggregate we are able to target this OID directly in 1 SNMP get! This is the first part of the solution.</p>
<p>Let’s start designing the Datasource for this one:</p>
<p><strong><em>NetApp.Management.Pack.DataSource.Discovery.Volume</em></strong></p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_44.png"><img title="image" border="0" alt="image" width="600" height="91" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_21.png" /></a></p>
<h3><span style="font-size: larger">Scheduler</span></h3>
<p>the same as previous datasources</p>
<h3><span style="font-size: larger">SNMPProbe</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_16.png"><img title="image" border="0" alt="image" width="370" height="137" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_7.png" /></a></p>
<p>Notice we are going to use a parameter index which we are going to fill with the aggregate class property named “index”.</p>
<h3><span style="font-size: larger">Filter</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_18.png"><img title="image" border="0" alt="image" width="373" height="102" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_8.png" /></a></p>
<h3><span style="font-size: larger"> Script Discovery</span></h3>
<p>Now for the script Discovery which is the second part of the solution!</p>
<p>First we need to pass the following parameters to the script:</p>
<p align="justify"><em><strong>$MPElement$</strong></em></p>
<p align="justify"><em><strong>$Target/Id$</strong></em></p>
<p align="justify"><em><strong>$Target/Property[Type='NetApp.Management.Pack.Class.NetApp.Aggregate']/AggrName$</strong></em><span style="color: #ff0000"> <----------------------keyproperty of Aggregate class</span></p>
<p align="justify"><em><strong>$Target/Host/Property[Type='MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice']/IPAddress$</strong></em> <span style="color: #ff0000"><----key property of a network device</span></p>
<p align="justify"><em><strong>"$Data/SnmpVarBinds/SnmpVarBind[1]/Value$"</strong></em><span style="color: #ff0000"> <------collected SNMP get Value of aggFlexvollist</span></p>
<p> </p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_20.png"><img title="image" border="0" alt="image" width="717" height="474" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_9.png" /></a></p>
<p>We are now using our datasource to do a SNMP get and retrieve a value and after retrieving the value pass it together with more parameters to the scriptdiscovery. This is one of the real benefits of using datasources you can manipulate data to the wanted output.</p>
<p> </p>
<p>Now for the configuration schema tab:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_46.png"><img title="image" border="0" alt="image" width="597" height="90" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_22.png" /></a> </p>
<p>Now the datasource is finished for discovering volumes. Now you can again create a discovery rule target it at the aggregate class and fill in the correct parameters.</p>
<p> </p>
<h3><span style="font-size: larger">Wrap up:</span></h3>
<p>The Datasource to discover a volume works as follows. We know the aggregate index number which is unique to each aggregate hosted on one filer.</p>
<p>Because we know the index number we can query the oid we are interested in expanded by the index number parameter of the aggregate which for <strong><u>aggregatename 1</u></strong> would be .1.3.6.1.4.1.789.1.5.11.1.9.<strong><u>1</u></strong></p>
<p>This SNMP get with OID number .1.3.6.1.4.1.789.1.5.11.1.9.<strong><u>1</u></strong> will retrieve a value: a list of volumes divided by spaces belonging to <strong><u>aggregatename 1</u></strong></p>
<p>This list of volumes residing on this aggregate (Aggregate 1) is now passed to a discovery script where the list is divided by spaces and for each volume a new volume class is created with it’s key property Volname!!</p>
<p>Because each aggregate queries the oid attached with it’s own index number we are sure we are collecting the correct volumes for the effected aggregate!</p>
<p> </p>
<h2><span style="font-size: large"><strong><em>Discovery NetApp Lun</em></strong></span></h2>
<p>Okay now for the last one in the chain. Again our previous approaches are not sufficient for this one so I needed to take another approach to discover the NetApp Luns.</p>
<p>Although as stated before it is possible to discover the NetApp Luns if they are hosted directly by the NetApp filer it is more challenging and fun to let them be hosted by the actual part which is the volume! ;-)</p>
<p>First let’s take a look at the class we want to discover.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_24.png"><img title="image" border="0" alt="image" width="411" height="143" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_11.png" /></a></p>
<p>Remember as with our previous discoveries, discovering the key property of the class and it’s hosted classes are essential! Discovering other properties can be done in a second discovery.</p>
<p>Again we use our SNMP browsing tool to look for the appropriate value that will deliver us both the Volume key property as well as the Lun key Property</p>
<p>After browsing you will notice the lun table is beneath blocks instead of filesys as our previous OID’s.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_26.png"><img title="image" border="0" alt="image" width="243" height="420" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_12.png" /></a></p>
<p>Now when we do a SNMP walk on the Lunindex we notice a value called LunName. The description sounds interesting “The name of the lun. This is also the path to the LUN on the Filer.”.</p>
<p>When we do a get on this OID you will notice the path saying something similar to /vol/vol1/lun</p>
<p>This path or lunName value includes the hosted volume name!</p>
<p>Now let’s build the datasource <strong>NetApp.Management.Pack.DataSource.Discovery.Lun</strong></p>
<p><strong>Member Modules:</strong></p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_28.png"><img title="image" border="0" alt="image" width="586" height="117" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_13.png" /></a></p>
<h3><span style="font-size: larger">Scheduler</span></h3>
<p>Same as previous datasources</p>
<h3><span style="font-size: larger">SNMPProbe</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_30.png"><img title="image" border="0" alt="image" width="395" height="198" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_14.png" /></a></p>
<p>The SNMP probe is the same as doing an aggregate discovery only we are now querying another OID.</p>
<h3><span style="font-size: larger">Filter</span></h3>
<p>Now this one is different and this is the part what makes the solution work correctly!</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_34.png"><img title="image" border="0" alt="image" width="643" height="143" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_16.png" /></a></p>
<p>Notice the high lighted part! The filter is a regex expression which filters the Value collected.</p>
<p>let’s take the earlier example of /vol/vol1/lun1</p>
<p>The filter looks at the collected value and searches if the value contains substring /vol1/ if it does the value is passed to the mapper if not the data is discarded.<em><font size="1"> </font></em></p>
<p><em><font size="1">(The reason for adding “/” is if there are volumes named the same as the lun the filter will not correctly work)</font></em></p>
<p>Since we target the discovery at the netapp volume class for each volume the discovery will run but will only retrieve discovery data if the value is passed the filter!</p>
<h3><span style="font-size: larger">Mapper</span></h3>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_22.png"><img title="image" border="0" alt="image" width="736" height="517" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_10.png" /></a></p>
<p> </p>
<p>The mapper looks the same as the one we used in our previous discoveries.</p>
<p>As for the configuration schema:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_32.png"><img title="image" border="0" alt="image" width="491" height="120" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_15.png" /></a></p>
<p>Now the datasource is finished for discovering Luns. Now you can again create a discovery rule target it at the Volume class use the new datasource and fill in the correct parameters.</p>
<p> </p>
<h3><span style="font-size: larger">Wrap up:</span></h3>
<p>The discovery of the netapp Luns works as follows we do a SNMP walk on the LunName OID .1.3.6.1.4.1.789.1.17.15.2.1.2 and retrieve all LunName Values.</p>
<p>We pass these values through the Filter and only the ones which have the correct volume name in the LunName value are passed to the mapper to be discovered!</p>
<p> </p>
<h2><span style="font-size: large"><strong><em>Wrap Up Part 3 of the series</em></strong></span></h2>
<p>We are now able to discover all our classes. If we look at a diagram view for one filler the results should be something like below.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_48.png"><img title="image" border="0" alt="image" align="left" width="371" height="347" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58417/WLW-SNMPManagementPackExampleNetAppManagemen_9FB7-image_thumb_23.png" /></a></p>
<p> </p>
<p><span style="color: #ff0000"><----------------NetApp Filer</span></p>
<p> </p>
<p> </p>
<p><span style="color: #ff0000"><---------------NetApp Aggregate</span></p>
<p> </p>
<p><span style="color: #ff0000"><---------------NetApp Volume</span></p>
<p> </p>
<p> </p>
<p><span style="color: #ff0000"><strong><---------------NetApp Luns</strong></span></p>
<p> </p>
<p><u><em><strong>The next series part 4 will cover the next steps in the MP which are discovering and explaining other class properties and creating performance counters.</strong></em></u></p>
<p><u><em><strong>Also there will be a example MP in it which have all the components as explained in the series….</strong></em></u></p>]]></description>
			<pubDate>Sat, 09 Jan 2010 21:22:48 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/58417/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SNMP Management Pack Example: NetApp Management Pack for SCOM 2007 R2 part 2]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/58049/Default.aspx]]></link>
			<description><![CDATA[<p>In the first part of the NetApp Management Pack basically was all about the design. The result was defining the classes and relationships:</p>
<div>
<div align="left">
<table border="0" cellspacing="0" cellpadding="2" width="400" align="left">
    <tbody>
        <tr>
            <td valign="top" width="400"><strong>Classes</strong></td>
        </tr>
        <tr>
            <td valign="top" width="400"><i>NetApp.Management.Pack.Class.NetApp.Filer</i></td>
        </tr>
        <tr>
            <td valign="top" width="400"><i>NetApp.Management.Pack.Class.NetApp.Aggregate</i></td>
        </tr>
        <tr>
            <td valign="top" width="400"><i>NetApp.Management.Pack.Class.NetApp.Volume</i></td>
        </tr>
        <tr>
            <td valign="top" width="400"><i>NetApp.Management.Pack.Class.NetApp.Lun</i></td>
        </tr>
        <tr>
            <td valign="top" width="400"> </td>
        </tr>
        <tr>
            <td valign="top" width="400"><strong>Relationships</strong></td>
        </tr>
        <tr>
            <td valign="top" width="400"><i>NetApp.Management.Pack.Relationship.Filer.Hosts.Aggregate</i></td>
        </tr>
        <tr>
            <td valign="top" width="400"><i>NetApp.Management.Pack.Relationship.Aggregate.Hosts.Volume</i></td>
        </tr>
        <tr>
            <td valign="top" width="400"><i>NetApp.Management.Pack.Relationship.Aggregate.Hosts.Volume</i></td>
        </tr>
        <tr>
            <td valign="top" width="400"> </td>
        </tr>
        <tr>
            <td valign="top" width="400"><strong>Key Properties</strong></td>
        </tr>
        <tr>
            <td valign="top" width="400">Filer / NetworkDevice – IPAddress – Ip Address</td>
        </tr>
        <tr>
            <td valign="top" width="400">Aggregate Class – AggrName – Aggregate Name</td>
        </tr>
        <tr>
            <td valign="top" width="400">Volume Class – VolName – Volume Name</td>
        </tr>
        <tr>
            <td valign="top" width="400">Lun Class – LunName – Lun Name</td>
        </tr>
        <tr>
            <td valign="top" width="400"> </td>
        </tr>
    </tbody>
</table>
</div>
</div>
<div style="text-align: left"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_60.png"><img title="image" border="0" alt="image" width="268" height="467" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_19.png" /></a></div>
<p>With this information you should be able to create the classes and relationships we are going to use in this MP. The result should be something similar to the screen shots below.</p>
<p style="text-align: center"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-classes_6.jpg"><img title="classes" border="0" alt="classes" width="740" height="132" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-classes_thumb_2.jpg" /></a></p>
<p style="text-align: center"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-relationships_6.jpg"><img title="relationships" border="0" alt="relationships" width="1088" height="107" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-relationships_thumb_2.jpg" /></a></p>
<p>We have now setup the classes and relationships it is time to start designing the discoveries. I will tell step by step how to design the discovery for each class.</p>
<p>A handy tool at this time besides the authoring console is a SNMP walking tool this way you can send a <strong>SNMP GET</strong> or even a <strong>WALK</strong> to the SNMP device to query the data.</p>
<p>In part one there are linked tools.</p>
<p>During this tutorial I assume you have been able to collect a copy of the NetApp simulator tool or have NetApp filers running in your organization. Even without a NetApp Filer I think the tutorial is detailed enough to understand the steps and use these steps in your own SNMP management pack!!!</p>
<h2><span style="font-size: large"><em><strong>SNMP Setup</strong></em></span></h2>
<p>First you need to make sure SNMP is setup correctly on both the management server and the NetApp filer(s). Without the correct setup we are not going to discover anything ;-)</p>
<p>SNMP setup basically involves 2 parts the first part will be the Ops Mgr Server and the second part the device you want to monitor in our example the NetApp Filer. The second part of the procedure is the same for every SNMP device you want to monitor. Although the commands may differ the basics are the same.</p>
<ol>
    <li><strong>Setup SNMP on your Ops Mgr Server</strong>.</li>
</ol>
<blockquote>
<p>Navigate to your services MMC (Run Command “Services.msc”) now find the SNMP Service, if not available install the SNMP Service.</p>
<p>Control Panel –> Add/Remove Programs –> Add/Remove Windows Components. Now select  <strong><u>Management and Monitoring tools</u></strong> click details and select  <strong><u>Simple Management Network Protocol</u></strong> (or SNMP).</p>
<p>After installation you will have two services <strong><u>SNMP Service</u></strong> and<strong><em> </em><u>SNMP Trap Service</u>.</strong> The configuration needs to be done at the <strong><u>SNMP Service</u>.</strong> Now open SNMP Service and navigate to security tab. Default setting is to only receive SNMP from the local host so we need to add the IP Address of the Device we want to discover / Monitor with Ops Mgr. Adding the device by Host Name, IP Address or IPX Address will allow communication from the SNMP device to Ops Mgr Server.</p>
<p style="text-align: center"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_56.png"><img title="image" border="0" alt="image" width="340" height="383" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_14.png" /></a></p>
</blockquote>
<ol>
    <li>
    <div align="left">If you have setup SNMP on the Management server you need to make sure SNMP is set on the NetApp side as well by adding the Ops Mgr server as a SNMP trap receiving server. Logon as root on your NetApp Simulator and run the command <strong><u>SNMP</u></strong> this should give you the current settings. <strong><u>SNMP ?</u></strong> will list you all command parameters. Below is a screen from adding the Ops Mgr server <strong>192.168.112.12</strong> and add a community name <strong>test.</strong></div>
    </li>
</ol>
<p style="text-align: center"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_35.png"><img title="image" border="0" alt="image" width="427" height="288" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_7.png" /></a></p>
<p align="left">Now your environment should consist of at least one NetApp Filer and your Ops Mgr environment with both the ability to send and receive SNMP traffic.</p>
<p align="left">Now with this setup you should be able to install a SNMP tool on your management server. After the setup Import the NETWORK-APPLICANCE-MIB into your SNMP tool to be able to query the NetApp filer and be able to make up something of the OID’s and values. I used Ireasoning tool</p>
<p style="text-align: center"><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_21.png"><img title="image" border="0" alt="image" width="1028" height="187" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_3.png" /></a></p>
<p align="left">When you have added the NETWORK-APPLICANCE-MIB  make sure you fill in the IP of your filer and the community name</p>
<h2><span style="font-size: large"><em><strong>Discovery</strong></em></span></h2>
<p>I will walk you through setting up the discoveries in a logical manner and in detail.</p>
<h2><span style="font-size: large"><em><strong>NetApp Filer</strong></em></span></h2>
<p>First we start with discovering the NetApp Filer which is the “easiest” one since we simply run the discovery on the class <strong>Microsoft.SystemCenter.NetworkDevice.</strong></p>
<p style="text-align: center"> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_6.png"><img title="image" border="0" alt="image" width="428" height="351" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb.png" /></a></p>
<h3><span style="font-size: large"><em><strong>Datasource</strong></em></span></h3>
<p>Let’s start with developing the DataSource for this discovery:</p>
<p>Simply go to Type Library in your authoring console and create a new datasource; <em>NetApp.Management.Pack.DataSource.Discovery.Filer</em></p>
<p>Now give it a logical name like “<em>Datasource to discover NetApp Filers</em>”</p>
<p>Next go to the Configuration Schema tab.</p>
<p>Here you can declare the parameters used to pass to the datasource.</p>
<p>The ones we are going to use are:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image6.png"><img title="image" border="0" alt="image" width="417" height="92" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image6_thumb.png" /></a></p>
<p>These will be the parameters that needed to be provided in the discovery rule in order for the datasource to run. All these parameters are referred to by <strong>$Config\</strong></p>
<p><em>(We we are designing the discovery rule later on the reason will become more clear.)</em></p>
<h4><span style="font-size: large"><em><strong>Datasource part 1 Scheduler</strong></em></span></h4>
<p> First the scheduler create a new Member module by Add.. and navigate to <strong>System.Discovery.Scheduler</strong>, give it a name like “Scheduler” leave the default settings and click OK.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_9.png"><img title="image" border="0" alt="image" style="border-right-width: 0px; width: 377px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 265px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_1.png" /></a><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_13.png"><img title="image" border="0" alt="image" style="border-right-width: 0px; width: 340px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 333px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_2.png" /></a><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_17.png"><img title="image" border="0" alt="image" style="border-right-width: 0px; width: 330px; display: inline; border-top-width: 0px; border-bottom-width: 0px; height: 335px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_5.png" /></a></p>
<p>Now most of the times when using the authoring console it is much easier to edit the XML. Therefore open the just created scheduler by selecting it and click Edit.</p>
<p>Now these are the default settings for the scheduler:</p>
<h6><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_33.png"><img title="image" border="0" alt="image" width="244" height="97" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_13.png" /></a></h6>
<p>We are going replace these settings with our newly created Parameter form the Configuration Schema Tab <strong>$Config/Interval$</strong> (remember when there are $ signs used Ops Mgr will interpret the string as a parameter)</p>
<h6><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_37.png"><img title="image" border="0" alt="image" width="362" height="86" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_15.png" /></a></h6>
<p> <em> <strong><Interval Unit="Seconds">$Config/Interval$</Interval> </strong><----------------------------This is the Interval Parameter declared in the Configuration Schema Tab.</em></p>
<p>The scheduler will tell how often the discovery should run by configuring a parameter we will be able to change this when using overrides. This will make the MP much more flexible in terms of running discoveries.\</p>
<h4><span style="font-size: large"><em><strong>Datasource part 2 Filter</strong></em></span></h4>
<p> This filter is used to check if we have the correct device OID. For NetApp Devices the OID always starts with .1.3.6.1.4.1.789</p>
<p>Add a new module and now select <strong>System.Expressionfilter</strong></p>
<p>The default values are</p>
<h6><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_39.png"><img title="image" border="0" alt="image" width="244" height="136" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_16.png" /></a> </h6>
<p>We are going to change the expression to a <strong>regex expression</strong> and filter the OID value on <strong>.1.3.6.1.4.1.789</strong></p>
<p>In order to do this we need to change/ add the following:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_41.png"><img title="image" border="0" alt="image" width="244" height="105" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_17.png" /></a></p>
<h6>
<h6> </h6>
</h6>
<p><strong><Value>$Config/SystemOID$</Value></strong> <-------------------------------------------------<em>This is the SystemOID Parameter we declared in the configuration schema tab.</em></p>
<p><strong><Pattern>1.3.6.1.4.1.789</Pattern></strong> <--------------------------------------------------------<em>The Enterprise OID for NetApp Appliances</em></p>
<p> If A network device doesn’t contain this OID then it is not a NetApp device and therefore the datasource is stopped and the device is not discovered.</p>
<p>If it contains the OID we can go on with the next module the Probe itself.</p>
<p> <span style="font-size: large"><em><strong>Datasource part 3 SNMP Probe</strong></em></span></p>
<p> Again follow the procedure to add a Module <strong>System.SnmpProbe </strong>and edit the module in xml.</p>
<p>The default values:</p>
<h6><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_43.png"><img title="image" border="0" alt="image" width="292" height="121" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_18.png" /></a></h6>
<p>Now this is where we are going to declare which OID’s we want to discover form the device.</p>
<p>This is the moment we are going to use our SNMP browser to connect to the NetApp Filer and use net MIB to analyze which properties we want to discover of a NetApp Filer.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_25.png"><img title="image" border="0" alt="image" width="222" height="244" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_9.png" /></a> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_29.png"><img title="image" border="0" alt="image" width="244" height="228" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_11.png" /></a> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_31.png"><img title="image" border="0" alt="image" width="231" height="244" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_12.png" /></a></p>
<p>Above screenshots are the parts of the MIB we are going to use. <em>(You are free to select any other property /OID you want)</em></p>
<p>First of all the first part should be familiar since these are the values you used in setting up SNMP on your NetApp Filer.</p>
<p><em><IsWriteAction><strong>false</strong></IsWriteAction></em> <-------------------------------------------------------<em>Needs to be false otherwise you are telling it to write instead of collect!<br />
</em></p>
<p><IP><strong>$Config/IP$</strong></IP> <----------------------------------------------------------------------------<em>This is the IP address parameter declared in the Configuration Schema Tab.<br />
</em></p>
<p><CommunityString><strong>$Config/CommunityString$</strong></CommunityString> <------------------<em>This is the Community name parameter we declared in the Configuration Schema Ta</em>b.</p>
<p> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_47.png"><img title="image" border="0" alt="image" width="428" height="347" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_20.png" /></a></p>
<table border="0" cellspacing="0" cellpadding="2" width="467">
    <tbody>
        <tr>
            <td valign="top" width="200">OID</td>
            <td valign="top" width="265">MIB</td>
        </tr>
        <tr>
            <td valign="top" width="200">.1.3.6.1.4.1.789.1.6.4.1.0</td>
            <td valign="top" width="265"><em>NetApp MIB OID for <strong>diskTotalCount</strong></em></td>
        </tr>
        <tr>
            <td valign="top" width="200">.1.3.6.1.4.1.789.1.5.9.0</td>
            <td valign="top" width="265"><em>NetApp MIB OID for <strong>volNumber</strong></em></td>
        </tr>
        <tr>
            <td valign="top" width="200">.1.3.6.1.4.1.789.1.5.12.0</td>
            <td valign="top" width="265"><em>NetApp MIB OID for <strong>aggrNumber</strong></em></td>
        </tr>
        <tr>
            <td valign="top" width="200">.1.3.6.1.4.1.789.1.1.7.0</td>
            <td valign="top" width="265"><em>NetApp MIB OID for <strong>ProductGuiUrl</strong></em></td>
        </tr>
        <tr>
            <td valign="top" width="200">.1.3.6.1.4.1.789.1.1.5.0</td>
            <td valign="top" width="265"><em>NetApp MIB OID for <strong>ProductModel</strong></em></td>
        </tr>
    </tbody>
</table>
<p> <span style="font-size: large"><em><strong>Datasource part 4 Mapper</strong></em></span></p>
<p> Add a new module <strong>System.Discovery.FilteredClassSnapshotDataMapper.</strong> The default values for this mapper are:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_49.png"><img title="image" border="0" alt="image" width="277" height="158" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_21.png" /></a></p>
<p>Let’s change the default value’s to the value’s we are going to use:</p>
<p> </p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_55.png"><img title="image" border="0" alt="image" width="702" height="545" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_24.png" /></a></p>
<p>The first part of the XML is the filter to be sure correct data is collected.</p>
<p>The Second part is the class we going to map the discovered properties to.</p>
<p>The Third part are all settings collected by the SNMP probe are mapped to the actual properties. <em>(notice also the IPAddress is mapped since this is the key property of the Network Device.)</em></p>
<p>Rollup.</p>
<p>Now we have created our own datasource which we can use in the actual discovery rule. Creating a datasource is a very valuable way of authoring your own rules. It’s very flexible and you can manipulate the data the way you want. <em>(Although there are some pointers regarding SNMP walk which we get into later)</em></p>
<p>The datasource contains of the following components</p>
<table border="0" cellspacing="0" cellpadding="2" width="533">
    <tbody>
        <tr>
            <td valign="top" width="200">Scheduler</td>
            <td valign="top" width="331">How often should the discovery run?</td>
        </tr>
        <tr>
            <td valign="top" width="200">Filter</td>
            <td valign="top" width="331">Is the target a NetApp Appliance?</td>
        </tr>
        <tr>
            <td valign="top" width="200">SnmpProbe</td>
            <td valign="top" width="331">Collect Data.</td>
        </tr>
        <tr>
            <td valign="top" width="200">Mapper</td>
            <td valign="top" width="331">Write output data to new discovered instance.</td>
        </tr>
    </tbody>
</table>
<p> Now we configure the actual discovery rule with ease.</p>
<p>Create a new discovery rule with a name like NetApp.Management.Pack.Discovery.NetApp.Filer and target the discovery at Microsoft.SystemCenter.NetworkDevice.</p>
<p>Discovered Classes will of course be NetApp Filer class.</p>
<p>Now the configuration Tab is the place where we are going to use the newly created datasource. Click Browse for a type and search for your datasource - <em>NetApp.Management.Pack.DataSource.Discovery.Filer</em></p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_59.png"><img title="image" border="0" alt="image" width="469" height="484" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_26.png" /></a></p>
<p>When the correct datasource is selected this is the place where we find the parameters from the Configuration Schema tab of the datasource again!</p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
    <tbody>
        <tr>
            <td valign="top" width="200"><strong>Interval</strong></td>
            <td valign="top" width="200"><strong>$Config/IntervalI$</strong></td>
        </tr>
        <tr>
            <td valign="top" width="200"><strong>IP</strong></td>
            <td valign="top" width="200"><strong>$Config/IP$</strong></td>
        </tr>
        <tr>
            <td valign="top" width="200"><strong>CommunityString</strong></td>
            <td valign="top" width="200"><strong>$Config/CommunityString$</strong></td>
        </tr>
        <tr>
            <td valign="top" width="200"><strong>SystemOID</strong></td>
            <td valign="top" width="200"><strong>$Config/SystemOID$</strong></td>
        </tr>
    </tbody>
</table>
<p> You can really simply fill in the correct settings by clearing the value and click the arrow as highlighted this way you can select the properties of the target we are using Microsoft.SystemCenter.NetworkDevice.</p>
<h2><span style="font-size: large"><em><strong>NetApp Aggregate</strong></em></span></h2>
<p>Now this one is getting more complicated. We are not going to the details again of creating the datasource. Instead we dive in at the part which is different to the previous one NetAppFiler. Add a datasource called NetApp.Management.Pack.Class.NetApp.Aggregate.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_22.png"><img title="image" border="0" alt="image" width="451" height="158" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_4.png" /></a></p>
<p> Now again create the following modules:</p>
<p>Scheduler – System.Scheduler</p>
<p>Filter – System.ExpressionFilter</p>
<p>SnmpProbe – System.SnmpProbe</p>
<p>Mapper – System.Discovery.FilteredClassSnapshotDataMapper</p>
<p> </p>
<p>Filter Settings: now we are filtering on OID 1.3.6.1.4.1.789.1.5.11.1.2.</p>
<h4><span style="font-size: large"><em><strong>SNMP Probe</strong></em></span></h4>
<p>Instead of just sending one “SNMP get” to do the discovery we are now going to use the “SNMP <strong>walk” </strong>feature specific to Ops. Mgr 2007 R2.</p>
<p>Again we are going to use the SNMP Browser tool to be able to tell which OID’s we are intrested in.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_27.png"><img title="image" border="0" alt="image" width="415" height="348" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_6.png" /></a></p>
<p>We are going to do a SNMP Walk on the OID .1.3.6.1.4.1.789.1.5.11.1.2. which translates into the aggrName.</p>
<p>By doing a walk we tell the SNMP probe to walk the aggrName OID index this means getting</p>
<p> <em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong>1</strong></p>
<p><em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong>2</strong></p>
<p><em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong>3</strong></p>
<p>and so on until the end of the index.</p>
<p>This will collect the OID’s and their values. (In this example we have three aggregates so three oid’s and their values are collected.</p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
    <tbody>
        <tr>
            <td valign="top" width="200">OID</td>
            <td valign="top" width="200">Value</td>
        </tr>
        <tr>
            <td valign="top" width="200"><em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong>1</strong></td>
            <td valign="top" width="200">Aggregate Name 1</td>
        </tr>
        <tr>
            <td valign="top" width="200"><em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong>2</strong></td>
            <td valign="top" width="200">Aggregate Name 2</td>
        </tr>
        <tr>
            <td valign="top" width="200"><em>.1.3.6.1.4.1.789.1.5.11.1.2.</em><strong>3</strong></td>
            <td valign="top" width="200">Aggregate Name 3</td>
        </tr>
    </tbody>
</table>
<p> In XML this will look like below:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_45.png"><img title="image" border="0" alt="image" width="368" height="171" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_8.png" /></a></p>
<p>Notice the settings added telling the SNMP probe to do a walk instead of just a get.</p>
<p>The Mapper Module looks the same as the discovery of the netapp Filer:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_51.png"><img title="image" border="0" alt="image" width="739" height="388" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb_10.png" /></a></p>
<p> Notice we also need to retrieve the IPAddress property of the NetworkDevice. This is required since the NetApp Aggregate is hosted by the filer. To be able to tell which filer hosts the aggregate we need to also retrieve the key property of the hosted class. If we leave out the key property of the hosted class in the discovery it won’t be able to tell where the discovered class instance is hosted and will not discover anything!</p>
<p>Also notice we declared a key property for the Aggregate which is AggrName, this property needs to be</p>
<p>After saving the datasource we now have a datasource to discover NetApp Aggregates! We only need to create a discovery rule and use our Aggregate discovery datasource in the discovery.</p>
<p>The procedure for creating the discovery rule is the same as the filer with the only difference we can now target the NetApp Filer. This means the discovery will only run on NetApp Filers.</p>
<h1><span style="font-size: large"><strong><em>Wrap Up:</em></strong></span></h1>
<p>We can now discover NetApp Filers and Aggregates!</p>
<p> <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_6.png"><img title="image" border="0" alt="image" width="428" height="351" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image_thumb.png" /></a>  <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image27.png"><img title="image" border="0" alt="image" width="406" height="148" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index58049/WLW-SNMPManagementPackExampleNetAppManagemen_13904-image27_thumb.png" /></a></p>
<p>We can discover a NetApp Filer and all of it’s properties and also NetApp Aggregates with only 2 properties which are hosted by NetApp Filers.</p>
<p> </p>
<p><span style="font-size: larger"><em><strong>Because of the complexity of the discoveries for discovering NetApp Aggregate properties and NetApp Volumes and Luns I will cover these in part 3 of this series.</strong></em></span></p>
<p><span style="font-size: larger"><em><strong>Which will follow probably next week.</strong></em></span></p>]]></description>
			<pubDate>Thu, 31 Dec 2009 14:18:21 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/58049/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SNMP Management Pack example: NetApp Management Pack for System Center Operations Manager 2007 R2 - Part 1]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/57726/Default.aspx]]></link>
			<description><![CDATA[<p>Writing a Custom SNMP Netapp management pack for System Center Operations Manager 2007 R2. <br />
 </p>
<h2><em><strong><span style="font-size: large">The Reason</span></strong></em></h2>
<p>I have written this management pack to get the monitoring of your NetApp environment into System Center Operations Manager 2007 R2. I know there are other ways of monitoring your NetApp solution like NetApp Operations Manager and there is even a NetApp Management Pack from NetApp.</p>
<p>Although the NetApp MP looks promising at a first glance it is nothing more then basically 3 rules which catches SNMP traps based on severity “ Information, Warning, Error”. The only difference is that it uses the NetApp mibs to translate SNMP data into the alert description.</p>
<p>Because it only generates alerts it says nothing on the health status of your NetApp filers. Besides it has no health status and rollup there is also no performance collection. So with some basic snmp rules you would achieve the same which is by far not what I wanted!</p>
<p>Now because of these limitations I decided to start playing around with SNMP and the NetApp Simulator in my SCOM 2007 R2 test environment.</p>
<p><em><strong>Although if you use NetApp Operations Manager along with SCOM it may give you a workable solution. But still you will have another console to use and I wanted everything in the good old Ops Mgr console ;-)</strong></em></p>
<p>Therefore I decided to write a custom management pack for NetApp filers which uses SNMP. The Management Pack and idea is based on an example from <a href="http://operatingquadrant.com/">Kristopher Bash</a> for monitoring Cisco devices.</p>
<p>These series will cover the total solution of designing the MP it is in a very detailed level so even though you don’t have NetApp running these series will be beneficial in designing your management packs. This way I can maybe help other people with building their own.</p>
<p>When writing these series I noticed the announcement for <a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/57536/Default.aspx">xSNMP Management Pack Suite</a> which looks really promising! Especially the performance part! Will look into this as soon as it is available!</p>
<p> </p>
<h2><span style="font-size: large"><em>Requirements</em></span> </h2>
<p><br />
The tools used when desiging this MP are the common tools:</p>
<p>SNMP with <a href="http://www.ireasoning.com/download.shtml">Ireasoning</a></p>
<p>XML Editor with <a href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a></p>
<p>Besides these tools I created a test environment with Ops Mgr 2007 R2 and installed the NetApp simulator. This simulator acts as if it is a real Netapp Filer appliance it can be download from the <a href="http://communities.netapp.com/docs/DOC-1034">NetApp website</a> (login required). The cool thing is after installation you can also query the device by SNMP in your test environment ideal if you want to do some serious testing!</p>
<p><em>Maybe needless to say but always do your testing in a test environment!</em><br />
 </p>
<h2><strong><em><span style="font-size: large"><strong><em><span style="font-size: large">Approach</span></em></strong></span></em></strong></h2>
<p><br />
Before we start with SNMP tools, mibs and authoring console it is crucial to design your model, classes and their properties and relationships. Therefore for every management pack you want to create start with a design and name your goals. <br />
 </p>
<ul>
    <li><strong>How does the solution work? </strong></li>
    <li><strong>What tells me the application is running smooth? </strong></li>
    <li><strong>What classes make up the application and how do they relate to each other? </strong></li>
    <li><strong>How can I collect data? </strong></li>
    <li><strong>Which performance data is relevant? </strong></li>
    <li><strong>What do you want to monitor and how should it reflect the health state? </strong></li>
</ul>
<p>There are more but if you can answer these questions you should have enough information to start with the design.</p>
<h2><br />
<span style="font-size: large"><strong><em>Designing the Management Pack</em></strong></span></h2>
<p><br />
<br />
First I started with designing the different parts (classes, objects) which made up a filer. Please always start with a clear design, because adding parts later on can be a real challenge if your classes are hosted and their relationships! <br />
<br />
Basically the main classes for a NetApp Appliance are <strong>Filer – Aggregate – Volume – Lun <br />
</strong><br />
 </p>
<p> </p>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="center"><strong>To put it more visual</strong></div>
<div style="border-bottom: medium none; text-align: center; border-left: medium none; border-top: medium none; border-right: medium none"><br />
  <img width="447" height="350" alt="" src="http://www.systemcentercentral.com/Portals/0/blog-images/NetApp/NetApp - 1.jpg" /></div>
<div class="separator" style="border-bottom: medium none; text-align: center; border-left: medium none; clear: both; border-top: medium none; border-right: medium none"> <br />
 </div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none">The Filer is the main class and all classes beneath the filer are hosted (depend on another). <br />
 </div>
<p><strong>Remember a Hosted class cannot exist without its host!</strong> <br />
<br />
When you look at the design <br />
<br />
An Aggregate cannot exist without a Filer ------------> Aggregate Hosted by a Filer <br />
 </p>
<div style="text-align: left">A Volume cannot exist without an Aggregate --------> Volume Hosted by an Aggregate <br />
 </div>
<div style="text-align: left">A Lun cannot exist without a Volume ----------------> Lun Hosted by a Volume <br />
 </div>
<p><br />
Voila we have now already created our Classes and relationships!</p>
<p> </p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
    <tbody>
        <tr>
            <td valign="top" width="200"><strong>Classes</strong></td>
            <td valign="top" width="200"><strong>Relationship</strong></td>
        </tr>
        <tr>
            <td valign="top" width="200">NetApp.Management.Pack.Class.NetApp.Filer</td>
            <td valign="top" width="200"> </td>
        </tr>
        <tr>
            <td valign="top" width="200">NetApp.Management.Pack.Class.NetApp.Aggregate</td>
            <td valign="top" width="200">NetApp.Management.Pack.Relationship.Filer.Hosts.Aggregate</td>
        </tr>
        <tr>
            <td valign="top" width="200">NetApp.Management.Pack.Class.NetApp.Volume</td>
            <td valign="top" width="200">NetApp.Management.Pack.Relationship.Aggregate.Hosts.Volume</td>
        </tr>
        <tr>
            <td valign="top" width="200">NetApp.Management.Pack.Class.NetApp.Lun</td>
            <td valign="top" width="200">NetApp.Management.Pack.Relationship.Volume.Hosts.Lun</td>
        </tr>
    </tbody>
</table>
<p> </p>
<h2><span style="font-size: large"><strong><em>Design Discovery</em></strong></span></h2>
<p>Now we have named our classes we need to start designing what kind of properties (attributes) we want to discover. <br />
<br />
First let’s start with the filer we want to discover. This is the easiest one since we are targeting the discovery on the Base Class Microsoft.SystemCenter.Networkdevice we don’t need to add any key properties. <br />
<br />
The properties we want to discover for a filer are: <br />
 </p>
<div class="separator" style="text-align: center; clear: both"> <img width="522" height="206" alt="" src="http://www.systemcentercentral.com/Portals/0/blog-images/NetApp/netapp prop 01.jpg" /> <br />
 </div>
<p>Since its base class is Microsoft.SystemCenter.Networkdevice it automatically inherits the properties of the base class which are: <br />
 </p>
<div class="separator" style="text-align: center; clear: both"> <img width="504" height="250" alt="" src="http://www.systemcentercentral.com/Portals/0/blog-images/NetApp/netapp prop 02.jpg" /> <br />
 </div>
<div class="separator" style="border-bottom: medium none; text-align: center; border-left: medium none; clear: both; border-top: medium none; border-right: medium none"><br />
 </div>
<p>This means a filer has all its own properties and the ones it inherits from the networkdevice class.</p>
<p><em><u>The screenshot shows all properties belonging to a Filer Class.</u></em> <br />
<img width="564" height="565" alt="" src="http://www.systemcentercentral.com/Portals/0/blog-images/NetApp/Filer prop.jpg" /></p>
<p>Notice a Network device has a key property of IPAddress. A filer inherits the properties from a network device so we can use them in the rest of our management pack design! <br />
Because the Filer its base class is a network device which is a non-abstract class the filer can't have a key property. Therefore we don't need to add one. <br />
<br />
 </p>
<p align="left">The other classes have hosted relationships and therefore a key property is required. For a class to be hosted by another class you need to declare key properties. Why is this needed? <br />
<br />
When you discover a volume you will also need to discover on which aggregate the volume is hosted and on which filer. A key property is what makes the difference between instances of a class.</p>
<p align="left"><br />
<u><em>Let’s take the earlier example again</em></u> <br />
<img width="281" height="346" alt="" src="http://www.systemcentercentral.com/Portals/0/blog-images/NetApp/example.jpg" /></p>
<p>When you are discovering a volume (instance of a volume class like volume-2) the discovery will also need to know on which aggregate (instance of an aggregate class Aggregate-1) the volume (Volume-2)resides.</p>
<p>As you can see one filer can host multiple aggregates and each aggregate on its turn can host even more volumes. So how can you tell the difference of an Aggregate….well in our case by its name! <br />
<br />
<u>There is our key property for an Aggregate!</u> <br />
<br />
Now we know the unique property of an aggregate we need to discover the volume and it's key property which is again its name! The same goes for the Lun class as well. <br />
Our discovery which we are designing in the next post will discover the volume name and aggregate name. This way volume-2  is discovered which is hosted by Aggregate-1. <br />
We have the key properties and we can fill in the other properties as well. Our total design is now complete: <br />
<br />
 </p>
<div class="separator" style="border-bottom: medium none; text-align: left; border-left: medium none; clear: both; border-top: medium none; border-right: medium none"> <img style="width: 301px; height: 530px" alt="" src="http://www.systemcentercentral.com/Portals/0/blog-images/NetApp/all properties.jpg" /> <br />
 </div>
<p>Notice the key properties and the other properties as well. The important one is the key property the others you are free to create yourself.</p>
<p>I skipped a little part about the properties but with the SNMP tool you are able to tell which properties are appropriate for you. Next Series will cover this together with the actual discoveries. <br />
 </p>
<p><strong><em>Although there are a few pointers</em>:</strong></p>
<ul>
    <li>Always be aware of the fact Ops Mgr is not SCCM..... Discovering attributes should only be used when you are going to use them in the future. When your purpose is collecting inventory System Center Configuration Manager is your friend and does this far more efficient then Ops Mgr.</li>
    <li>Also don't use Attributes which frequently change like free disk space...this also causes pressure on the discoveries.</li>
</ul>
<h3><strong><em>The Next post Part 2 will cover authoring the discoveries.</em></strong><font color="#ffff00"><u> </u></font></h3>]]></description>
			<pubDate>Tue, 31 Aug 2010 15:36:52 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/57726/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: System.Performance.ConsecutiveSamplesThreshold monitor Gives a Wrong Alert Description]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/57533/Default.aspx]]></link>
			<description><![CDATA[<p>First of all I tested this on both the R2 version as the SP1 version of System Center Operations Manager 2007 but the results are not the same. <br />
 </p>
<p>During testing this solution only works on a 2007 R2 agent. I have tested this with both versions of the agent in both a SP1 and R2 environment and it only worked on the R2 Agent. <br />
<br />
<u><em>Result form the R2 Agent:</em></u> <br />
<br />
<img alt="" style="width: 511px; height: 149px" src="http://www.systemcentercentral.com/Portals/0/blog-images/scomR2 agent - value.jpg" /></p>
<p><em><u>Result from the SP1 Agent:</u></em></p>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none"><img alt="" width="498" height="144" src="http://www.systemcentercentral.com/Portals/0/blog-images/scomsp1 agent - value.jpg" /> 
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none"> </div>
</div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left">
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left"> </div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left">Why it only works on a R2 agent and not on a SP1 is a bit of a mistery to me since my first assumption was they corrected the monitor itself which resulted in the output. But since the solution doesn't work on a SP1 agent even if it is talking to an R2 environment or visa versa. The error seems to be related to the way the agent outputs the data to the Management server..... <br />
 </div>
Now to continue with the monitor on a R2 Agent. <br />
 </div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left">I tested this with the standard rule in the Windows Server 2003 Operating System Management Pack - CPU Percentage Interrupt Time. And created a custom rule based on the previous one to be able to play around with the descriptions. <br />
  </div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left">After creating the rules and settings and started testing I decided to run the rules to the workflow analyzer to be able to tell what happens behind the scenes. <br />
 </div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left">The monitor polls <br />
<br />
<strong>Performance Data</strong> <br />
for <strong>system.performance.data</strong> which results in : <br />
<br />
Recieved DataItem <br />
<br />
<em><dataitem sourcehealthserviceid="6C36955A-347C-8ADC-ED3B-E4F4DEC0D0A0" time="2009-11-20T09:59:27.6569446+01:00" type="System.Performance.Data"> <br />
<timesampled>2009-11-20T09:59:27.0000000+01:00</timesampled> <br />
<objectname>Processor</objectname> <br />
<countername>% Interrupt Time</countername> <br />
<instancename>0</instancename> <br />
<isnull type="Boolean">false</isnull> <br />
<u><strong><value>3.51950454711914</value></strong></u></em> <font color="#ff0000"><----------------The Value which is in other monitors $Data/Context/Value$</font></div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left"><em></dataitem></em> <br />
<br />
Next is the <strong><u>System Performance.ConsecutiveSamplesData</u></strong> <br />
<br />
This where the confusion starts <br />
Recieved DataItem</div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left"> <em><dataitem sourcehealthserviceid="6C36955A-347C-8ADC-ED3B-E4F4DEC0D0A0" time="2009-11-20T09:59:27.6569446+01:00" type="System.Performance.ConsecutiveSamplesData"> <br />
<timesampled>2009-11-20T09:59:27.0000000+01:00</timesampled> <br />
<objectname>Processor</objectname> <br />
<countername>% Interrupt Time</countername> <br />
<instancename>0</instancename> <br />
<isnull type="Boolean">false</isnull> <br />
</em><value></value><em><u><strong><Value>3</Value></strong> </u></em><font color="#ff0000"><---------This is the counter increasing everytime the treshold is exceeded</font><font color="#ff0000"> <br />
</font><u><em><strong><samplevalue>3.51950454711914</samplevalue></strong></em></u> <font color="#ff0000"><-------------------------------------------Notice now the Value has changed to Sample Value $Data/Context/SampleValue$</font></div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left"><em></dataitem> <br />
</em><br />
Next the <strong><Value>3</value></strong> is passed to 2 Expressions: <br />
<br />
<em><valueexpression> <br />
<xpathquery type="Double">Value</xpathquery> <br />
</valeuexpression> <br />
<operator>LESS</operator> <br />
<valueexpression> <br />
<strong><u><valuetype='double'>5</value></u></strong></em> <font color="#ffff00"><font color="#ff0000"><-------------This is the value presented when using $Data/Context/Value$</font> </font></div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left"><em></valueexpression> <br />
</em><br />
<em>Resolves To: <br />
<br />
3 <br />
LESS <br />
5 <br />
using Compare Type Double <br />
RESULT=MATCH <br />
<br />
<valueexpression> <br />
</em><xpathquery type="Double"></xpathquery><em>Value <br />
</valeuexpression> <br />
</em><operator></operator><em>GREATER_EQUAL <br />
<valueexpression> <br />
<strong><u><valuetype='double'>5</value></u></strong></em><font color="#ff0000"> <-------------This is the value presented when using $Data/Context/Value$</font></div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left"><em></valeuexpression> <br />
</em></div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left"><em>Resolves To: <br />
<br />
3 <br />
GREATER_EQUAL <br />
5 <br />
using Compare Type Double <br />
RESULT=MATCH <br />
<br />
</em>Okay now this monitor is a bit confusing because when you look at it's setting in the console it looks like you are only declaring how many counters should be evaluated, but according to the results of the workflow this is also the value of how many times the counters may arise above the first threshold of 1. <br />
<br />
The monitor is working because the data being evaluated by the value expression doesn't make a difference they are both value's. <br />
<br />
The thing which is confusing is when you are designing a MP based on this monitor and want to generate an alert is when you run into trouble and should use the alternate value. <br />
<br />
WorkAround for R2 use <strong>$Data/Context/SampleValue$</strong> if you want to show the last sampled value in your alert description instead of <strong>$Data/Context/Value$</strong>. <br />
 </div>
<div style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" align="left"> </div>
<h5>Full Alert Description for Consecutive Samples Threshold Monitor Type:</h5>
<table border="0" cellspacing="0" cellpadding="2" width="473">
    <tbody>
        <tr>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>Instance</strong></span></span></td>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"> </span></span></td>
            <td valign="top" width="205"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>$Data/Context/InstanceName$</strong></span></span></td>
        </tr>
        <tr>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>Object</strong></span></span></td>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"> </span></span></td>
            <td valign="top" width="205"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>$Data/Context/ObjectName$</strong></span></span></td>
        </tr>
        <tr>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>Counter</strong></span></span></td>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"> </span></span></td>
            <td valign="top" width="205"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>$Data/Context/CounterName$</strong></span></span></td>
        </tr>
        <tr>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>Threshold</strong></span></span></td>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"> </span></span></td>
            <td valign="top" width="205"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>$Data/Context/Value$</strong></span></span></td>
        </tr>
        <tr>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>Last Sampled Value</strong></span></span></td>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"> </span></span></td>
            <td valign="top" width="205"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>$Data/Context/SampleValue$</strong></span></span></td>
        </tr>
        <tr>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>Last Time Sampled</strong></span></span></td>
            <td valign="top" width="133"><span style="color: #0000ff"><span style="background-color: #ffffff"> </span></span></td>
            <td valign="top" width="205"><span style="color: #0000ff"><span style="background-color: #ffffff"><strong>$Data/Context/TimeSampled$</strong></span></span></td>
        </tr>
    </tbody>
</table>
<p> </p>]]></description>
			<pubDate>Sat, 12 Dec 2009 21:10:22 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/57533/Default.aspx</guid>
		</item>
	</channel>
</rss>
