非常教程

Erlang 20参考手册

snmp

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**  Value is a list of {Domain, Addr} tuples or Domain atoms. 
 
    -  `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 Addr does not contain a port number, the value of port is used. 
 When a Addr is not specified i.e by using only a Domain atom, the host's name is resolved to find the IP address, and the value of port is used. 
 
-  `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 是变量的值。

传统和中间变量addressdomain仍然支持这么老的配置将起作用。

以下示例显示了一个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元件,以及与所有TDomainIp并且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是一个usmNoAuthProtocolusmHMACMD5AuthProtocolusmHMACSHAAuthProtocol
  • AuthKey是一个列表(整数)。这是用户的秘密本地化身份验证密钥。它在MIB中不可见。这个密钥的长度需要16如果usmHMACMD5AuthProtocol被使用,如果20 usmHMACSHAAuthProtocol使用。
  • PrivP是一个usmNoPrivProtocolusmDESPrivProtocolusmAesCfb128Protocol
  • PrivKey是一个列表(整数)。这是用户的秘密本地化加密密钥。它在MIB中不可见。如果usmDESPrivProtocolusmAesCfb128Protocol使用此密钥的长度需要为16 。

snmp相关

1.1. SNMP简介 | 1. SNMP Introduction
2.2.代理功能描述 | 2. Agent Functional Description
3.3.管理功能描述 | 3. Manager Functional Description
4.4. MIB编译器 | 4. The MIB Compiler
5.5.运行应用程序 | 5. Running the application
6.6.代理配置文件的定义 | 6. Definition of Agent Configuration Files
7.8.代理实现示例 | 8. Agent Implementation Example
8.9.管理实施例 | 9. Manager Implementation Example
9.10.检测函数 | 10. Instrumentation Functions
10.检测函数的定义 | 11. Definition of Instrumentation Functions
11.Net if的定义 | 12. Definition of Agent Net if
12.管理Netif 的定义 | 13. Definition of Manager Net if
13.14.审计跟踪日志 | 14. Audit Trail Log
14.15.高级代理主题 | 15. Advanced Agent Topics
15.16. SNMP Appendix A
16.17. SNMP Appendix B
17.snmp
18.snmpa
19.snmpa_conf
20.snmpa_discovery_handler
21.snmpa_error
22.snmpa_error_io
23.snmpa_error_logger
24.snmpa_error_report
25.snmpa_local_db
26.snmpa_mib_data
27.snmpa_mib_storage
28.snmpa_mpd
29.snmpa_network_interface
30.snmpa_network_interface_filter
31.snmpa_notification_delivery_info_receiver
32.snmpa_notification_filter
33.snmpa_supervisor
34.snmpc
35.snmpm
36.snmpm_conf
37.snmpm_mpd
38.snmpm_network_interface
39.snmpm_network_interface_filter
40.snmpm_user
41.snmp_community_mib
42.snmp_framework_mib
43.snmp_generic
44.snmp_index
45.snmp_notification_mib
46.snmp_pdus
47.snmp_standard_mib
48.snmp_target_mib
49.snmp_user_based_sm_mib
50.snmp_view_based_acm_mib
Erlang 20

Erlang 是一种通用的面向并发的编程语言,可应付大规模开发活动的程序设计语言和运行环境。

主页 https://www.erlang.org/
源码 https://github.com/erlang/otp
版本 20
发布版本 20.1