Statistic collection Netflow and SNMP, peak, average
SNMP
We have an Orion device that is collecting via SNMP polls on hundreds of switches and routers. The collection for each device is about once every 15 minutes.
I am wondering how the data is represented on the graph, if the coellection only happens every 15 minutes.
Would the graphing tool just draw straight lines between the points fifteen minutes apart?
For example, if the collection is taken and the interface utilization is at 50% when taken, then utilization shoots up to 100% for fourteen minutes, then goes back down to 50% when the next poll is taken, will I totally miss the period of 100% utilization?
Do routers and switches have any type of SNMP buffer that will show the peaks that can be collected?
Does the "load-interval" comman on the interface affect this at all?
Netflow
We also have all devices sending information to a netflow collector. The collector is showing that the update is every minute.
Do routers and switches constantly send netflow information to the collector in real time?
The routers have top talkers configured on each interface:
ip flow top-talkers
top ten
sort-by bytes
cache-timeout 3600000
My understanding is that the cache-timeout in in milliseconds, which would be an hour.
Does this mean I can do "sh ip flow top-talkers" and the device will not update this information for an hour?
Also, how does this affect the information received ny the collector, if it does?
Create your own collection rule, to mirror the sample times, and what not. Look at the data from your rule vs the mp default rule. It probably has to do with the chart scale imho.
Regards, Blake Email: mengotto<at>hotmail.com Blog: http://discussitnow.wordpress.com/ If my response was helpful, please mark it as so, if it answered your question, then please also mark it accordingly. Thank you.
Similar Messages
-
Best practice for statistic collection in 10gR2
Hello,
In Oracle 9i, I had to run every day scripts to calculate statistics.
But in Oracle 10gR2, the collection of statistics has become automatic...I would like some feebback from your experience:
1/ Does it work well?
2/ Do I still need to run my own scripts to calculate statistics as in 9i?
3/ What are the options or parameter to activate to get the best result in 10gR2
4/ Please, give me the best practice to implement the automatic statistic collection in 10gR2
Thanks for your helpChristophe CHANEMOUGANADIN wrote:
Some more question on this topic :
a/ what happens when a empty table is loaded suddenly and there is a query on that...is the statistic calculated at once?no, it would be normal to run dbms_stats manually as part of significant loads
b/ is there any timing for Oracle to launch the statistic collection? the default schedule for maintenance jobs including stats is 10pm - (IIRC) 8am every night and all weekend i.e weeknights and weekends.
c/ is it possible to launch statistic collection only the night when the load is low?see above.
Niall -
What else SCE couldn't do without Collection manager and Subscriber Manager for SCE?
Can we still monitor the traffic and control the subscriber even we do not have any Collection manager and Subscriber Manager? with SCE alone couldn't analysis or control the traffic?
Hi,
Without CM you can not generate reports based on RDR collection process. For example if you dont have Collection Manager you can not generate reports that are predefined on the SCA Reporter or insight. Only you can do is you can poll SNMP counters/values by a s/w and you can graph them, but it is not suitable and not covers the all data that SCE collects and reports. And for the SM side if you want to communicate with a policy/external server you really need an SM, also you can use its internal Quota manager to count quota. -
Difference between MIB retrieval and SNMP server hosts
Hi all,
can anybody explain difference between MIB retrieval systems and SNMP server hosts?The two of these can both be different systems or the same system
A MIB retrieval system usually is an NMS system that actively polls the device to collect SNMP/MIB information (counters, stats, etc)
Whereas a host is typically where traps are sent to from the network devices.
Most NMS systems act as both a retrieval (poller) and host (trap receiver). -
How can I exit a collection window and return to parent folder?
I would "love" to have a place where I could ask the simple questions like this that come up and seem so simple to those who know, they don't mention the details I need like how to close a working collection window and move back to the parent folder of that collection.
I've been stuck for two days (it happened before) in a window (library module) with a collection of 8 photos. I cannot find any way to close that window or go back to the library collection of hundreds of photos from which it was chosen. It's very frustrating to be stuck in this window, perhaps forever?
How do I close these windows. Isn't there a "back" button?
I started in Photoshop 3, then 5, then 7, then stopped renewing due to difficulty learning PS until the Adobe CC became available with the many tutorials. It was great learning how to make a collection, but the tutorials didn't mention how to get back to the main folder where the collection was chosen. So again, I"m stuck at an even lower level of functioning than with photoshop alone.
I had to copy a photo and open it separatly in Photoshop just to be able to work on it. Yesterday I could "edit in Photoshop cc" with right click. Today, it won't even do that.
I suspect now two things are working to prevent me from working properly on my photos but have no clue how to fix this.In the library module, left-hand panel, there are different sections or tabs. Collections is one of those tabs near the bottom out that panel. If you scroll up in that panel you should see other sections, one of which is "Folders". If that isn't showing, then right-click on the Collections section heading and make sure there are checkmarks in the sections that you want to have displayed. To return to the folder you need to go to the folders section and find the folder in your list.
Another way to return to a folder is to click in the area in this illustration:
Doing so will present a list of folders that you have recently been inside of. You can click on one of those folders and return directly to it. -
How to set security group as primary site collection admin and secondary site collection admin using powershell in sharepoint online site - office 365?
Hi,
According to your description, my understanding is that you want to set security group as admin of primary and secondary site collection using PowerShell command in office 365.
I suggest you can use the command below to set the group to site owner, then it will have the site collection admin permission.
Set-SPOSite -Identity https://contoso.sharepoint.com/sites/site1 -Owner [email protected] -NoWait
Here are some detailed articles for your reference:
https://technet.microsoft.com/en-us/library/fp161394(v=office.15)
http://blogs.realdolmen.com/experts/2013/08/16/managing-sharepoint-online-with-powershell/
Thanks
Best Regards
Jerry Guo
TechNet Community Support -
Declare and initialize a varray of collection Object and pass it as OUT Par
Hi ,
How to declare and initialize a varray of collection Object and pass it as OUT Parameter to a procedure.
Following is the Object and VARRAY Type 's I have created and trying to pass the EmployeeList varray type variable as an OUT parameter to my stored procedure, but it is not working. I tried different possibilities of declaring and initializing the varray type variable but it did not work. Any help would be appreciated.
CREATE TYPE Employee IS Object
employeeId Number,
employeeName VARCHAR2(31),
employeeType VARCHAR2(20),
CREATE TYPE EmployeeList IS VARRAY(100) OF Employee;
/* Procedure execution block */
declare
employees EmployeeList;
begin
EXECUTE displayEmployeeDetails(100, employees);
end;
Thanks in advance,
Raghu.but it is not workingWhat's the definition of not working?
Error messages are always helpful.
SQL> CREATE OR REPLACE TYPE Employee IS Object
2 (
3 employeeId Number,
4 employeeName VARCHAR2(31),
5 employeeType VARCHAR2(30)
6 );
7 /
Type created.
SQL>
SQL> CREATE OR REPLACE TYPE EmployeeList IS VARRAY(100) OF Employee;
2 /
Type created.
SQL> CREATE OR REPLACE PROCEDURE getEmployeeDetails (
2 o_employees OUT employeelist
3 )
4 AS
5 BEGIN
6 o_employees := employeelist();
7 o_employees.EXTEND;
8 o_employees(1) := employee(1,'Penry','Mild Mannered Janitor');
9 END;
10 /
Procedure created.
SQL> set serveroutput on
SQL> declare
2 employees employeelist;
3 begin
4 getemployeedetails(employees);
5 for i in 1 .. employees.count
6 loop
7 dbms_output.put_line(employees(i).employeeid||' '||
8 employees(i).employeename||' '||
9 employees(i).employeetype);
10 end loop;
11 end;
12 /
1 Penry Mild Mannered Janitor
PL/SQL procedure successfully completed.
SQL> -
SCOM SP1 Groups, Classes and SNMP
I've been working on a management pack using some of the examples on the net (Kristopher Bash from the operating-quadrantin has been a huge inspiration) to monitor an Isilon cluster. This had lead me to a number of interesting challenges to over come since I have to design this within the confines of SP1 and I have a unique networking to device configuration.
Device Overview:
The Isilon cluster itself is a number of FreeBSD systems (nodes) joined together via and infiniband backend to create a single NAS. While normally this would not be an issue, network connectivity to the device and SNMP response from the cluster have been. In my configuration I have a total of 8 nodes each node has 2 network interfaces. Of these 16 network interfaces only 2 are accessible/on the same network as my RMS (em1 node2, em1 node4).
Device SNMP Design:
While the cluster is highly dynamic the SNMP sub-systems are not. The MIB created by Isilon does not join the whole of the cluster into an index for SNMP polling. I can only poll a single nodes OID's. To over come this limitation Isilon implemented SNMP-Proxy or comtosec within the system. This allowed me to poll node 3 by changing the community name for the OID I was polling from the discovered name to <discoveredname>_node_3.
MP Design:
Now I'm not the best at MP design since I rarely work within SCOM so don't laugh too hard... I reused items from Kristopher's Cisco MP and created a number of classes for discovery and item hosting. To address the limitation I found within SCOM for dynamic discovery and 1 IP address 1 Community Name, I created a class property within the root called ConfiguredNodes. I can poll the Isilon an populate this value (8). Then I created a sub-class property value called NodeCommStr to fill in all the custom community names I generate using a VB script with Base64 encode/decode, the discovery community name and the ConfiguredNodes value, in the data source for sub-class discovery. public_node_1 public_node_2 etc...
All in all this is working well however I have run into a few design roadblocks and I have some questions.
1. When I discover a set of items within the Isilon cluster the health explorer is not sorting this information alphabetically. Is there a value I can include in the dependency roll-up to correct this?
2. I have run into an issue with the Isilon MIB and I'm looking for the best way to overcome the MIB's design. They included a fan table with fan information and speed of the fans however there is no status (success{0}, warning{1}, error{2}). I created a monitor type to compensate for this and included overrides for the warning and critical event points. This is where I found the curve ball, seems that the fans are not the same.... There are 2 sets of fans - Chassis and Power Supply - and they have different thresholds *rolls eyes*. Some I'm asking for the best design advice, should I create 2 classes, discoveries, monitor types, etc.? Or can I address this issue by creating 2 monitor types with a string filter?
3. I've been successful in creating this MP and displaying the information as a single device however I was wondering if there was a way to create dynamic groups with sub groups. This would have to be 100% dynamic since I can add a 9th 10th 192nd (yes 192) node to the cluster.
Cluster
-ClusterNode1
-ClusterNode1Power
-ClusterNode1Fans
-etc
The information is there in the NodeCommStr, I'm just in brain lock on how to design it right now.
Again, code is raw and a work in progress so please no giggling. Oh this is a multi post... Code is too long.
<Manifest>
<Identity>
<ID>IsilonSNMP</ID>
<Version>1.0.1.2</Version>
</Identity>
<Name>IsilonSNMP</Name>
<References>
<Reference Alias="MicrosoftSystemCenterNetworkDeviceLibrary">
<ID>Microsoft.SystemCenter.NetworkDevice.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Snmp">
<ID>System.Snmp.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="SystemHardwareLibrary">
<ID>System.Hardware.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Windows">
<ID>Microsoft.Windows.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="SystemPerformanceLibrary">
<ID>System.Performance.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="System">
<ID>System.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="SC">
<ID>Microsoft.SystemCenter.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Health">
<ID>System.Health.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
</References>
</Manifest>
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="IsilonSNMP.Class.IsilonCluster" Accessibility="Public" Abstract="false" Base="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice" Hosted="false" Singleton="false">
<Property ID="Hostname" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="ConfiguredNodes" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<!-- <Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" /> -->
</ClassType>
<ClassType ID="IsilonSNMP.Class.IsilonCluster.Nodes" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.Chassis" Hosted="true" Singleton="false">
<Property ID="Name" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
</ClassType>
<ClassType ID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.PhysicalDisk" Hosted="true" Singleton="false">
<Property ID="Index" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
<!-- <Property ID="ConfiguredNodes" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" /> -->
<Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="BayIndex" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
</ClassType>
<ClassType ID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.Fan" Hosted="true" Singleton="false">
<Property ID="Index" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="FanNumber" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
</ClassType>
<ClassType ID="IsilonSNMP.Group.IsilonClusters" Accessibility="Public" Abstract="false" Base="System!System.Group" Hosted="false" Singleton="true" />
</ClassTypes>
<RelationshipTypes>
<RelationshipType ID="IsilonSNMP.Relationship.ClusterHostsNodes" Accessibility="Internal" Abstract="false" Base="System!System.Hosting">
<Source>IsilonSNMP.Class.IsilonCluster</Source>
<Target>IsilonSNMP.Class.IsilonCluster.Nodes</Target>
</RelationshipType>
<RelationshipType ID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters" Accessibility="Public" Abstract="false" Base="System!System.Containment">
<Source>IsilonSNMP.Group.IsilonClusters</Source>
<Target>IsilonSNMP.Class.IsilonCluster</Target>
</RelationshipType>
<RelationshipType ID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" Accessibility="Public" Abstract="false" Base="System!System.Hosting">
<Source>IsilonSNMP.Class.IsilonCluster.Nodes</Source>
<Target>IsilonSNMP.Class.IsilonCluster.PhysicalDisk</Target>
</RelationshipType>
<RelationshipType ID="IsilonSNMP.Relationship.NodesHostsPhysicalFan" Accessibility="Public" Abstract="false" Base="System!System.Hosting">
<Source>IsilonSNMP.Class.IsilonCluster.Nodes</Source>
<Target>IsilonSNMP.Class.IsilonCluster.PhysicalFan</Target>
</RelationshipType>
</RelationshipTypes>
</EntityTypes>
<ModuleTypes>
<DataSourceModuleType ID="IsilonSNMP.DataSource.BasicSNMPProbe" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime />
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="SNMPProbe" TypeID="Snmp!System.SnmpProbe">
<IsWriteAction>false</IsWriteAction>
<IP>$Config/IPAddress$</IP>
<CommunityString>$Config/CommStr$</CommunityString>
<SnmpVarBinds>
<SnmpVarBind>
<OID>$Config/OID$</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
</SnmpVarBinds>
</ProbeAction>
<ConditionDetection ID="ValueFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String" />
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="ValueFilter">
<Node ID="SNMPProbe">
<Node ID="Scheduler" />
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>Snmp!System.SnmpData</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverContainmentClasses" Accessibility="Internal" Batching="false">
<Configuration>
<IncludeSchemaTypes>
<SchemaType>System!System.ParamListSchema</SchemaType>
<SchemaType>System!System.Discovery.MapperSchema</SchemaType>
</IncludeSchemaTypes>
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="ClassID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="InstanceSettings" type="SettingsType" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>60</Interval>
<SyncTime />
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ConditionDetection ID="Mapper" TypeID="System!System.Discovery.ClassSnapshotDataMapper">
<ClassId>$Config/ClassID$</ClassId>
<InstanceSettings>$Config/InstanceSettings$</InstanceSettings>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="Mapper">
<Node ID="Scheduler" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverCluster" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="IP" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="CommunityString" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="SystemOID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval Unit="Seconds">$Config/Interval$</Interval>
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="Probe" TypeID="Snmp!System.SnmpProbe">
<IsWriteAction>false</IsWriteAction>
<IP>$Config/IP$</IP>
<CommunityString>$Config/CommunityString$</CommunityString>
<SnmpVarBinds>
<SnmpVarBind>
<OID>.1.3.6.1.4.1.12124.1.1.4.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.4.1.12124.1.1.1.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.5.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.1.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.4.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.6.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.2.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
</SnmpVarBinds>
</ProbeAction>
<ConditionDetection ID="Mapper" TypeID="System!System.Discovery.FilteredClassSnapshotDataMapper">
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>1.3.6.1.4.1.12124.</Pattern>
</RegExExpression>
</Expression>
<ClassId>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Name>
<Value>$Data/Source$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Name$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[5]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemDescription$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[4]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemContact$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[3]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemLocation$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[2]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemOID$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[1]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[5]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]/Hostname$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[6]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[7]/Value$</Value>
</Setting>
</Settings>
</InstanceSettings>
</ConditionDetection>
<ConditionDetection ID="SystemOIDFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<RegExExpression>
<ValueExpression>
<Value>$Config/SystemOID$</Value>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>1.3.6.1.4.1.12124.</Pattern>
</RegExExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="Mapper">
<Node ID="Probe">
<Node ID="SystemOIDFilter">
<Node ID="Scheduler" />
</Node>
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverPhysicalDisk" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="ConfiguredNodes" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="BayIndex" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime />
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="ScriptDiscovery" TypeID="Windows!Microsoft.Windows.ScriptDiscoveryProbe">
<ScriptName>DiscoverIsilonDisk.vbs</ScriptName>
<Arguments>$Config/IPAddress$ $Config/CommStr$ $MPElement$ $Target/Id$ $Config/ConfiguredNodes$</Arguments>
<ScriptBody>
<![CDATA['Discover PhysicalDisk
Dim oAPI, oDiscoveryData, oInst, objWMIServices, objWMILocator, oArgs
set oArgs = Wscript.Arguments
if oArgs.Count <5 Then
Wscript.Quit -1
End If
DeviceIP = oArgs(0)
CommStr = oArgs(1)
SourceID = oArgs(2)
ManagedEntityId = oArgs(3)
StrConfiguredNodes = oArgs(4)
CommStr = Decode(CommStr)
ConfiguredNodesCommStr = cstr(CommStr)
wscript.echo CommStr
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIServices = objWMiLocator.ConnectServer("","root\snmp\localhost")
'Name community name
GetPhysicalDisks
'Created community names
For i = 1 to StrConfiguredNodes
CommStr = ConfiguredNodesCommStr & "_node_" & i
GetPhysicalDisks
Next
'Return all data to SCOM
Call oAPI.Return(oDiscoveryData)
Sub GetPhysicalDisks
on error resume next
Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")
objWmiNamedValueSet.Add "AgentAddress", cstr(DeviceIP)
objWmiNamedValueSet.Add "AgentReadCommunityName", cstr(CommStr)
Set colPhysicalDisk = objWmiServices.InstancesOf("SNMP_ISILON_MIB_diskTable", , objWMINamedValueset)
For each objItem in colPhysicalDisk
nIndex = objItem.diskBay
sDesc = objItem.diskSerialNumber
if nIndex > 0 then
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']$")
call oInst.AddProperty("$MPElement[Name='MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice']/IPAddress$", DeviceIP)
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/Index$", cstr(CommStr) & "-" & cdbl(nIndex))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/NodeCommStr$", Encode(CommStr))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/BayIndex$", cdbl(nIndex))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.Nodes']/Name$", "Cluster")
call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - Bay " & nIndex & " - Serial Number " & HexToString(sDesc))
'call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", HexToString(sDesc))
call oDiscoveryData.AddInstance(oInst)
'Test Section
'wscript.echo Base64Encode(CommStr)
'wscript.echo Base64Encoder(CommStr)
'wscript.Echo CommStr
'wscript.Echo nIndex
'Wscript.Echo HexToString(sDesc)
'wscript.echo cdbl(nIndex) & cstr(CommStr)
end if
Next
on error goto 0
End Sub
Function Decode(strB64)
strXML = "<B64DECODE xmlns:dt=" & Chr(34) & _
"urn:schemas-microsoft-com:datatypes" & Chr(34) & " " & _
"dt:dt=" & Chr(34) & "bin.base64" & Chr(34) & ">" & _
strB64 & "</B64DECODE>"
Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0")
oXMLDoc.LoadXML(strXML)
decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue
set oXMLDoc = nothing
End Function
Function Encode(Str)
'Use ADODB.Stream to write Ansi string to Unicode stream
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.Open
objStream.Charset = "unicode"
objStream.WriteText Str
objstream.Flush
'Read the stream back as a byte array
objStream.Position = 0
objStream.Type = 1
temp = objstream.read(2) 'read two bytes of the stream to discard the byte order mark
bArray = objStream.Read
objStream.Close
'Convert byte array to Base64
set objXML = createobject("MSXML2.DOMDocument.3.0")
Set objNode = objXML.createElement("b64")
objNode.dataType = "bin.base64"
objNode.nodeTypedValue = bArray
Encode = objNode.Text
Set Stream = Nothing
set objNode = nothing
set objXML = nothing
End Function
Function HexToString(str)
on error resume next
sOutput = ""
For x = 1 To len(str) Step 2
sChar = Chr(Clng("&h" & Mid(str,x,2)))
sOutput = sOutput & sChar
Next
if err.number = 0 then
HexToString = sOutput
Else
HexToString = str
end if
End Function
set oInst = nothing
set oDiscoveryData = nothing
set oArgs = nothing
set oAPI = nothing
set objWMILocator = nothing
set objWMIServices = nothing
set objWMINamedValueSet = nothing
]]>
</ScriptBody>
<TimeoutSeconds>120</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="ScriptDiscovery">
<Node ID="Scheduler" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType><DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverPhysicalFan" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="ConfiguredNodes" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="FanNumber" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="FanSpeedHighCritical" type="xsd:integer" />
<xsd:element minOccurs="1" name="FanSpeedLowWarn" type="xsd:integer" />
<xsd:element minOccurs="1" name="FanSpeedLowCritical" type="xsd:integer" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedHighCritical" Selector="$Config/FanSpeedHighCritical$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedLowWarn" Selector="$Config/FanSpeedLowWarn$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedLowCritical" Selector="$Config/FanSpeedLowCritical$" ParameterType="int" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime />
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="ScriptDiscovery" TypeID="Windows!Microsoft.Windows.ScriptDiscoveryProbe">
<ScriptName>DiscoverIsilonPhysicalFan.vbs</ScriptName>
<Arguments>$Config/IPAddress$ $Config/CommStr$ $MPElement$ $Target/Id$ $Config/ConfiguredNodes$</Arguments>
<ScriptBody>
<![CDATA['Discover PhysicalFan
Dim oAPI, oDiscoveryData, oInst, objWMIServices, objWMILocator, oArgs
set oArgs = Wscript.Arguments
if oArgs.Count <5 Then
Wscript.Quit -1
End If
DeviceIP = oArgs(0)
CommStr = oArgs(1)
SourceID = oArgs(2)
ManagedEntityId = oArgs(3)
StrConfiguredNodes = oArgs(4)
CommStr = Decode(CommStr)
ConfiguredNodesCommStr = cstr(CommStr)
wscript.echo CommStr
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIServices = objWMiLocator.ConnectServer("","root\snmp\localhost")
'Name community name
GetPhysicalFan
'Created community names
For i = 1 to StrConfiguredNodes
CommStr = ConfiguredNodesCommStr & "_node_" & i
GetPhysicalFan
Next
'Return all data to SCOM
Call oAPI.Return(oDiscoveryData)
Sub GetPhysicalFan
on error resume next
Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")
objWmiNamedValueSet.Add "AgentAddress", cstr(DeviceIP)
objWmiNamedValueSet.Add "AgentReadCommunityName", cstr(CommStr)
Set colPhysicalFan = objWmiServices.InstancesOf("SNMP_ISILON_MIB_FanTable", , objWMINamedValueset)
For each objItem in colPhysicalFan
nIndex = objItem.fanNumber
sDesc = objItem.fanDescription
if nIndex > 0 then
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']$")
call oInst.AddProperty("$MPElement[Name='MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice']/IPAddress$", DeviceIP)
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/Index$", cstr(CommStr) & "-" & cdbl(nIndex))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/NodeCommStr$", Encode(CommStr))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/FanNumber$", cdbl(nIndex))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.Nodes']/Name$", "Cluster")
'call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - Bay " & nIndex & " - Serial Number " & HexToString(sDesc))
call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - " & HexToString(sDesc))
call oDiscoveryData.AddInstance(oInst)
'Test Section
'wscript.echo Base64Encode(CommStr)
'wscript.echo Base64Encoder(CommStr)
'wscript.Echo CommStr
'wscript.Echo nIndex
'Wscript.Echo HexToString(sDesc)
'wscript.echo cdbl(nIndex) & cstr(CommStr)
end if
Next
on error goto 0
End Sub
Function Decode(strB64)
strXML = "<B64DECODE xmlns:dt=" & Chr(34) & _
"urn:schemas-microsoft-com:datatypes" & Chr(34) & " " & _
"dt:dt=" & Chr(34) & "bin.base64" & Chr(34) & ">" & _
strB64 & "</B64DECODE>"
Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0")
oXMLDoc.LoadXML(strXML)
decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue
set oXMLDoc = nothing
End Function
Function Encode(Str)
'Use ADODB.Stream to write Ansi string to Unicode stream
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.Open
objStream.Charset = "unicode"
objStream.WriteText Str
objstream.Flush
'Read the stream back as a byte array
objStream.Position = 0
objStream.Type = 1
temp = objstream.read(2) 'read two bytes of the stream to discard the byte order mark
bArray = objStream.Read
objStream.Close
'Convert byte array to Base64
set objXML = createobject("MSXML2.DOMDocument.3.0")
Set objNode = objXML.createElement("b64")
objNode.dataType = "bin.base64"
objNode.nodeTypedValue = bArray
Encode = objNode.Text
Set Stream = Nothing
set objNode = nothing
set objXML = nothing
End Function
Function HexToString(str)
on error resume next
sOutput = ""
For x = 1 To len(str) Step 2
sChar = Chr(Clng("&h" & Mid(str,x,2)))
sOutput = sOutput & sChar
Next
if err.number = 0 then
HexToString = sOutput
Else
HexToString = str
end if
End Function
set oInst = nothing
set oDiscoveryData = nothing
set oArgs = nothing
set oAPI = nothing
set objWMILocator = nothing
set objWMIServices = nothing
set objWMINamedValueSet = nothing
]]>
</ScriptBody>
<TimeoutSeconds>120</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="ScriptDiscovery">
<Node ID="Scheduler" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
</ModuleTypes>
<MonitorTypes>
<UnitMonitorType ID="IsilonSNMP.MonitorType.PhysicalDiskStatus" Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="PhysicalDiskOK" NoDetection="false" />
<MonitorTypeState ID="PhysicalDiskNotOK" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.BasicSNMPProbe">
<Interval>$Config/Interval$</Interval>
<IPAddress>$Config/IPAddress$</IPAddress>
<CommStr>$Config/NodeCommStr$</CommStr>
<OID>$Config/OID$</OID>
</DataSource>
<ConditionDetection ID="CDPhysicalDiskOK" TypeID="System!System.ExpressionFilter">
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>HEALTHY</Pattern>
</RegExExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="CDPhysicalDiskNotOK" TypeID="System!System.ExpressionFilter">
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>DoesNotContainSubstring</Operator>
<Pattern>HEALTHY</Pattern>
</RegExExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="PhysicalDiskOK">
<Node ID="CDPhysicalDiskOK">
<Node ID="DS1" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="PhysicalDiskNotOK">
<Node ID="CDPhysicalDiskNotOK">
<Node ID="DS1" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
<UnitMonitorType ID="IsilonSNMP.MonitorType.PhysicalFanStatus" Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="PhysicalFanOK" NoDetection="false" />
<MonitorTypeState ID="PhysicalFanWarn" NoDetection="false" />
<MonitorTypeState ID="PhysicalFanCritical" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="FanSpeedHighCritical" type="xsd:integer" />
<xsd:element minOccurs="1" name="FanSpeedLowWarn" type="xsd:integer" />
<xsd:element minOccurs="1" name="FanSpeedLowCritical" type="xsd:integer" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedHighCritical" Selector="$Config/FanSpeedHighCritical$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedLowWarn" Selector="$Config/FanSpeedLowWarn$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedLowCritical" Selector="$Config/FanSpeedLowCritical$" ParameterType="int" />
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.BasicSNMPProbe">
<Interval>$Config/Interval$</Interval>
<IPAddress>$Config/IPAddress$</IPAddress>
<CommStr>$Config/NodeCommStr$</CommStr>
<OID>$Config/OID$</OID>
</DataSource>
<ConditionDetection ID="CDPhysicalFanOK" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>Less</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedHighCritical$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<ConditionDetection ID="CDPhysicalFanWarn" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<ConditionDetection ID="CDPhysicalFanCritical" TypeID="System!System.ExpressionFilter">
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>GreaterEqual</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedHighCritical$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedLowCritical$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="PhysicalFanOK">
<Node ID="CDPhysicalFanOK">
<Node ID="DS1" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="PhysicalFanWarn">
<Node ID="CDPhysicalFanWarn">
<Node ID="DS1" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="PhysicalFanCritical">
<Node ID="CDPhysicalFanCritical">
<Node ID="DS1" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
</MonitorTypes>
</TypeDefinitions>
<Monitoring>
<Discoveries>
<Discovery ID="IsilonSNMP.Discovery.Cluster" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.Nodes" />
<DiscoveryRelationship TypeID="IsilonSNMP.Relationship.ClusterHostsNodes" />
</DiscoveryTypes>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverContainmentClasses">
<IPAddress>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<ClassID>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.Nodes"]$</ClassID>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Name>
<Value>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
<Value>Cluster</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.Nodes"]/Name$</Name>
<Value>Cluster</Value>
</Setting>
</Settings>
</InstanceSettings>
</DataSource>
</Discovery>
<Discovery ID="IsilonSNMP.Discovery.IsilonCluster" Enabled="true" Target="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster" />
</DiscoveryTypes>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverCluster">
<Interval>600</Interval>
<IP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IP>
<CommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommunityString>
<SystemOID>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemOID$</SystemOID>
</DataSource>
</Discovery>
<Discovery ID="IsilonSNMP.Discovery.IsilonClustersGroup" Enabled="true" Target="IsilonSNMP.Group.IsilonClusters" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryRelationship TypeID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters" />
</DiscoveryTypes>
<DataSource ID="GP1" TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
<RuleId>$MPElement$</RuleId>
<GroupInstanceId>$MPElement[Name="IsilonSNMP.Group.IsilonClusters"]$</GroupInstanceId>
<MembershipRules>
<MembershipRule>
<MonitoringClass>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters"]$</RelationshipClass>
<Expression>
<RegExExpression>
<ValueExpression>
<Property>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Property>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>.</Pattern>
</RegExExpression>
</Expression>
</MembershipRule>
</MembershipRules>
</DataSource>
</Discovery>
<Discovery ID="IsilonSNMP.Discovery.PhysicalDisk" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" />
<DiscoveryRelationship TypeID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" />
</DiscoveryTypes>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverPhysicalDisk">
<IPAddress>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<CommStr>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommStr>
<Interval>7800</Interval>
<ConfiguredNodes>$Target/Host/Property[Type="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</ConfiguredNodes>
<BayIndex>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/BayIndex$</BayIndex>
<NodeCommStr>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/NodeCommStr$</NodeCommStr>
</DataSource>
</Discovery>
<Discovery ID="IsilonSNMP.Discovery.PhysicalFan" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" />
<DiscoveryRelationship TypeID="IsilonSNMP.Relationship.NodesHostsPhysicalFan" />
</DiscoveryTypes>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverPhysicalFan">
<IPAddress>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<CommStr>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommStr>
<Interval>8000</Interval>
<ConfiguredNodes>$Target/Host/Property[Type="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</ConfiguredNodes>
<FanNumber>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/FanNumber$</FanNumber>
<NodeCommStr>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/NodeCommStr$</NodeCommStr>
<FanSpeedHighCritical>14500</FanSpeedHighCritical>
<FanSpeedLowWarn>3400</FanSpeedLowWarn>
<FanSpeedLowCritical>3000</FanSpeedLowCritical>
</DataSource>
</Discovery>
</Discoveries>
<Monitors>
<UnitMonitor ID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" Accessibility="Public" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Snmp!System.SnmpTrapProvider.2SingleEvent2StateMonitorType" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId843498792d7d4fbf80d83f3939255dd9" MonitorTypeStateID="SecondEventRaised" HealthState="Success" />
<OperationalState ID="UIGeneratedOpStateId9fd776cd21a747c5994738e863b31fb9" MonitorTypeStateID="FirstEventRaised" HealthState="Warning" />
</OperationalStates>
<Configuration>
<FirstIP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</FirstIP>
<FirstCommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</FirstCommunityString>
<FirstAllTraps>false</FirstAllTraps>
<FirstVersion>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Version$</FirstVersion>
<FirstOIDProps>
<OIDProp>.1.3.6.1.4.1.12124.1.1.2.0</OIDProp>
</FirstOIDProps>
<FirstExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">1</Value>
</ValueExpression>
</SimpleExpression>
</FirstExpression>
<SecondIP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</SecondIP>
<SecondCommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</SecondCommunityString>
<SecondAllTraps>false</SecondAllTraps>
<SecondVersion>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Version$</SecondVersion>
<SecondOIDProps>
<OIDProp>.1.3.6.1.4.1.12124.1.1.2.0</OIDProp>
</SecondOIDProps>
<SecondExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">1</Value>
</ValueExpression>
</SimpleExpression>
</SecondExpression>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="IsilonSNMP.Monitor.PhysicalDiskStatus" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="IsilonSNMP.MonitorType.PhysicalDiskStatus" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="System!System.Entity"]/DisplayName$</AlertParameter1>
<AlertParameter2>$Data/Context/SnmpVarBinds/SnmpVarBind[1]/Value$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskOK" MonitorTypeStateID="PhysicalDiskOK" HealthState="Success" />
<OperationalState ID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskNotOK" MonitorTypeStateID="PhysicalDiskNotOK" HealthState="Warning" />
</OperationalStates>
<Configuration>
<Interval>120</Interval>
<IPAddress>$Target/Host/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<OID>.1.3.6.1.4.1.12124.2.52.1.5.$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/BayIndex$</OID>
<NodeCommStr>$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/NodeCommStr$</NodeCommStr>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="IsilonSNMP.Monitor.PhysicalFanStatus" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.PhysicalFan" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="IsilonSNMP.MonitorType.PhysicalFanStatus" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="System!System.Entity"]/DisplayName$</AlertParameter1>
<AlertParameter2>$Data/Context/SnmpVarBinds/SnmpVarBind[1]/Value$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanOK" MonitorTypeStateID="PhysicalFanOK" HealthState="Success" />
<OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanWarn" MonitorTypeStateID="PhysicalFanWarn" HealthState="Warning" />
<OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanCritical" MonitorTypeStateID="PhysicalFanCritical" HealthState="Error" />
</OperationalStates>
<Configuration>
<Interval>120</Interval>
<IPAddress>$Target/Host/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<OID>.1.3.6.1.4.1.12124.2.53.1.4.$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/FanNumber$</OID>
<NodeCommStr>$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/NodeCommStr$</NodeCommStr>
<FanSpeedHighCritical>14500</FanSpeedHighCritical>
<FanSpeedLowWarn>3400</FanSpeedLowWarn>
<FanSpeedLowCritical>3000</FanSpeedLowCritical>
</Configuration>
</UnitMonitor>
<DependencyMonitor ID="IsilonSNMP.Monitor.ClusterPhysicalDiskAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" MemberMonitor="IsilonSNMP.Monitor.PhysicalDiskStatus">
<Category>AvailabilityHealth</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>
<DependencyMonitor ID="IsilonSNMP.Monitor.ClusterPhysicalFanAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.NodesHostsPhysicalFan" MemberMonitor="IsilonSNMP.Monitor.PhysicalFanStatus">
<Category>AvailabilityHealth</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>
<DependencyMonitor ID="IsilonSNMP.Monitor.ClusterClusterAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.ClusterHostsNodes" MemberMonitor="Health!System.Health.AvailabilityState">
<Category>AvailabilityHealth</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>
</Monitors>
</Monitoring>
<Presentation>
<StringResources>
<StringResource ID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID" />
<StringResource ID="AlertMessageIDb1a3848769824949889fcc4c159cf462" />
<StringResource ID="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID" />
<StringResource ID="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID" />
</StringResources>
</Presentation>
<LanguagePacks>
<LanguagePack ID="ENU" IsDefault="true">
<DisplayStrings>
<DisplayString ElementID="IsilonSNMP">
<Name>Isilon SNMP MP</Name>
<Description>Management pack to discover a Isilon cluster running OneFS 5.5</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster">
<Name>Isilon Cluster</Name>
<Description>Isilon SNMP Device</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster" SubElementID="Hostname">
<Name>Hostname</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster" SubElementID="ConfiguredNodes">
<Name>ConfiguredNodes</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.Nodes" SubElementID="Name">
<Name>Name</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.Nodes">
<Name>Isilon Cluster Hosts Nodes</Name>
<Description>Containment class for the Isilon cluster with components such as hard disks, fans, power supplies, etc.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Relationship.ClusterHostsNodes">
<Name>Isilon Cluster Hosts Nodes</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.IsilonCluster">
<Name>Discover Isilon Cluster</Name>
<Description>Discovery of the Isilon Cluster using OID strings from RFC1213.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.DataSource.BasicSNMPProbe">
<Name>Isilon Basic Probe Data Source</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.DataSource.DiscoverCluster">
<Name>Discover Isilon Cluster</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters">
<Name>Isilon Devices Group Contains Isilon Cluster</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.Cluster">
<Name>Discover Isilon Cluster Containment Class</Name>
<Description>Discovers the Cluster containment class, which hosts managed objects such as fans</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.IsilonClustersGroup">
<Name>Isilon Deivce Group Populator</Name>
</DisplayString>
<DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70">
<Name>PlaceHolder</Name>
<Description>Place Holder to detect isilon cluster</Description>
</DisplayString>
<DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" SubElementID="UIGeneratedOpStateId843498792d7d4fbf80d83f3939255dd9">
<Name>Second Event Raised</Name>
</DisplayString>
<DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" SubElementID="UIGeneratedOpStateId9fd776cd21a747c5994738e863b31fb9">
<Name>First Event Raised</Name>
</DisplayString>
<DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID">
<Name>PlaceHolder</Name>
<Description>placeholder alert to detect isilon</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus">
<Name>Isilon PhysicalDisk Status Monitor</Name>
<Description>Monitor that generates an alert when the PhysicalDisk status is not ok.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus" SubElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskOK">
<Name>PhysicalDiskOK</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus" SubElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskNotOK">
<Name>PhysicalDiskOK</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID">
<Name>Isilon PhysicalDisk Status</Name>
<Description>The Disk ({0}) is in a warning or error state. The Disk state is: {1}.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk">
<Name>Isilon Disk</Name>
<Description>Disk</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" SubElementID="Index">
<Name>Index</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk">
<Name>Isilon Cluster Hosts PhysicalDisk</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.PhysicalDisk">
<Name>Discover Isilon Cluster Physical Disks</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.DataSource.DiscoverPhysicalDisk">
<Name>Discover Isilon Cluster PhysicalDisk</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.ClusterPhysicalDiskAvailabilityDependency">
<Name>Isilon Disk</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus">
<Name>Isilon PhysicalFan Status Monitor</Name>
<Description>Monitor that generates an alert when the PhysicalFan speed is not within a premited range.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanOK">
<Name>PhysicalFanOK</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanWarn">
<Name>PhysicalFanWarn</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanCritical">
<Name>PhysicalFanCritical</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID">
<Name>Isilon PhysicalFan Status</Name>
<Description>The Fan ({0}) is in a warning or error state. Current Fan speed is: {1}.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalFan">
<Name>Isilon Fan</Name>
<Description>Fan</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" SubElementID="Index">
<Name>Index</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Relationship.NodesHostsPhysicalFan">
<Name>Isilon Cluster Hosts PhysicalFan</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.PhysicalFan">
<Name>Discover Isilon Cluster Physical Fans</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.DataSource.DiscoverPhysicalFan">
<Name>Discover Isilon Cluster PhysicalFan</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.ClusterPhysicalFanAvailabilityDependency">
<Name>Isilon Fan</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.ClusterClusterAvailabilityDependency">
<Name>Cluster</Name>
</DisplayString>
</DisplayStrings>
</LanguagePack>
</LanguagePacks> -
How to use BULK COLLECT, FORALL and TREAT
There is a need to read match and update data from and into a custom table. The table would have about 3 millions rows and holds key numbers. BAsed on a field value of this custom table, relevant data needs to be fetched from joins of other tables and updated in the custom table. I plan to use BULK COLLECT and FORALL.
All examples I have seen, do an insert into a table. How do I go about reading all values of a given field and fetching other relevant data and then updating the custom table with data fetched.
Defined an object with specifics like this
CREATE OR REPLACE TYPE imei_ot AS OBJECT (
recid NUMBER,
imei VARCHAR2(30),
STORE VARCHAR2(100),
status VARCHAR2(1),
TIMESTAMP DATE,
order_number VARCHAR2(30),
order_type VARCHAR2(30),
sku VARCHAR2(30),
order_date DATE,
attribute1 VARCHAR2(240),
market VARCHAR2(240),
processed_flag VARCHAR2(1),
last_update_date DATE
Now within a package procedure I have defined like this.
type imei_ott is table of imei_ot;
imei_ntt imei_ott;
begin
SELECT imei_ot (recid,
imei,
STORE,
status,
TIMESTAMP,
order_number,
order_type,
sku,
order_date,
attribute1,
market,
processed_flag,
last_update_date
BULK COLLECT INTO imei_ntt
FROM (SELECT stg.recid, stg.imei, cip.store_location, 'S',
co.rtl_txn_timestamp, co.rtl_order_number, 'CUST',
msi.segment1 || '.' || msi.segment3,
TRUNC (co.txn_timestamp), col.part_number, 'ZZ',
stg.processed_flag, SYSDATE
FROM custom_orders co,
custom_order_lines col,
custom_stg stg,
mtl_system_items_b msi
WHERE co.header_id = col.header_id
AND msi.inventory_item_id = col.inventory_item_id
AND msi.organization_id =
(SELECT organization_id
FROM hr_all_organization_units_tl
WHERE NAME = 'Item Master'
AND source_lang = USERENV ('LANG'))
AND stg.imei = col.serial_number
AND stg.processed_flag = 'U');
/* Update staging table in one go for COR order data */
FORALL indx IN 1 .. imei_ntt.COUNT
UPDATE custom_stg
SET STORE = TREAT (imei_ntt (indx) AS imei_ot).STORE,
status = TREAT (imei_ntt (indx) AS imei_ot).status,
TIMESTAMP = TREAT (imei_ntt (indx) AS imei_ot).TIMESTAMP,
order_number = TREAT (imei_ntt (indx) AS imei_ot).order_number,
order_type = TREAT (imei_ntt (indx) AS imei_ot).order_type,
sku = TREAT (imei_ntt (indx) AS imei_ot).sku,
order_date = TREAT (imei_ntt (indx) AS imei_ot).order_date,
attribute1 = TREAT (imei_ntt (indx) AS imei_ot).attribute1,
market = TREAT (imei_ntt (indx) AS imei_ot).market,
processed_flag =
TREAT (imei_ntt (indx) AS imei_ot).processed_flag,
last_update_date =
TREAT (imei_ntt (indx) AS imei_ot).last_update_date
WHERE recid = TREAT (imei_ntt (indx) AS imei_ot).recid
AND imei = TREAT (imei_ntt (indx) AS imei_ot).imei;
DBMS_OUTPUT.put_line ( TO_CHAR (SQL%ROWCOUNT)
|| ' rows updated using Bulk Collect / For All.'
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.put_line ('No Data: ' || SQLERRM);
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Other Error: ' || SQLERRM);
END;
Now for the unfortunate part. When I compile the pkg, I face an error
PL/SQL: ORA-00904: "LAST_UPDATE_DATE": invalid identifier
I am not sure where I am wrong. Object type has the last update date field and the custom table also has the same field.
Could someone please throw some light and suggestion?
Thanks
udsI suspect your error comes from the »bulk collect into« and not from the »forall loop«.
From a first glance you need to alias sysdate with last_update_date and some of the other select items need to be aliased as well :
But a simplified version would be
select imei_ot (stg.recid,
stg.imei,
cip.store_location,
'S',
co.rtl_txn_timestamp,
co.rtl_order_number,
'CUST',
msi.segment1 || '.' || msi.segment3,
trunc (co.txn_timestamp),
col.part_number,
'ZZ',
stg.processed_flag,
sysdate
bulk collect into imei_ntt
from custom_orders co,
custom_order_lines col,
custom_stg stg,
mtl_system_items_b msi
where co.header_id = col.header_id
and msi.inventory_item_id = col.inventory_item_id
and msi.organization_id =
(select organization_id
from hr_all_organization_units_tl
where name = 'Item Master' and source_lang = userenv ('LANG'))
and stg.imei = col.serial_number
and stg.processed_flag = 'U';
... -
Tables for Collection, dispute and credit management
Hi SAP Gurus,
I would appreciate if any one could provide the list of tables for collection, dispute and credit management. Thanks!
Regards,
ajI think you mean the tables for FSCM.
The easiest way to find it is to do SE16 FDM*
FDM_AR_WRITEOFFS FSCM-DM: Automatic Write-Offs Not Executed
FDM_BUFFER Cluster for Decoupling in 1-System Scenari
FDM_BW_INV_DELTA Delta Queue for BI Invoice Extractor
FDM_COLL_CCOLOAD Company Codes for which Initial Load Perfo
FDM_COLL_CFIELD FSCM-COL: Relevant Fields for Document Cha
FDM_COLL_COMPCOD FSCM-COL: Active Company Codes of Collecti
FDM_COLL_DUNNLEV Harmonized Dunning Levels
FDM_COLL_LASTPAY Last Payments of Business Partner
FDM_COLL_LTRIG Missing Entries of Table FDM_COLL_STRIG
FDM_COLL_SFIELD FSCM-COL: Relevant Fields for Document Cha
FDM_COLL_STRIG FSCM-COL: Control of Trigger Update in TRO
FDM_COLL_TROBJ FSCM-COL: Trigger Table for Collections Ma
FDM_CONTACT_BUF Personalization of Contact Person Data
FDM_DCOBJ FSCM-DM Integration: Disputed Objects
FDM_DCPROC FSCM-DM Integration: Dispute Case Processe
FDM_P2P_ATTR Attributes of Promise to Pay; Required for
FDM_PERSONALIZE Personalization of Collections Management
FDM1 Cash Management & Forecast: Line Items of
FDM2 Cash management line items from MM purchas
FDMV Cash Planning Line Items of Earmarked Fund
Hope this helps, award points if useful. -
Which one is the best way to collect config and performance details in azure
Hi ,
I want to collect the information of both configuration and performance of cloud, virtual machine and web role .I am going to collect all these details using
java. so Please suggest which one is the best way.
1) REST API
2) Azure SDK for java
Regards
Rathidevi
rathideviHi,
There are four main tasks to use Azure Diagnostics:
Setup WAD
Configuring data collection
Instrumenting your code
Viewing data
The original Azure SDK 1.0 included functionality to collect diagnostics and store them in Azure storage collectively known as Azure Diagnostics (WAD). This software, built upon the Event Tracing for Windows (ETW) framework, fulfills two design requirements
introduced by Azure scale-out architecture:
Save diagnostic data that would be lost during a reimaging of the instance..
Provide a central repository for diagnostics from multiple instances.
After including Azure Diagnostics in the role (ServiceConfiguration.cscfg and ServiceDefinition.csdef), WAD collects diagnostic data from all the instances of that particular role. The diagnostic data can be used for debugging and troubleshooting, measuring
performance, monitoring resource usage, traffic analysis and capacity planning, and auditing. Transfers to Azure storage account for persistence can either be scheduled or on-demand.
To know more about Azure Diagnostics, please refer to the below article ( Section : Designing More Supportable Azure Services > Azure Diagnostics )
https://msdn.microsoft.com/en-us/library/azure/hh771389.aspx?f=255&MSPPError=-2147217396
https://msdn.microsoft.com/en-us/library/azure/dn186185.aspx
https://msdn.microsoft.com/en-us/library/azure/gg433048.aspx
Hope this helps !
Regards,
Sowmya -
DAM: integrate/harmonize Collections, Keywords and IPTC location
Lightroom currently presents the user with two independent methods to assign photos to a hierarchical structure: collections and keywords. Unless I missed something, keywords do everything that collections do, and more.
In addition, there is one structure that is inherently hierarchical, but is not currently implemented as such: the IPTC (metadata) location. For instance, the city of Amsterdam lies in the province of North Holland in The Netherlands, so entering Amsterdam in the 'City' field implies a province and a country.
Based on these observations, I have a couple of suggestions:
* Enhance the usability of collections with a few of the keyword features: listing all assigned collections upon selection, and dragging collections onto photos to assign.
* Allow users to convert collection trees to keyword trees, and possibly back (convenient for import/export, or changing ones mind as to what paradigm to use).
* Allow users to either export a keyword tree to the IPTC location fields, or to make a dynamic link between the two (i.e. updating the keyword would immediately affect the location data). This feature would also require an 'exclusivity swith', see below.
* Introduce an 'exclusivity switch' for keywords or collections, implying that you may only assign *one* keyword in its sub-tree to any particular image. This makes sense for location, because an image was made in a particular location, but it can also be used other contexts. For example, to indicate where the latest version of a file has been backed up to, or what the status (imported, selected, processed, finished) of a file is.
* Introduce dynamic collections *and* dynamic keywords. I have read things about query-based dynamic collections coming to Lightroom, but please also create 'dynamic keywords'. This would allow keywords to remain the catch-all organization structure, instead of dividing functionality across collections and keywords.
I think these features could make a significant contribution to Lightroom's DAM capabilities. If implemented alongside improved search capabilities, they would allow me (and possibly others) to stop using my stand-alone DAM application.
SimonJohn, I had forgotten the fact that keywords do not have any output settings associated with them, unlike collections. I support your idea of indicating which collections have these settings attached to them.
Still, except for this point, keywords can currently be made to do the same things that collections do. You can even keep them private by choosing not to export certain keywords. Note that even though this is the case, I do not ask for the abolishment of collections per se, because it is convenient to maintain the *conceptual* difference (in addition to the output metadata in collections).
On the locations, I don't think the 'problem' is solved simply by exporting the location data to a keyword tree. It's the other direction that would greatly speed up the workflow. For example, dragging Amsterdam (potentially one of many Amsterdams) onto an image, would automatically assign the higher level fields as well. A metadata preset would indeed do the same, but only after one has created such a preset for every location, which can quickly add up.
Also, I did not mean to imply that dynamic keywords would be beneficial for keeping track of the location metadata. In general, dynamic categories (collections or keywords) are very useful for saving searches or keeping track of an internal workflow (like: if an image is not in a backup collection, it is not backed up). Specifically, I can imagine someone wanting to couple a search result to an exported keyword. For example, for a personal website or a Flickr account, you may want to tag images with the keyword '5stars' that is automatically generated.
The way I see it, there is currently no real difference in the logical structures that can be constructed using collections and keywords. The distinctions between the two are in the input or output phase. It would be a shame to see the logical capabilities of collections enhanced with 'smart' collections, whilst leaving keywords behind.
By the way, I'm all for a scripting interface, but I think that it's best to get the basics implemented in the right way first.
Simon
PS - You pointed out the existence of custom fields as a workflow solution. I have no experience with them, and don't have access to Lightroom on this machine, so I'll get back on that later. -
I created a new collection and put all of my same photos in them as a previous collection, then I changed them to black and white and both collections changed. How do I keep the first collection colour and make the second collection black and white.
For the second collection, choose the option to make virtual copies. Then you can turn the virtual copies to black & white, leaving the first collection in color. If you want file copies of the B & W images you can export copies.
-
Doubts in statistic Delivery Date and Commited Date in STO PO
Hi,
I would like to know statistic delivery date and Commited Delivery date in STO PO.
2 different type of date is displaying STO PO like;
1. We are getting statistic delivery as "09.02.9999" and Commited Date as "09.02.2011"
2. 1. We are getting statistic delivery as "09.02.9999" and Commited Date as "09.02.9999"
Could you explain, where we are maintiang those date and how it is displaying in PO Delivery schedule line?
Thanks.
Dhanush.When you create a PO, then the statistical delivery date is set equally to the delivery date.
the statistical delivery date is automatically changed if you change the delivery date before you have outputted the PO.
After you outputted the PO, the statistical delivery date has to be changed manually by the user if he changes the delivery date.
the idea behind this is because of the vendor evaluation, the vendor evaluation is done with the statistical delivery date.
as long you have not printed/faxed/mailed the PO to your vendor, then the statistical delivery date is changed automatically with a delivery date change.
But after a transmission you always have to ask yourself, who is responsible for the change in the delivery date.
If it is you, then you have to change the statistical delivery date to the new delivery date manually, to avoid that the vendor gets valuated against the wrong delivery date. But if it is because the vendor cannot meet the delivery date, then you change the delivery date to have an accuracy for planning, but you keep the old date in the statistical delivery date to valuate the vendor against it. -
I was wondering when I set up my collections, groups, and metadata in Abode Bridge CS6 if there was any way to transfer that information to Abode Bridge CC?
Funds cannot be transferred from one Apple ID account to another.
Try here > Rescue email address and how to reset Apple ID security questions
If that doesn't help, contact Apple for assistance with your security questions > Contacting Apple for support and service
Maybe you are looking for
-
Report for non Domain computers
Is there a way to run a report for all computers not on a specified domain?
-
Installing Solaris Express 11 on a USB stick
Hi, I am in the process of building a resilient development/testing lab server using 4 SATA disks in a RAIDZ configuration, I want to boot the host SE 11 o/s off a internal USB stick to manage this server, so my question is how do I go about installi
-
Excel as a Component in java application
Can anyone please tell me that how can I use an Excel worksheet as a COM object within Java application. please reply urgently
-
Trouble making path work for 'javac' is not recognized as an intern...
Hi - I am trying to compile my HelloApp.java program and I get this message: 'javac' is not recognized as an internal or external command, operable program or batch file I know to go into the system and change my Environment Variable, but I'm not sur
-
2014 M/book Air is not starting up normally
Hello, my mac book air is running Yosemite. My first repair came recently with replacing the Logic Board on 10/27/14. About 2 weeks later my start up would go halfway and stop requiring a restart. The next start up would complete ok. On 11/29/14, my