从管理包中调用SCOM SDK Inbound连接器的最佳方法是什么?

时间:2015-06-09 16:17:08

标签: c# scom

我已根据How to Create Inbound Connectors的示例代码创建了一个SCOM入站连接器。我运行代码,我的对象按预期显示在操作管理器中。

我找不到任何关于如何让我的发现可执行文件被自动调用的指导 - 理想情况下它会像发现" Discovery"管理包中的代码段。我想到的另一个选项是代理任务,但我不确定是否可以安排。第三种选择只是将代码作为服务安装在管理包之外。

是否有关于如何执行/安排执行自定义入站连接器的最佳实践?

2 个答案:

答案 0 :(得分:0)

入站连接器生命周期和频率需要由开发人员管理。

我遵循的是:

  1. 在产品安装期间创建连接器GUID,并将其保留
  2. 启动产品(受监控)时,创建连接器,创建每X分钟调用一次的Timer。如果它是一个长期运行的服务器,那么代码可以沿服务器代码进行标记。否则,您将需要创建一个Windows服务来托管其中的计时器+连接器代码。在产品发布时,只需启动此服务。
  3. 卸载产品时,取消注册并清理连接器。
  4. 这样可以在高峰时段监控要求中提供更加轻松的报告,例如30分钟或1小时甚至动态频率。

    管理包中的监视器/警报在频率方面可能会更具侵略性。

答案 1 :(得分:0)

如果您想使用SCOM加强发现/连接器推送工作流程,只需将其包装为SCOM规则。

优点是:

  1. 定期安排。
  2. 您可以返回具有发现进程状态的属性包 - 因此,如果您的进程中存在异常,则SCOM会发出警报。
  3. 它作为MP存储在SCOM中,因此不会丢失,就好像它是另一台服务器上的Windows服务一样。
  4. 因此,您需要在C#中编写一个Probe Action。最好的方法是使用MS示例。然后将其编译为类库,链接到MP,包装为Probe Action并在MP中创建规则。

    NB:

    • 仅使用.NET 3.5及更低版本作为目标平台
    • 使用特殊编译器选项来提高SDK调用性能。

      //快速进行SCOM SDK调用 [assembly:Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly:RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly:CompilationRelaxations(CompilationRelaxations.NoStringInterning)] [assembly:SecurityPermission(SecurityAction.RequestMinimum,SkipVerification = true)] [assembly:PermissionSet(SecurityAction.RequestMinimum,Name =" Execution")] [assembly:PermissionSet(SecurityAction.RequestRefuse,Unrestricted = false)] [module:UnverifiableCode] [assembly:CLSCompliant(false)]