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

本文关键字:连接器 最佳 方法 是什么 SDK 包调用 管理 调用 SCOM | 更新日期: 2023-09-27 17:55:00

我已经根据如何创建入站连接器中的示例代码创建了一个SCOM入站连接器。我运行代码,我的对象按预期出现在操作管理器中。

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

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

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

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

我遵循的是:

  1. 在产品安装期间创建连接器GUID,并将其保存
  2. 当您的产品(被监控)启动时,创建连接器,创建每X分钟调用一次的Timer。如果它是一个长时间运行的服务器,那么代码可以与服务器代码一起标记。否则,您将需要创建一个windows服务来托管其中的计时器+连接器代码。在产品发布时,只需启动此服务。
  3. 当产品被卸载时,注销并清理连接器。

这允许更轻松的报告,例如30分钟或1小时,甚至在高峰时段监测要求的动态频率。

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

如果您想将发现/连接器推送工作流与SCOM相结合,只需将其包装为SCOM规则。

优点是:

  1. 是定期安排的。
  2. 您可以返回带有发现进程状态的属性包——因此,如果您的进程中有异常,那么SCOM将引发警报。
  3. 它作为MP存储在SCOM中,所以不会丢失,就像它是另一个服务器上的Windows服务一样。

所以,你需要用c#写一个探测动作。最好的方法是使用MS的例子。然后将其编译为类库,链接到MP,包装为Probe Action,并在MP中制定规则。

注:

  • 只使用。net 3.5及以下版本作为目标平台
  • 使用特殊的编译器选项来提高SDK调用性能。

    //使SCOM SDK调用更快[组装:Debuggable (DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)][assembly: runtimcompatibility (WrapNonExceptionThrows = true)][组装:CompilationRelaxations (CompilationRelaxations.NoStringInterning)][组装:SecurityPermission (SecurityAction。RequestMinimum, SkipVerification = true)][组装:PermissionSet (SecurityAction。RequestMinimum, Name ="执行")][组装:PermissionSet (SecurityAction。[请求拒绝,无限制= false)]【模块:UnverifiableCode】[组装:CLSCompliant (false)]