DiscoScope.cfg 配置文件
DiscoScope.cfg 配置文件可用于配置发现范围。
使用的数据库表
此配置文件可用于配置对下列数据库表执行的 insert 语句:
- scope.zones
- scope.detectionFilter
- scope.instantiateFilter
- scope.multicastGroup
- scope.multicastSource
- scope.special
样本:定义包括区域
以下示例 insert 语句定义了 10.10.2.* 子网作为包含区域。insert into scope.zones
(
m_Protocol,
m_Action,
m_Zones
)
values
(
1,
1,
[
{
m_Subnet="10.10.2.*"
}
]
);
- 子网 172.16.1.0 中的任何设备(子网掩码为 24,即,打开 24 个位,关闭 8 个位,这意味着网络掩码为 255.255.255.0)。
- 子网 172.16.2.0 中的任何设备(掩码为 255.255.255.0)。
- 子网 172.16.3.0 中的任何设备(掩码为 255.255.255.0)。
insert into scope.zones
(
m_Protocol,
m_Action,
m_Zones
)
values
(
1,
1,
[
{
m_Subnet="172.16.1.0",
m_NetMask=24
},
{
m_Subnet="172.16.2.*"
},
{
m_Subnet="172.16.3.0",
m_NetMask="255.255.255.0"
}
]
);样本:定义排除区域
insert into scope.zones
(
m_Protocol,
m_Action,
m_Zones
)
values
(
1,
2,
[
{
m_Subnet="172.16.1.0",
m_NetMask=24
]
);样本:定义 NAT 域中的包括区域
insert into scope.zones
(
m_Protocol, m_Action, m_Zones, m_AddressSpace
)
values
(
1,
1,
[
{
m_Subnet="172.16.2.*",
}
],
"NATDomain1"
);样本:根据 IP 地址来限制设备查询
以下示例说明如何避免进一步查询与给定 IP 地址匹配的设备。 而是,只进一步查询 IP 地址并非 10.10.63.234 的设备。 在 scope.detectionFilter 表中,指定:- 过滤器条件。 只有通过此过滤器的设备(即,此过滤器求值为 true)才会被进一步查询。 如果未指定任何过滤器,那么所有设备都将通过检测过滤器。
insert into scope.detectionFilter
(
m_Filter
)
values
(
"( ( m_UniqueAddress <> '10.10.63.234' ) )"
);编排器根据 scope.detectionFilter 表中的过滤器条件来测试所发现的每个设备,此测试的结果确定是否发现该设备。由于发现过程流完全可配置,因此,您可以将此编排器配置成在发现过程中的任意时间工作。 在缺省情况下,编排器对 Details 代理程序所返回的设备详细信息执行条件测试。 因此,过滤器必须基于 Details.returns 表中的列。
虽然您可以配置过滤器条件以测试 Details.returns 中的任何列,但可能需要使用 IP 地址作为过滤器的基础,以便限制对特定设备执行检测。 如果该设备未将 SNMP 访问权授予 Details 代理程序,那么 Details 代理程序可能无法检索到对象标识之类的 MIB 变量。 但是,可以保证在检测到该设备时至少返回 IP 地址。
以下示例说明如何在其他情况下配置检测过滤器。样本:根据对象标识来限制查询
以下示例说明如何避免进一步查询与给定对象标识匹配的设备。 OQL not like 子句指示仅传递过滤器的设备 (即, OID 不 类似于 1.3.6.1.4.1的设备。*) 被进一步审问。
.
进行转义,否则它将被视为通配符。insert into scope.detectionFilter
(
m_Filter
)
values
(
"(
( m_ObjectId not like '1\.3\.6\.1\.4\.1\..*' )
)"
);
样本:组合多个过滤器限制
insert into scope.detectionFilter
(
m_Filter
)
values
(
"(
( m_ObjectId not like '1\.3\.6\.1\.4\.1\..*' )
AND
( m_UniqueAddress <> '10.10.63.234' )
)"
);限制实例化:过滤掉接口之后的限制
RaiseAlertsForUnknownInterfaces 变量。 为此,请执行下列步骤:- 编辑 $NCHOME/etc/precision/NcPollerSchema.cfg 配置文件。
- 在此文件中添加下面这一行:
update config.properties set RaiseAlertsForUnknownInterfaces = 0;
样本:根据实体名称来限制实例化
要对实例化的设备进行限制,请追加一个对 scope.instantiateFilter 表执行的 OQL insert 语句。 instantiateFilter 表需要条件测试。 仅将通过过滤器的设备发送到 ncp_model。 如果未定义任何过滤器,那么将把所有已发现的设备传递到 ncp_model。
条件测试必须基于 ncimCache 数据格式。
以下发现后过滤器示例限制机箱及其内容的实例化。
insert into scope.instantiateFilter
(
m_Filter
)
values
(
"
(
BASENAME != 'jane'
)
"
);
以下发现后过滤器示例限制机箱及其内容的实例化。
insert into scope.instantiateFilter
(
m_Filter
)
values
(
"
(
snmpSystem->SYSDESCR NOT LIKE ' device'
)
"
);
使用 scope.special 限制设备检测
在 scope.special 表中为可以通过多个 IP 地址访问的网络接口生成条目。 scope.special 表中的条目控制着网络管理器用于监控设备以执行NCMP和 SNMP 轮询策略的IP地址。
以下样本显示针对 scope.special 表的 INSERT 语句。 此样本将 IP 地址 192.168.1.3 定义为机箱和接口的潜在管理接口。 此样本提供了额外的客户信息,在发现了 IP 地址时,这些信息将添加到模型 master.entityByName 数据库表中的实体的 ExtraInfo 部分。
insert into scope.special
(
m_Zones,
m_Identifier,
m_Priority,
m_NonPingable,
m_AdminInterface,
m_ExtraInfo,
m_Protocol,
m_IsManagement,
m_OutOfBand,
m_IsValidVirtual
)
values
(
[
{
m_Subnet="192.168.1.3",
m_NetMask=32
}
],
"CustomerFacing",
99,
0,
1,
{
m_CustomerName = 'MyCompany',
m_CustomerType = 'Internal'
},
1,
0,
1,
0
);
对于具有 2 个 IP 地址(172.20.1.1 和 192.168.1.3)的设备,此配置意味着不选择 172.20.1.1 作为用于管理设备的 IP 地址, 而是使用 192.168.1.3。 以下示例显示在这种情况下 master.entityByName 中的最终拓扑条目。 ExtraInfo 中以 m_ScopeSpecial 作为前缀的数据来自与 IP 地址 192.168.1.3 匹配的 scope.zones 条目。
{
EntityName='192.168.1.3';
Address=['','','192.168.1.3'];
EntityType=1;
EntityOID='1.3.6.1.4.1.8072.3.2.10';
IsActive=1;
Status=1;
ExtraInfo={
m_SysName='SYS1';
m_DNSName='DNS1';
m_time=1362486845;
m_DisplayLabel='DNS1';
m_AssocAddress=[{m_IfIndex = 1, m_IpAddress = '172.20.1.1', m_Protocol = 1, m_IfOperStatus = 1 },{m_IfIndex = 2, m_IpAddress = '192.168.1.3', m_Protocol = 1, m_IfOperStatus = 1 }];
m_ScopeSpecialIsManagement=1;
m_ScopeSpecialPriority=99;
m_ScopeSpecialIdentifier='CustomerFacing';
m_ScopeSpecialExtraInfo={
m_CustomerName = 'MyCompany',
m_CustomerType = 'Internal'
};
m_DefinedMgmtIP=1;
m_IsOutOfBand=1;
m_BaseName='192.168.1.3';
m_AddressSpace=NULL;
m_AccessProtocol=1;
m_AccessAddress='192.168.1.3';
};
LingerTime=3;
ActionType=0;
CreateTime=1362486848;
ChangeTime=1362486848;
ClassName='NetworkDevice';
ClassId=5;
ObjectId=2272;
}