非常教程

Erlang 20参考手册

snmp

6.代理配置文件的定义 | 6. Definition of Agent Configuration Files

所有配置数据必须包含在位于配置目录中的配置文件中。 该目录的名称在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}。

{intAgentTransports,

 [{transportDomainUdpIpv4,{141,213,11,24}},

  {transportDomainUdpIpv6,{0,0,0,0,0,0,0,1}}]}。

{snmpEngineID,"mbj's engine"}。

{snmpEngineMaxPacketSize,484}。

    intAgentTransports的值是{Domain,Addr}元组的列表,其中Domain是transportDomainUdpIpv4或transportDomainUdpIpv6,Addr是域中的地址。 Addr可以被指定为IpAddr或者作为{IpAddr,IpPort}元组。 IpAddr是普通的Erlang / OTP ip_address()或传统的SNMP整数列表,IpPort是一个整数。当Addr值不包含端口号时,将使用intAgentUDPPort的值。传统和中间变量intAgentIpAddress和intAgentTransportDomain仍然受支持,因此旧的agent.conf文件可以使用。 snmpEngineID的值是一个字符串,对于已部署的代理应该有一个非常特定的结构。有关详细信息,请参阅RFC 2271/2571。6.2上下文上下文信息应存储在名为context.conf的文件中。默认的上下文“”不需要存在。每行在代理中定义一个上下文。该信息用于SNMP-VIEW-BASED-ACM-MIB中的vacmContextTable表中。每个条目都是一个术语:ContextName。

  • 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}。

  • SecModelanyv1v2c,或usm
  • SecName 是一个字符串。
  • GroupName 是一个字符串。
  • Prefix 是一个字符串。
  • SecLevelnoAuthNoPrivauthNoPrivauthPriv
  • Matchprefixexact
  • ReadView 是一个字符串。
  • WriteView 是一个字符串。
  • NotifyView 是一个字符串。
  • ViewIndex是个整数。
  • ViewSubtree是整数的列表。
  • ViewStatusincludedexcluded
  • ViewMasknull或者是一列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 是一个字符串。
  • ClonezeroDotZero或者一个整数列表。
  • AuthPusmNoAuthProtocolusmHMACMD5AuthProtocol,或usmHMACSHAAuthProtocol
  • AuthKeyC 是一个字符串。
  • OwnAuthKeyC 是一个字符串。
  • PrivP是一个usmNoPrivProtocolusmDESPrivProtocolusmAesCfb128Protocol
  • PrivKeyC 是一个字符串。
  • OwnPrivKeyC 是一个字符串。
  • Public 是一个字符串。
  • AuthKey是一个列表(整数)。这是用户的秘密本地化身份验证密钥。它在MIB中不可见。如果usmHMACMD5AuthProtocol使用此密钥的长度需要为16 ,并且使用20 usmHMACSHAAuthProtocol
  • PrivKey是一个列表(整数)。 这是用户的秘密本地化加密密钥。 它在MIB中不可见。 如果使用usmDESPrivProtocol或usmAesCfb128Protocol,则此密钥的长度需要为16。 6.7通知定义有关通知定义的信息应存储在名为notify.conf的文件中。 相应的表是SNMP-NOTIFICATION-MIB中的snmpNotifyTable。每个条目都是一个术语:{NotifyName,Tag,Type}。
  • NotifyName是唯一的非空字符串。
  • Tag 是一个字符串。
  • Typetrapinform

6.8目标地址定义

有关目标地址定义的信息应存储在一个名为target_addr.conf的文件中。

相应的表snmpTargetAddrTable位于SNMP-TARGET-MIB和snmpTargetAddrExtTableSNMP-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是唯一的非空字符串。
  • MPModelv1v2cv3
  • SecurityModelv1v2c,或usm
  • SecurityName 是一个字符串。
  • SecurityLevelnoAuthNoPrivauthNoPrivauthPriv

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.7. Manager配置文件的定义 | 7. Definition of Manager 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