7. Manager配置文件的定义 | 7. Definition of Manager Configuration Files
配置数据可能包含在位于配置目录中的配置文件中。该目录的名称在config_dir
配置参数中给出。这些文件在启动时读取。
找到配置文件的目录作为参数提供给管理器。
所有文件中的条目格式都是由Erlang分隔的。'和换行符。在下面的章节中,将会描述这些术语的格式。评论可能被指定为普通的Erlang评论。
如果在这些文件中发现语法错误,则会在启动时使用错误报告模块的函数config_err / 2进行报告。
7.1 管理员信息
管理员信息应存储在一个名为manager.conf
的文件中。
每个条目都是大小为2的元组:
{Variable, Value}.
Variable
是以下之一:
- `transports` - which defines the transport domains and their addresses for the manager. **Mandatory**
- `Domain` is one of `transportDomainUdpIpv4` or `transportDomainUdpIpv6`.
- `Addr` is for the currently supported domains either an `IpAddr` or an `{IpAddr, IpPort}` tuple.`IpAddr` is either a regular Erlang/OTP `ip_address()` or a traditional SNMP integer list and `IpPort` is an integer. When
- `port` - which defines which UDP port the manager uses for communicating with agents. **Mandatory** if `transports` does not define a port number for every transport.
- `engine_id` - The `SnmpEngineID` as defined in SNMP-FRAMEWORK-MIB. **Mandatory**.
- `max_message_size` - The `snmpEngineMaxMessageSize` as defined in SNMP-FRAMEWORK-MIB. **Mandatory**.
Value
是变量的值。
传统和中间变量address
与domain
仍然支持这么老的配置将起作用。
以下示例显示了一个manager.conf
文件:
{transports, [{transportDomainUdpIpv4, {{141,213,11,24}, 5000}},
{transportDomainUdpIpv6, {{0,0,0,0,0,0,0,1}, 5000}}]}.
{engine_id, "mgrEngine"}.
{max_message_size, 484}.
值engine_id
是一个字符串,它应该有一个非常特定的结构。有关详细信息,请参阅RFC 2271/2571。
7.2 用户
对于每位经理用户,经理需要一些信息。该信息可以在users.conf
配置文件中添加,register_user
在运行时也可以调用该函数。
每一行定义了经理的经理用户。
每个条目都是一个大小为四的元组:
{UserId, UserMod, UserData, DefaultAgentConfig}.
UserId
是任何术语(用于唯一标识用户)。UserMod
是用户回调模块(原子)。UserData
是任何术语(在调用时传递给用户)UserMod
。DefaultAgentConfig
是默认代理配置的列表。当这个用户注册代理时,这些值被用作默认值。
7.3 代理
处理代理所需的信息应存储在名为agents.conf的文件中。 也可以通过调用register_agent在运行时添加代理。
每个条目都是一个元组:
{UserId, TargetName, Comm, Domain, Addr, EngineID, Timeout, MaxMessageSize, Version, SecModel, SecName, SecLevel}.
- UserId是负责该代理的经理用户(术语)的标识。
- TargetName是唯一的非空字符串。
- Comm是社区字符串(字符串)。
- 域是传输域,可以是transportDomainUdpIpv4或transportDomainUdpIpv6。
- Addr是传输域中的地址,可以是{IpAddr,IpPort}元组,也可以是包含端口号的传统SNMP整数列表。 IpAddr是一个普通的Erlang / OTP ip_address()或一个传统的SNMP整数列表,不包含端口号,IpPort是一个整数。
- EngineID是代理(字符串)的引擎ID。
- 超时是重传超时(无限|整数)。
- MaxMessageSize是传出此代理的邮件的最大邮件大小(整数)。
- 版本是版本(v1 | v2 | v3)。
- SecModel是安全模型(任何| v1 | v2c | usm)。
- SecName是安全名称(字符串)。
- SecLevel是安全级别(noAuthNoPriv | authNoPriv | authPriv)。
使用元组没有遗留的配置Domain
元件,以及与所有TDomain
,Ip
并且Port
元件仍然工作。
7.4 USM的安全数据
有关USM安全数据的信息应存储在名为usm.conf的文件中,如果管理员希望在与代理通信时使用SNMPv3,该文件必须存在。 也可以通过调用register_usm_user在运行时添加usm数据。
相应的表usmUserTable
位于SNMP-USER-BASED-SM-MIB中。
每个条目都是一个术语:
{EngineID, UserName, AuthP, AuthKey, PrivP, PrivKey}.
{EngineID, UserName, SecName, AuthP, AuthKey, PrivP, PrivKey}.
第一种情况是当我们有身份函数(SecName
= UserName
)时。
EngineID
是一个字符串。UserName
是一个字符串。SecName
是一个字符串。AuthP
是一个usmNoAuthProtocol
,usmHMACMD5AuthProtocol
或usmHMACSHAAuthProtocol
。AuthKey
是一个列表(整数)。这是用户的秘密本地化身份验证密钥。它在MIB中不可见。这个密钥的长度需要16如果usmHMACMD5AuthProtocol
被使用,如果20usmHMACSHAAuthProtocol
使用。PrivP
是一个usmNoPrivProtocol
,usmDESPrivProtocol
或usmAesCfb128Protocol
。PrivKey
是一个列表(整数)。这是用户的秘密本地化加密密钥。它在MIB中不可见。如果usmDESPrivProtocol
或usmAesCfb128Protocol
使用此密钥的长度需要为16 。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com