6.代理配置文件的定义 | 6. Definition of Agent Configuration Files
6 代理配置文件的定义
所有配置数据必须包含在位于配置目录中的配置文件中。 该目录的名称在config_dir配置参数中给出。 这些文件在启动时读取,并用于初始化SNMPv2-MIB或STANDARD-MIB,SNMP-FRAMEWORK-MIB,SNMP-MPD-MIB,SNMP-VIEW-BASED-ACM-MIB,SNMP-COMMUNITY-MIB ,SNMP-USER-BASED-SM-MIB,SNMP-TARGET-MIB和SNMP-NOTIFICATION-MIB(关于MIB的描述参考代理的管理)。
这些档案是:
agent.conf
:见Agent Information
standard.conf
*见System Information
context.conf
*见Contexts
community.conf
*见Communities
target_addr.conf
*见Target Address Definitions
target_params.conf
*见Target Parameters Definitions
vacm.conf
*见MIB Views for VACM
usm.conf
*见Security data for USM
- notify.conf:请参阅通知定义找到配置文件的目录作为参数提供给代理。 所有文件中的输入格式都是Erlang术语,用'。'分隔。 和一个换行符。 在下面的章节中,将会描述这些术语的格式。 评论可能被指定为普通的Erlang评论。 发现这些文件中的语法错误并在启动时通过错误报告模块的函数config_err / 2进行报告。 6.1代理信息代理信息应存储在名为agent.conf的文件中。 每个条目都是大小为2的元组:{AgentVariable,Value}。
- AgentVariable是变量之一是SNMP-FRAMEWORK-MIB或内部变量之一intAgentUDPPort,它定义代理侦听哪个UDP端口,或者是定义代理的传输域和地址的intAgentTransports。
值是变量的值。以下示例显示了agent.conf文件:{intAgentUDPPort,4000}。
ContextName
是一个字符串。
6.3 系统信息
系统信息应存储在一个名为standard.conf
的文件中。
每个条目都是第二个大小的元组:
{SystemVariable, Value}.
SystemVariable
是系统组中的变量之一,或者snmpEnableAuthenTraps
。
Value
变量的值。
下面的示例显示了一个有效的standard.conf
档案:
{sysDescr, "Erlang SNMP agent"}.
{sysObjectID, [1,2,3]}.
{sysContact, "(mbj,eklas)@erlang.ericsson.se"}.
{sysName, "test"}.
{sysServices, 72}.
{snmpEnableAuthenTraps, enabled}.
必须为MIB中缺少默认值的所有变量提供一个值。
6.4 社区
社区信息应存储在一个名为community.conf
的文件中。如果代理配置为SNMPv1或SNMPv2c,它必须存在。
SNMP 社区
是SNMP代理和一组定义认证,访问控制和代理特性的SNMP管理器之间的关系。
相应的表snmpCommunityTable
位于SNMP-COMMUNITY-MIB中。
每个条目都有一个术语:
{CommunityIndex, CommunityName, SecurityName, ContextName, TransportTag}.
CommunityIndex
是一个非空字符串。
CommunityName
是一个字符串。
SecurityName
是一个字符串。
ContextName
是一个字符串。
TransportTag是一个字符串..6.5 VACM的MIB视图有关VACM的MIB视图的信息应存储在名为vacm.conf的文件中。相应的表格为SNMP-VIEW-BASED-ACM-MIB中的vacmSecurityToGroupTable,vacmAccessTable和vacmViewTreeFamilyTable。每个条目 是其中一个表项,其中一个表项对应于其中一个表中的一行:{vacmSecurityToGroup,SecModel,SecName,GroupName}。{vacmAccess,GroupName,Prefix,SecModel,SecLevel,Match,ReadView,WriteView,NotifyView}。{vacmViewTreeFamily ,ViewIndex,ViewSubtree,ViewStatus,ViewMask}。
SecModel
是any
,v1
,v2c
,或usm
。
SecName
是一个字符串。
GroupName
是一个字符串。
Prefix
是一个字符串。
SecLevel
是noAuthNoPriv
,authNoPriv
或authPriv
Match
是prefix
或exact
。
ReadView
是一个字符串。
WriteView
是一个字符串。
NotifyView
是一个字符串。
ViewIndex
是个整数。
ViewSubtree
是整数的列表。
ViewStatus
是included
或excluded
ViewMask
是null
或者是一列1和0。指定与此子标识符完全匹配的值。零是与任何子标识符匹配的外卡。如果掩码比子树短,则将尾视为所有的。null
是所有面具的缩写。
6.6 USM安全数据
有关USM的安全数据的信息应存储在名为usm.conf
的文件中,如果代理程序配置为SNMPv3,则该文件必须存在。
相应的表usmUserTable
位于SNMP-USER-BASED-SM-MIB中。
每个条目都有一个术语:
{EngineID, UserName, SecName, Clone, AuthP, AuthKeyC, OwnAuthKeyC, PrivP, PrivKeyC, OwnPrivKeyC, Public, AuthKey, PrivKey}.
EngineID
是一个字符串。
UserName
是一个字符串。
SecName
是一个字符串。
Clone
是zeroDotZero
或者一个整数列表。
AuthP
是usmNoAuthProtocol
,usmHMACMD5AuthProtocol
,或usmHMACSHAAuthProtocol
。
AuthKeyC
是一个字符串。
OwnAuthKeyC
是一个字符串。
PrivP
是一个usmNoPrivProtocol
,usmDESPrivProtocol
或usmAesCfb128Protocol
。
PrivKeyC
是一个字符串。
OwnPrivKeyC
是一个字符串。
Public
是一个字符串。
AuthKey
是一个列表(整数)。这是用户的秘密本地化身份验证密钥。它在MIB中不可见。如果usmHMACMD5AuthProtocol
使用此密钥的长度需要为16 ,并且使用20usmHMACSHAAuthProtocol
。
- PrivKey是一个列表(整数)。 这是用户的秘密本地化加密密钥。 它在MIB中不可见。 如果使用usmDESPrivProtocol或usmAesCfb128Protocol,则此密钥的长度需要为16。 6.7通知定义有关通知定义的信息应存储在名为notify.conf的文件中。 相应的表是SNMP-NOTIFICATION-MIB中的snmpNotifyTable。每个条目都是一个术语:{NotifyName,Tag,Type}。
NotifyName
是唯一的非空字符串。
Tag
是一个字符串。
Type
是trap
或inform
。
6.8目标地址定义
有关目标地址定义的信息应存储在一个名为target_addr.conf
的文件中。
相应的表snmpTargetAddrTable
位于SNMP-TARGET-MIB和snmpTargetAddrExtTable
SNMP-COMMUNITY-MIB中。
每个条目都有一个术语:
{TargetName, Domain, Addr, Timeout, RetryCount, TagList, ParamsName, EngineId}.
或
{TargetName, Domain, Addr, Timeout, RetryCount, TagList, ParamsName, EngineId, TMask, MaxMessageSize}.
TargetName
是唯一的非空字符串。
Domain
是原子之一:transportDomainUdpIpv4
|transportDomainUdpIpv6
。
- Addr是一个IpAddr或一个{IpAddr,IpPort}元组。 IpAddr是普通的Erlang / OTP ip_address()或传统的SNMP整数列表,IpPort是一个整数。如果IpPort被省略,则使用162。
Timeout
是个整数。
RetryCount
是个整数。
TagList
是一个字符串。
ParamsName
是一个字符串。
EngineId
是一个字符串或原子discovery
。
TMask
被指定为Addr
或如[]
。特别要注意的是,对于IPv4使用6字节的列表或者对于IPv6使用8字节加2字节的列表仍然是有效的地址格式,因此旧的配置将起作用。
MaxMessageSize
是一个整数(默认值:2048)。
具有旧配置中的Ip
地址和Udp
端口号的旧元组格式仍然有效。
请注意,如果EngineId
具有该值discovery
,那么代理程序不能将inform
消息发送到该管理器,直到该代理程序执行了该管理器的发现
过程。
6.9目标参数定义
有关目标参数定义的信息应存储在一个名为target_params.conf
...
对应的表是snmpTargetParamsTable
在SNMP-目标-MIB中。
每个条目都有一个术语:
{ParamsName, MPModel, SecurityModel, SecurityName, SecurityLevel}.
ParamsName
是唯一的非空字符串。
MPModel
是v1
,v2c
或v3
SecurityModel
是v1
,v2c
,或usm
。
SecurityName
是一个字符串。
SecurityLevel
是noAuthNoPriv
,authNoPriv
或authPriv
。