查看源代码 snmpa (snmp v5.18)
SNMP 工具包代理的接口函数
模块 snmpa
包含 SNMP 代理的接口函数。
摘要
函数
此函数可用于向代理中的 sysORTable 添加 AGENT-CAPABILITY 语句。 该表在 SNMPv2-MIB 中定义。
备份代理处理的持久/永久数据(例如本地数据库、MIB 数据和 vacm)。
更改审核跟踪日志的日志大小。 必须配置应用程序才能使用审核跟踪日志功能。 有关如何更改日志大小的说明,请参阅 Kernel Reference Manual 中的 disk_log(3)。
此脱机实用程序函数可用于将旧的 snmp 应用程序配置(snmp-4.0 之前)转换为新的 snmp 代理配置(从 snmp-4.0 开始)。
获取代理当前正在处理的请求的地址。
获取代理当前正在处理的请求的团体。
获取代理当前正在处理的请求的上下文。
获取代理当前正在处理的请求的请求 ID。
此函数可用于删除代理中 sysORTable 的 AGENT-CAPABILITY 语句。 该表在 SNMPv2-MIB 中定义。
禁用 MIB 服务器缓存。
禁用 MIB 服务器缓存的自动垃圾回收。
等效于 discovery/6
。
等效于 discovery/6
。
使用通知 Notification
启动与由 TargetName
标识的管理器之间的发现过程。
启用 MIB 服务器缓存。
启用 MIB 服务器缓存的自动垃圾回收。
将 MIB 中枚举的对象或类型 Name
的符号值 Enum
转换为相应的整数。 必须加载 MIB。
执行 MIB 服务器缓存垃圾回收。
等效于 get/3
。
在代理上执行 GET 操作。 在此操作中,所有加载的 MIB 对象都是可见的。 代理调用相应的检测函数,就像它是一个来自管理器的 GET 请求一样。
返回代理中 sysORTable 中的所有 AGENT-CAPABILITY 语句。 该表在 SNMPv2-MIB 中定义。
在代理上执行 GET-NEXT 操作。 在此操作中,所有加载的 MIB 对象都是可见的。 代理调用相应的检测函数,就像它是一个来自管理器的 GET 请求一样。
返回包含有关代理信息的列表(字典)。 信息包括加载的 MIB、注册的子代理、有关内存分配的一些信息。
将 MIB 中枚举的对象或类型 Name
的整数 Int
转换为相应的符号值。 必须加载 MIB。
使 MIB 服务器缓存无效。
等效于 load_mib/2
。
将单个 Mib
加载到代理中。 MibName
是 MIB 的名称,包括找到已编译 MIB 的路径。 例如
等效于 load_mibs/3
。
将 Mibs
加载到代理中。 如果代理无法加载所有 MIB(Force
参数的默认值为 false
),它将指示加载中止的位置。 MibName
是 MIB 的名称,包括找到已编译 MIB 的路径。 例如,
等效于 log_to_io/7
。
等效于 log_to_io/7
。
等效于 log_to_io/7
。
等效于 log_to_io/7
。
等效于 log_to_io/7
。
将审核跟踪日志转换为可读格式,并将其打印到 stdio。 LogName
默认为“snmpa_log”。 LogFile
默认为“snmpa.log”。
等效于 log_to_txt/8
。
等效于 log_to_txt/8
。
等效于 log_to_txt/8
。
等效于 log_to_txt/8
。
等效于 log_to_txt/8
。
等效于 log_to_txt/8
。
将审核跟踪日志转换为可读的文本文件。 OutFile
默认为“./snmpa_log.txt”。 LogName
默认为“snmpa_log”。 LogFile
默认为“snmpa.log”。
等效于 me_of/2
。
查找与 Oid
对应的 MIB 条目。
等效于 mib_of/2
。
查找与 Oid
对应的 MIB。
给定符号名称,查找 MIB 对象的 OBJECT IDENTIFIER。 请注意,OBJECT IDENTIFIER 是针对对象给出的,而不是针对实例给出的。
给定 OBJECT IDENTIFIER,查找 MIB 对象的符号名称。
打印 snmp 代理处理的所有 MIB 的所有(snmp)表和变量的内容。
打印 snmp 代理处理的所有 MIB 的所有(snmp)表的内容。
打印 snmp 代理处理的所有 MIB 的所有(snmp)变量的内容。
接受的类型规范为
在另一个代理的子树下注册一个子代理。
重新启动多线程代理的 set 工作进程。
重新启动多线程代理的工作进程。
将通知 Notification
从指定的 context
发送到在 SNMP-NOTIFICATION-MIB 中的 snmpNotifyTable
中为 notify-name (name
) 定义的管理目标。
等效于 send_notification/7
。
将通知 Notification
从指定的上下文发送到在 SNMP-NOTIFICATION-MIB 中的 snmpNotifyTable
中为 NotifyName
定义的管理目标。
更改运行时审核跟踪日志类型。
从代理中卸载单个 Mib
。
从代理中卸载 Mibs
。 如果它无法卸载所有 MIB(Force
参数的默认值为 false
),它将指示卸载中止的位置。
取消注册通知过滤器。
取消注册子代理。 如果第二个参数是 pid,则将从 Agent
中的所有树中取消注册该子代理。
更改 MIB 服务器缓存的 age
属性。
更改 mib 服务器缓存的 gclimit
属性。
设置指定进程的“verbosity”(详细程度)
获取(已编译的)mib 文件的完整路径。
检索代理已知的所有别名。
等同于 which_mibs/1
。
检索加载到此代理中的所有 mib 的列表。默认是主代理。
检索 mib 服务器缓存的大小。
列出代理中的所有通知过滤器。
检索代理已知的所有通知(和陷阱)。
检索代理已知的所有表。
检索所有已配置的传输。
检索代理已知的所有变量。
类型
-type db() :: volatile | persistent | mnesia.
-type discovery_handler() :: module().
实现 snmpa_discovery_handler 行为的模块。
-type me() :: snmp:me().
-type mib_storage() :: [mib_storage_opt()].
-type mib_storage_module() :: atom().
-type mib_storage_opt() :: {module, mib_storage_module()} | {options, mib_storage_options()}.
-type mib_storage_options() :: list().
-type name() :: table_name() | variable_name().
-type nfilter_id() :: term().
-type nfilter_position() :: first | last | {insert_before, nfilter_id()} | {insert_after, nfilter_id()}.
-type notification_delivery_info() :: snmpa_notification_delivery_info_receiver:notification_delivery_info().
应如何报告(通知)传递信息。
-type pdu_type() :: snmp:pdu_type().
-type table_name() :: atom().
-type transport_kind() :: req_responder | trap_sender.
-type variable_name() :: atom().
函数
-spec add_agent_caps(Oid, Descr) -> Index when Oid :: snmp:oid(), Descr :: string(), Index :: integer().
此函数可用于向代理中的 sysORTable 添加 AGENT-CAPABILITY 语句。 该表在 SNMPv2-MIB 中定义。
-spec backup(BackupDir) -> ok | {error, Reason} when BackupDir :: string(), Reason :: backup_in_progress | term().
等效于 backup/2
。
-spec backup(Agent, BackupDir) -> ok | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), BackupDir :: string(), Reason :: backup_in_progress | term().
备份代理处理的持久/永久数据(例如本地数据库、MIB 数据和 vacm)。
不处理 mnesia 存储的数据。
BackupDir
不能与 DbDir 相同。
不允许同时进行备份调用。也就是说,两个不同的进程不能同时成功调用此函数。其中一个进程将首先成功,第二个进程将失败,错误原因是 backup_in_progress
。
-spec change_log_size(NewSize) -> ok | {error, Reason} when NewSize :: snmp:log_size(), Reason :: term().
更改审核跟踪日志的日志大小。 必须配置应用程序才能使用审核跟踪日志功能。 有关如何更改日志大小的说明,请参阅 Kernel Reference Manual 中的 disk_log(3)。
只要日志不被删除,此更改将永久生效。这意味着,日志大小会在重启后保留。
此脱机实用程序函数可用于将旧的 snmp 应用程序配置(snmp-4.0 之前)转换为新的 snmp 代理配置(从 snmp-4.0 开始)。
有关旧配置(OldConfig
)的信息,请参阅 OTP R9C 文档。
有关当前代理配置(AgentConfig
)的信息,请参阅 SNMP 用户指南的 配置应用程序 章节。
-spec current_address() -> {value, Address} | false when Address :: term().
获取代理当前正在处理的请求的地址。
请注意,此函数旨在由检测函数调用,并且仅当它在代理进程的上下文中执行时(例如,如果从生成的进程调用,则不起作用)。
-spec current_community() -> {value, Community} | false when Community :: snmp_community_mib:name().
获取代理当前正在处理的请求的团体。
请注意,此函数旨在由检测函数调用,并且仅当它在代理进程的上下文中执行时(例如,如果从生成的进程调用,则不起作用)。
-spec current_context() -> {value, Context} | false when Context :: snmp_community_mib:context_name().
获取代理当前正在处理的请求的上下文。
请注意,此函数旨在由检测函数调用,并且仅当它在代理进程的上下文中执行时(例如,如果从生成的进程调用,则不起作用)。
-spec current_request_id() -> {value, RequestId} | false when RequestId :: integer().
获取代理当前正在处理的请求的请求 ID。
请注意,此函数旨在由检测函数调用,并且仅当它在代理进程的上下文中执行时(例如,如果从生成的进程调用,则不起作用)。
此函数可用于删除代理中 sysORTable 的 AGENT-CAPABILITY 语句。 该表在 SNMPv2-MIB 中定义。
-spec disable_mibs_cache() -> snmp:void().
等效于 disable_mibs_cache/1
。
-spec disable_mibs_cache(Agent) -> snmp:void() when Agent :: pid() | AgentName, AgentName :: atom().
禁用 MIB 服务器缓存。
-spec disable_mibs_cache_autogc() -> snmp:void().
-spec disable_mibs_cache_autogc(Agent) -> snmp:void() when Agent :: pid() | AgentName, AgentName :: atom().
禁用 MIB 服务器缓存的自动垃圾回收。
-spec discovery(TargetName, Notification) -> {ok, ManagerEngineID} | {error, Reason} when TargetName :: string(), Notification :: atom(), ManagerEngineID :: snmp_framework_mib:engine_id(), Reason :: term().
等效于 discovery/6
。
-spec discovery(TargetName, Notification, Varbinds) -> {ok, ManagerEngineID} | {error, Reason} when TargetName :: string(), Notification :: atom(), Varbinds :: [Varbind], Varbind :: {Variable :: atom(), Value} | {OID :: snmp:oid(), Value} | {Column :: atom(), RowIndex :: snmp:row_index(), Value}, Value :: term(), ManagerEngineID :: snmp_framework_mib:engine_id(), Reason :: term(); (TargetName, Notification, ContextName) -> {ok, ManagerEngineID} | {error, Reason} when TargetName :: string(), Notification :: atom(), ContextName :: snmp_community_mib:context_name(), ManagerEngineID :: snmp_framework_mib:engine_id(), Reason :: term().
等效于 discovery/6
。
-spec discovery(TargetName, Notification, ContextName, Varbinds) -> {ok, ManagerEngineID} | {error, Reason} when TargetName :: string(), Notification :: atom(), ContextName :: snmp_community_mib:context_name(), Varbinds :: [Varbind], Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {OID, Value}, Variable :: atom(), Column :: atom(), RowIndex :: snmp:row_index(), OID :: snmp:oid(), Value :: term(), ManagerEngineID :: snmp_framework_mib:engine_id(), Reason :: term(); (TargetName, Notification, Varbinds, DiscoHandler) -> {ok, ManagerEngineID} | {error, Reason} when TargetName :: string(), Notification :: atom(), Varbinds :: [Varbind], Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {OID, Value}, Variable :: atom(), Column :: atom(), RowIndex :: snmp:row_index(), OID :: snmp:oid(), Value :: term(), DiscoHandler :: discovery_handler(), ManagerEngineID :: snmp_framework_mib:engine_id(), Reason :: term().
等效于 discovery/6
。
-spec discovery(TargetName, Notification, ContextName, Varbinds, DiscoHandler) -> {ok, ManagerEngineID} | {error, Reason} when TargetName :: string(), Notification :: atom(), ContextName :: snmp_community_mib:context_name(), Varbinds :: [Varbind], Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {OID, Value}, Variable :: atom(), Column :: atom(), RowIndex :: snmp:row_index(), OID :: snmp:oid(), Value :: term(), DiscoHandler :: discovery_handler(), ManagerEngineID :: snmp_framework_mib:engine_id(), Reason :: term().
等效于 discovery/6
。
-spec discovery(TargetName, Notification, ContextName, Varbinds, DiscoHandler, ExtraInfo) -> {ok, ManagerEngineID} | {error, Reason} when TargetName :: string(), Notification :: atom(), ContextName :: snmp_community_mib:context_name(), Varbinds :: [Varbind], Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {OID, Value}, Variable :: atom(), Column :: atom(), RowIndex :: snmp:row_index(), OID :: snmp:oid(), Value :: term(), DiscoHandler :: discovery_handler(), ExtraInfo :: term(), ManagerEngineID :: snmp_framework_mib:engine_id(), Reason :: term().
使用通知 Notification
启动与由 TargetName
标识的管理器之间的发现过程。
此函数是同步的,这意味着它将在发现过程完成或失败时返回。
在发现过程中使用 DiscoHandler
模块。有关详细信息,请参阅 发现处理程序。
ExtraInfo
参数将传递给 DiscoHandler
的回调函数。
注意
如果我们不处于安全级别
noAuthNoPriv
,这可能会很复杂,因为代理将在第 2 阶段之前继续,在此之前必须完成与 usm 相关的更新。
注意
如果安全级别高于
noAuthNoPriv
,则默认发现处理程序将需要调用方执行其他操作,并且发现将不起作用。
-spec enable_mibs_cache() -> snmp:void().
等效于 enable_mibs_cache/1
。
启用 MIB 服务器缓存。
-spec enable_mibs_cache_autogc() -> snmp:void().
-spec enable_mibs_cache_autogc(Agent) -> snmp:void() when Agent :: pid() | AgentName, AgentName :: atom().
启用 MIB 服务器缓存的自动垃圾回收。
-spec enum_to_int(Name, Enum) -> {value, Int} | false when Name :: atom(), Enum :: atom(), Int :: integer().
等效于 enum_to_int/3
。
-spec enum_to_int(Db, Name, Enum) -> {value, Int} | false when Db :: term(), Name :: atom(), Enum :: atom(), Int :: integer().
将 MIB 中枚举的对象或类型 Name
的符号值 Enum
转换为相应的整数。 必须加载 MIB。
如果对象或类型未在任何已加载的 MIB 中定义,或者如果它没有将符号值定义为枚举,则返回 false
。
Db
是对符号存储数据库的引用(通过调用 get_symbolic_store_db/0
检索)。
-spec gc_mibs_cache() -> {ok, NumElementsGCed} | {error, Reason} when NumElementsGCed :: non_neg_integer(), Reason :: term().
等效于 gc_mibs_cache/3
。
-spec gc_mibs_cache(Agent) -> {ok, NumElementsGCed} | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), NumElementsGCed :: non_neg_integer(), Reason :: term(); (Age) -> {ok, NumElementsGCed} | {error, Reason} when Age :: pos_integer(), NumElementsGCed :: non_neg_integer(), Reason :: term().
等效于 gc_mibs_cache/3
。
-spec gc_mibs_cache(Agent, Age) -> {ok, NumElementsGCed} | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Age :: pos_integer(), NumElementsGCed :: non_neg_integer(), Reason :: term(); (Age, GcLimit) -> {ok, NumElementsGCed} | {error, Reason} when Age :: pos_integer(), GcLimit :: pos_integer() | infinity, NumElementsGCed :: non_neg_integer(), Reason :: term().
等效于 gc_mibs_cache/3
。
-spec gc_mibs_cache(Agent, Age, GcLimit) -> {ok, NumElementsGCed} | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Age :: pos_integer(), GcLimit :: pos_integer() | infinity, NumElementsGCed :: non_neg_integer(), Reason :: term().
执行 MIB 服务器缓存垃圾回收。
手动执行 mib 服务器缓存垃圾回收。无论 autogc
选项的值如何,都可以执行此操作。NumElementsGCed
值指示实际从缓存中删除的元素数量。
-spec get(Agent, Vars) -> Values | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Vars :: [snmp:oid()], Values :: [term()], Reason :: term().
等效于 get/3
。
-spec get(Agent, Vars, Context) -> Values | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Vars :: [snmp:oid()], Context :: snmp_community_mib:context_name(), Values :: [term()], Reason :: term().
在代理上执行 GET 操作。 在此操作中,所有加载的 MIB 对象都是可见的。 代理调用相应的检测函数,就像它是一个来自管理器的 GET 请求一样。
请注意,如果使用此函数,则检测函数无法访问特定于请求的参数(例如 current_request_id/0
)。
-spec get_agent_caps() -> Caps when Caps :: [[Cap]], Cap :: SysORIndex | SysORID | SysORDescr | SysORUpTime, SysORIndex :: integer(), SysORID :: snmp:oid(), SysORDescr :: string(), SysORUpTime :: integer().
返回代理中 sysORTable 中的所有 AGENT-CAPABILITY 语句。 该表在 SNMPv2-MIB 中定义。
请注意,Erlang 类型语言不允许我们正确描述此函数返回的内容。确切的返回值是
[[SysORIndex, SysORID, SysORDescr, SysORUpTime]]
-spec get_next(Agent, Vars) -> Values | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Vars :: [snmp:oid()], Values :: [{snmp:oid(), term()}], Reason :: term().
等效于 get_next/3
。
-spec get_next(Agent, Vars, Context) -> Values | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Vars :: [snmp:oid()], Context :: snmp_community_mib:context_name(), Values :: [{snmp:oid(), term()}], Reason :: {atom(), snmp:oid()}.
在代理上执行 GET-NEXT 操作。 在此操作中,所有加载的 MIB 对象都是可见的。 代理调用相应的检测函数,就像它是一个来自管理器的 GET 请求一样。
请注意,如果使用此函数,则检测函数无法访问特定于请求的参数(例如 snmpa:current_request_id/0
)。
等效于 info/1
。
-spec info(Agent) -> Info when Agent :: pid() | AgentName, AgentName :: atom(), Info :: [{Key, Value}], Key :: term(), Value :: term().
返回包含有关代理信息的列表(字典)。 信息包括加载的 MIB、注册的子代理、有关内存分配的一些信息。
-spec int_to_enum(Name, Int) -> {value, Enum} | false when Name :: atom(), Int :: integer(), Enum :: atom().
等效于 int_to_enum/3
。
-spec int_to_enum(Db, Name, Int) -> {value, Enum} | false when Db :: term(), Name :: atom(), Int :: integer(), Enum :: atom().
将 MIB 中枚举的对象或类型 Name
的整数 Int
转换为相应的符号值。 必须加载 MIB。
如果对象或类型未在任何已加载的 MIB 中定义,或者如果它没有将符号值定义为枚举,则返回 false
。
Db
是对符号存储数据库的引用(通过调用 get_symbolic_store_db/0
检索)。
-spec invalidate_mibs_cache() -> snmp:void().
-spec invalidate_mibs_cache(Agent) -> snmp:void() when Agent :: pid() | AgentName, AgentName :: atom().
使 MIB 服务器缓存无效。
将删除缓存的全部内容。
-spec load_mib(Mib) -> ok | {error, Reason} when Mib :: string(), Reason :: already_loaded | term().
等效于 load_mib/2
。
-spec load_mib(Agent, Mib) -> ok | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Mib :: string(), Reason :: already_loaded | term().
将单个 Mib
加载到代理中。 MibName
是 MIB 的名称,包括找到已编译 MIB 的路径。 例如
Dir = code:priv_dir(my_app) ++ "/mibs/",
snmpa:load_mib(snmp_master_agent, Dir ++ "MY-MIB").
-spec load_mibs(Mibs) -> ok | {error, Reason} when Mibs :: [MibName], MibName :: string(), Reason :: {'load aborted at', MibName, InternalReason}, InternalReason :: already_loaded | term().
等效于 load_mibs/3
。
-spec load_mibs(Agent, Mibs) -> ok | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Mibs :: [MibName], MibName :: string(), Reason :: {'load aborted at', MibName, InternalReason}, InternalReason :: already_loaded | term(); (Mibs, Force) -> ok | {error, Reason} when Mibs :: [MibName], MibName :: string(), Force :: boolean(), Reason :: {'load aborted at', MibName, InternalReason}, InternalReason :: already_loaded | term().
等效于 load_mibs/3
。
-spec load_mibs(Agent, Mibs, Force) -> ok | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Mibs :: [MibName], MibName :: string(), Force :: boolean(), Reason :: {'load aborted at', MibName, InternalReason}, InternalReason :: already_loaded | term().
将 Mibs
加载到代理中。 如果代理无法加载所有 MIB(Force
参数的默认值为 false
),它将指示加载中止的位置。 MibName
是 MIB 的名称,包括找到已编译 MIB 的路径。 例如,
Dir = code:priv_dir(my_app) ++ "/mibs/",
snmpa:load_mibs(snmp_master_agent, [Dir ++ "MY-MIB"]).
如果 Force = true
,即使在加载前一个 mib 失败后,代理也会继续尝试加载每个 mib。请谨慎使用。
-spec log_to_io(LogDir) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term().
等效于 log_to_io/7
。
-spec log_to_io(LogDir, Block) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Block :: boolean(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term(); (LogDir, Mibs) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term().
等效于 log_to_io/7
。
-spec log_to_io(LogDir, Mibs, Block) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], Block :: boolean(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term(); (LogDir, Mibs, LogName) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], LogName :: string(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term().
等效于 log_to_io/7
。
-spec log_to_io(LogDir, Mibs, LogName, Block) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], LogName :: string(), Block :: boolean(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term(); (LogDir, Mibs, LogName, LogFile) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], LogName :: string(), LogFile :: string(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term().
等效于 log_to_io/7
。
-spec log_to_io(LogDir, Mibs, LogName, LogFile, Block) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], LogName :: string(), LogFile :: string(), Block :: boolean(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term(); (LogDir, Mibs, LogName, LogFile, Start) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], LogName :: string(), LogFile :: string(), Start :: null | snmp:log_time(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term().
等效于 log_to_io/7
。
-spec log_to_io(LogDir, Mibs, LogName, LogFile, Block, Start) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], LogName :: string(), LogFile :: string(), Block :: boolean(), Start :: null | snmp:log_time(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term(); (LogDir, Mibs, LogName, LogFile, Start, Stop) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], LogName :: string(), LogFile :: string(), Start :: null | snmp:log_time(), Stop :: null | snmp:log_time(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term().
等效于 log_to_io/7
。
-spec log_to_io(LogDir, Mibs, LogName, LogFile, Block, Start, Stop) -> ok | {ok, Cnt} | {error, Reason} when LogDir :: string(), Mibs :: [snmp:mib_name()], LogName :: string(), LogFile :: string(), Block :: boolean(), Start :: null | snmp:log_time(), Stop :: null | snmp:log_time(), Cnt :: {NumOK, NumERR}, NumOK :: non_neg_integer(), NumERR :: pos_integer(), Reason :: term().
将审核跟踪日志转换为可读格式,并将其打印到 stdio。 LogName
默认为“snmpa_log”。 LogFile
默认为“snmpa.log”。
Block
选项指示是否应在转换期间阻止日志。这在转换大型日志时很有用(否则,日志可能会在转换期间回绕)。默认为 true
。
有关详细信息,请参阅 snmp:log_to_io/7
。
等效于 log_to_txt/8
。
-spec log_to_txt(LogDir, Block) -> snmp:void() when LogDir :: snmp:dir(), Block :: boolean(); (LogDir, Mibs) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()].
等效于 log_to_txt/8
。
-spec log_to_txt(LogDir, Mibs, Block) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], Block :: boolean(); (LogDir, Mibs, OutFile) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename().
等效于 log_to_txt/8
。
-spec log_to_txt(LogDir, Mibs, OutFile, Block) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename(), Block :: boolean(); (LogDir, Mibs, OutFile, LogName) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename(), LogName :: string().
等效于 log_to_txt/8
。
-spec log_to_txt(LogDir, Mibs, OutFile, LogName, Block) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename(), LogName :: string(), Block :: boolean(); (LogDir, Mibs, OutFile, LogName, LogFile) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename(), LogName :: string(), LogFile :: string().
等效于 log_to_txt/8
。
-spec log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Block | Start) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename(), LogName :: string(), LogFile :: string(), Block :: boolean(), Start :: null | snmp:log_time().
等效于 log_to_txt/8
。
-spec log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Block, Start) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename(), LogName :: string(), LogFile :: string(), Block :: boolean(), Start :: null | snmp:log_time(); (LogDir, Mibs, OutFile, LogName, LogFile, Start, Stop) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename(), LogName :: string(), LogFile :: string(), Start :: null | snmp:log_time(), Stop :: null | snmp:log_time().
等效于 log_to_txt/8
。
log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Block, Start, Stop)
查看源代码 (自 OTP R16B03 起)-spec log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Block, Start, Stop) -> snmp:void() when LogDir :: snmp:dir(), Mibs :: [snmp:mib_name()], OutFile :: file:filename(), LogName :: string(), LogFile :: string(), Block :: boolean(), Start :: null | snmp:log_time(), Stop :: null | snmp:log_time().
将审核跟踪日志转换为可读的文本文件。 OutFile
默认为“./snmpa_log.txt”。 LogName
默认为“snmpa_log”。 LogFile
默认为“snmpa.log”。
Block
选项指示是否应在转换期间阻止日志。这在转换大型日志时很有用(否则,日志可能会在转换期间回绕)。默认为 true
。
有关详细信息,请参阅 snmp:log_to_txt/8
。
-spec me_of(Oid) -> {ok, Me} | {error, Reason} when Oid :: snmp:oid(), Me :: snmp:me(), Reason :: term().
等效于 me_of/2
。
-spec me_of(Agent, Oid) -> {ok, Me} | {error, Reason} when Agent :: pid() | AgentName, AgentName :: atom(), Oid :: snmp:oid(), Me :: snmp:me(), Reason :: term().
查找与 Oid
对应的 MIB 条目。
如果是变量,则 Oid 必须为 等效于 查找与 如果是变量,则 Oid 必须为 等效于 给定符号名称,查找 MIB 对象的 OBJECT IDENTIFIER。 请注意,OBJECT IDENTIFIER 是针对对象给出的,而不是针对实例给出的。 如果对象未在任何已加载的 MIB 中定义,则返回 等效于 给定 OBJECT IDENTIFIER,查找 MIB 对象的符号名称。 如果对象未在任何已加载的 MIB 中定义,则返回 打印 snmp 代理处理的所有 MIB 的所有(snmp)表和变量的内容。 打印 snmp 代理处理的所有 MIB 的所有(snmp)表的内容。 打印 snmp 代理处理的所有 MIB 的所有(snmp)变量的内容。 接受的类型规范为 注册通知过滤器。 调用该行为的函数时, 在另一个代理的子树下注册一个子代理。 注册子代理时很容易出错,应谨慎执行此操作。例如,以下配置会导致奇怪的行为 等效于 重新启动多线程代理的 set 工作进程。 这是一个实用程序函数,在调试检测函数时可能会很有用。 等效于 重新启动多线程代理的工作进程。 这是一个实用程序函数,在调试检测函数时可能会很有用。 将通知 如果未指定 如果未指定 发送选项 根据 这会通知用户将通知发送到了哪些目标地址。 这会通知用户此目标地址已确认通知。 这会通知用户此目标地址未确认通知。 通知会以 Inform-Request 的形式发送到 其中 可以使用变量名/OID提供的 “process oid” “tag” 用于 OID 后处理。值 ' 有一种方法可以从通知中排除 varbind。在普通的 已将此定义添加到 此应用程序提供的 net-if 版本不使用此数据,但有一个例外:任何包含原子 等效于 等效于 等效于 等效于 将通知 如果没有指定 如果未指定 参数 如果 这会通知用户通知已发送到的目标地址。 这会通知用户此目标地址已确认通知。 这会通知用户此目标地址未确认通知。 通知会以 Inform-Request 的形式发送到 其中 如果 可选参数 例如,要指定 如果通知中的变量是表元素,则必须在 此函数是异步的,不返回任何信息。如果发生错误,则会调用错误报告模块的 请注意,LocalEngineID 参数的使用仅适用于特殊情况,即如果代理要“模拟”多个 EngineID!默认情况下,代理使用 但有一个例外。 任何 包含原子 等效于 更改运行时审核跟踪日志类型。 请注意,这不会影响配置文件定义的应用程序配置,因此节点重启会将配置恢复为这些文件中的内容。 此函数主要用于测试/调试场景。 等效于 更改请求限制。 请注意,这不会影响配置文件定义的应用程序配置,因此节点重启会将配置恢复为这些文件中的内容。 此函数主要用于负载调节场景。 等效于 从代理中卸载单个 等效于 等效于 从代理中卸载 如果 取消注册通知过滤器。 取消注册子代理。 如果第二个参数是 pid,则将从 更改 MIB 服务器缓存的 更改 mib 服务器缓存的 设置指定进程的“verbosity”(详细程度) 以下文本记录了预期的输入-输出关系 如果 如果 等同于 获取(已编译的)mib 文件的完整路径。 检索代理已知的所有别名。 等同于 检索加载到此代理中的所有 mib 的列表。默认是主代理。 检索 mib 服务器缓存的大小。 列出代理中的所有通知过滤器。 检索代理已知的所有通知(和陷阱)。 检索代理已知的所有表。 检索所有已配置的传输。 检索代理已知的所有变量。.
-spec mib_of(Oid) -> {ok, MibName} | {error, Reason}
when Oid :: snmp:oid(), MibName :: atom(), Reason :: term().
mib_of/2
。-spec mib_of(Agent, Oid) -> {ok, MibName} | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Oid :: snmp:oid(),
MibName :: atom(),
Reason :: term().
Oid
对应的 MIB。
;如果是表,则 Oid 必须为 .
name_to_oid/2
。-spec name_to_oid(Db, Name) -> {value, Oid} | false when Db :: term(), Name :: atom(), Oid :: snmp:oid().
false
。Db
是对符号存储数据库的引用(通过调用 get_symbolic_store_db/0
检索)。oid_to_name/2
。-spec oid_to_name(Db, Oid) -> {value, Name} | false when Db :: term(), Oid :: snmp:oid(), Name :: atom().
false
。Db
是对符号存储数据库的引用(通过调用 get_symbolic_store_db/0
检索)。-spec print_mib_info() -> snmp:void().
-spec print_mib_tables() -> snmp:void().
-spec print_mib_variables() -> snmp:void().
-spec register_notification_filter(Id, Mod, Data) -> ok | {error, Reason}
when
Id :: nfilter_id(),
Mod :: module(),
Data :: term(),
Reason :: term().
-spec register_notification_filter(Agent | Id, Id | Mod, Mod | Data, Data | Where) ->
ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Id :: nfilter_id(),
Mod :: module(),
Data :: term(),
Where :: nfilter_position(),
Reason :: term().
-spec register_notification_filter(Agent, Id, Mod, Data) -> ok | {error, Reason}.
-spec register_notification_filter(Id, Mod, Data, Where) -> ok | {error, Reason}.
-spec register_notification_filter(Agent, Id, Mod, Data, Where) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Id :: nfilter_id(),
Mod :: module(),
Data :: term(),
Where :: nfilter_position(),
Reason :: term().
Mod
是一个实现 snmpa_notification_filter
行为的模块。Data
将传递给过滤器。-spec register_subagent(Agent, SubTree, SubAgent) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
SubTree :: snmp:oid(),
SubAgent :: pid(),
Reason :: term().
snmp_agent:register_subagent(MAPid,[1,2,3,4],SA1),
snmp_agent:register_subagent(SA1,[1,2,3], SA2).
SA2
将不会收到以对象标识符 [1,2,3]
开头的请求,因为 SA1
没有。-spec restart_set_worker() -> snmp:void().
restart_set_worker/1
。-spec restart_worker() -> snmp:void().
restart_worker/1
。-spec send_notification2(Agent, Notification, SendOpts) -> snmp:void()
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Notification :: atom(),
SendOpts :: [SendOpt],
SendOpt ::
{receiver, Receiver} |
{name, snmp_notification_mib:notify_name()} |
{context, snmp_community_mib:context_name()} |
{varbinds, [Varbind]} |
{local_engine_id, snmp_framework_mib:engine_id()} |
{extra, term()},
Receiver :: no_receiver | {Tag, Recv} | notification_delivery_info(),
Tag :: term(),
Recv :: pid() | atom() | MFA,
MFA :: {Mod, Func, Args},
Mod :: module(),
Func :: atom(),
Args :: list(),
Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {Oid, Value},
Variable :: atom(),
Column :: atom(),
RowIndex :: snmp:row_index(),
Oid :: snmp:oid(),
Value :: term().
Notification
从指定的 context
发送到在 SNMP-NOTIFICATION-MIB 中的 snmpNotifyTable
中为 notify-name (name
) 定义的管理目标。name
(或如果它是 ""
),则会将通知发送到所有管理目标。context
,则使用默认上下文 ""
。receiver
指定应将有关 Inform-Request 传递的信息发送到何处。代理发送 Inform-Request 并等待来自管理目标的确认。receiver
可以有三个值no_receiver
- 不传递任何信息。notification_delivery_info/0
- 根据此数据通过函数调用传递信息。{tag(), tag_receiver()}
- 根据 tag_receiver()
的值,通过消息或通过函数调用传递信息。tag_receiver()
的值,以不同的方式进行传递pid() | registered_name()
- 信息将以以下消息传递{snmp_targets, tag(), Addresses}
{snmp_notification, tag(), {got_response, Address}}
{snmp_notification, tag(), {no_response, Address}}
Addresses
中的每个目标地址。如果没有发送 Inform-Request 的目标,则 Addresses
为空列表 []
。tag_receiver()
将首先收到 snmp_targets
消息,然后对于 Addresses
列表中的每个地址,会收到两条 snmp_notification
消息中的一条。{Mod, Func, Args}
- 信息将通过函数调用传递。Mod:Func([Msg | Args])
Msg
的内容和用途与上述消息相同。keep
'(默认值)保持 OID 不变。值 'truncate
' 将导致 OID 被“截断”。也就是说,任何尾部的 ".0" 将被删除。注意
varbinds
列表中,提供特殊值 '$ignore-oid'
(而不是普通值)将从通知中排除此 varbind。snmp_types.hrl
包含文件中,即 NOTIFICATION_IGNORE_VB_VALUE
。注意
extra
信息通常不会被代理解释,而是传递给 net-if 进程。是否使用此数据取决于该进程的实现者。snmpa_default_notification_extra_info
的元组可能会被代理使用,因此是保留的。-spec send_notification(Agent, Notification, Receiver) -> snmp:void()
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Notification :: atom(),
Receiver :: no_receiver | {Tag, Recv} | notification_delivery_info(),
Tag :: term(),
Recv :: pid() | atom() | MFA,
MFA :: {Mod, Func, Args},
Mod :: module(),
Func :: atom(),
Args :: list().
send_notification/7
。-spec send_notification(Agent, Notification, Receiver, Varbinds) -> snmp:void()
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Notification :: atom(),
Receiver :: no_receiver | {Tag, Recv} | notification_delivery_info(),
Tag :: term(),
Recv :: pid() | atom() | MFA,
MFA :: {Mod, Func, Args},
Mod :: module(),
Func :: atom(),
Args :: list(),
Varbinds :: [Varbind],
Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {Oid, Value},
Variable :: atom(),
Column :: atom(),
RowIndex :: snmp:row_index(),
Oid :: snmp:oid(),
Value :: term().
send_notification/7
。-spec send_notification(Agent, Notification, Receiver, NotifyName, Varbinds) -> snmp:void()
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Notification :: atom(),
Receiver :: no_receiver | {Tag, Recv} | notification_delivery_info(),
Tag :: term(),
Recv :: pid() | atom() | MFA,
MFA :: {Mod, Func, Args},
Mod :: module(),
Func :: atom(),
Args :: list(),
NotifyName :: snmp_notification_mib:notify_name(),
Varbinds :: [Varbind],
Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {Oid, Value},
Variable :: atom(),
Column :: atom(),
RowIndex :: snmp:row_index(),
Oid :: snmp:oid(),
Value :: term().
send_notification/7
。-spec send_notification(Agent, Notification, Receiver, NotifyName, ContextName, Varbinds) -> snmp:void()
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Notification :: atom(),
Receiver :: no_receiver | {Tag, Recv} | notification_delivery_info(),
Tag :: term(),
Recv :: pid() | atom() | MFA,
MFA :: {Mod, Func, Args},
Mod :: module(),
Func :: atom(),
Args :: list(),
NotifyName :: snmp_notification_mib:notify_name(),
ContextName :: snmp_community_mib:context_name(),
Varbinds :: [Varbind],
Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {Oid, Value},
Variable :: atom(),
Column :: atom(),
RowIndex :: snmp:row_index(),
Oid :: snmp:oid(),
Value :: term().
send_notification/7
。send_notification(Agent, Notification, Receiver, NotifyName, ContextName, Varbinds, LocalEngineID)
查看源代码 (自 OTP R14B 起)-spec send_notification(Agent, Notification, Receiver, NotifyName, ContextName, Varbinds, LocalEngineID) ->
snmp:void()
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Notification :: atom(),
Receiver :: no_receiver | {Tag, Recv} | notification_delivery_info(),
Tag :: term(),
Recv :: pid() | atom() | MFA,
MFA :: {Mod, Func, Args},
Mod :: module(),
Func :: atom(),
Args :: list(),
NotifyName :: snmp_notification_mib:notify_name(),
ContextName :: snmp_community_mib:context_name(),
Varbinds :: [Varbind],
Varbind :: {Variable, Value} | {Column, RowIndex, Value} | {Oid, Value},
Variable :: atom(),
Column :: atom(),
RowIndex :: snmp:row_index(),
Oid :: snmp:oid(),
Value :: term(),
LocalEngineID :: snmp_framework_mib:engine_id().
Notification
从指定的上下文发送到在 SNMP-NOTIFICATION-MIB 中的 snmpNotifyTable
中为 NotifyName
定义的管理目标。NotifyName
(或如果它是 ""
),则通知将发送到所有管理目标(如下面的 Addresses
)。ContextName
,则使用默认的 ""
上下文。Receiver
指定应将有关 Inform-Request 传递的信息发送到何处。代理发送 Inform-Request 并等待管理器的确认。Receiver
可以有三个值。no_receiver
- 不传递任何信息。notification_delivery_info/0
- 根据此数据通过函数调用传递信息。{Tag, Recv}
- 信息将根据 Recv
的值通过消息或函数调用传递。Receiver
的值为 {Tag, Recv}
,则根据 Recv
进行传递。pid() | atom()
- 信息将以下列消息传递。{snmp_targets, Tag, Addresses}
{snmp_notification, Tag, {got_response, Address}}
{snmp_notification, Tag, {no_response, Address}}
Addresses
中的每个目标地址。如果没有发送 Inform-Request 的目标,则 Addresses
为空列表 []
。receiver
将首先收到 snmp_targets
消息,然后对于 Addresses
列表中的每个地址,会收到两条 snmp_notification
消息中的一条。{Mod, Func, Args}
- 信息将通过函数调用传递。Mod:Func([Msg | Args])
Msg
的内容和用途与上述消息相同。Address
是管理目标地址,Addresses
是管理目标地址列表。它们的定义如下: Addresses = [address()]
Address = address()
address() = v1_address() | v3_address()
v1_address() = {TDomain, TAddress}
v3_address() = {{TDomain, TAddress}, V3MsgData}
TDomain = tdoamin()
TAddress = taddress()
tdomain() = The oid of snmpUDPDomain
This is the only supported transport domain.
taddress() = [A1, A2, A3, A4, P1, P3]
The 4 first bytes makes up the IP-address and the last 2,
the UDP-port number.
V3MsgData = v3_msg_data()
v3_msg_data() = term()
Receiver
是一个 notification_delivery_info/0
记录,则有关通知传递的信息将通过 snmpa_notification_delivery_info_receiver
行为定义的,根据 notification_delivery_info/0
记录内容的回调函数,传递给 receiver
。Varbinds
定义通知中对象的值。如果未提供对象的值,则 Agent
执行 get 操作以检索该值。Varbinds
是 Varbind
的列表,其中每个 Varbind
是以下之一:{Variable, Value}
,其中 Variable
是通知规范中引用的标量变量的符号名称。{Column, RowIndex, Value}
,其中 Column
是列变量的符号名称。RowIndex
是指定元素的索引列表。 如果是这种情况,则在通知中发送的 OBJECT IDENTIFIER 是附加到表列的 OBJECT IDENTIFIER 的 RowIndex
。这是指定元素的 OBJECT IDENTIFIER。{OID, Value}
,其中 OID
是对象实例(标量变量或列变量)的 OBJECT IDENTIFIER。sysLocation
在通知中的值为 "upstairs"
,我们可以使用以下之一:{sysLocation, "upstairs"}
或者{[1,3,6,1,2,1,1,6,0], "upstairs"}
或者{?sysLocation_instance, "upstairs"}
(前提是包含生成的 .hrl
文件)Varbinds
列表中给出该元素的 RowIndex
。在这种情况下,通知中发送的 OBJECT IDENTIFIER 是标识此元素的 OBJECT IDENTIFIER。此 OBJECT IDENTIFIER 可以在以后的 get 操作中使用。user_err/2
,并且通知将被丢弃。注意
SnmpEngineID
的值(请参阅 SNMP-FRAMEWORK-MIB)。ExtraInfo
通常不会被代理以任何方式使用。它旨在传递给 net-if 进程,这是一个用户可以自行实现的组件。用户自己的 net-if 可能会使用 ExtraInfo。此应用程序提供的 net-if 不会处理 ExtraInfo。snmpa_default_notification_extra_info
的元组,在此上下文中都将被视为属于此应用程序,并且可以由代理处理。-spec set_log_type(NewType) -> {ok, OldType} | {error, Reason}
when NewType :: snmp:atl_type(), OldType :: snmp:atl_type(), Reason :: term().
set_log_type/2
。-spec set_log_type(Agent, NewType) -> {ok, OldType} | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
NewType :: snmp:atl_type(),
OldType :: snmp:atl_type(),
Reason :: term().
-spec set_request_limit(NewLimit) -> {ok, OldLimit} | {error, Reason}
when
NewLimit :: infinity | non_neg_integer(),
OldLimit :: infinity | non_neg_integer(),
Reason :: term().
set_request_limit/2
。-spec set_request_limit(Agent, NewLimit) -> {ok, OldLimit} | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
NewLimit :: infinity | non_neg_integer(),
OldLimit :: infinity | non_neg_integer(),
Reason :: term().
unload_mib/2
。-spec unload_mib(Agent, Mib) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Mib :: string(),
Reason :: not_loaded | term().
Mib
。-spec unload_mibs(Mibs) -> ok | {error, Reason}
when
Mibs :: [MibName],
MibName :: string(),
Reason :: {'unload aborted at', MibName, InternalReason},
InternalReason :: not_loaded | term().
unload_mibs/3
。-spec unload_mibs(Agent, Mibs) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Mibs :: [MibName],
MibName :: string(),
Reason :: {'unload aborted at', MibName, InternalReason},
InternalReason :: not_loaded | term();
(Mibs, Force) -> ok | {error, Reason}
when
Mibs :: [MibName],
MibName :: string(),
Force :: boolean(),
Reason :: {'unload aborted at', MibName, InternalReason},
InternalReason :: not_loaded | term().
unload_mibs/3
。-spec unload_mibs(Agent, Mibs, Force) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Mibs :: [MibName],
MibName :: string(),
Force :: boolean(),
Reason :: {'unload aborted at', MibName, InternalReason},
InternalReason :: not_loaded | term().
Mibs
。 如果它无法卸载所有 MIB(Force
参数的默认值为 false
),它将指示卸载中止的位置。Force = true
,则即使在卸载上一个 MIB 失败后,代理也会继续尝试卸载每个 MIB。请谨慎使用。-spec unregister_notification_filter(Id) -> ok | {error, Reason}
when Id :: nfilter_id(), Reason :: term().
-spec unregister_notification_filter(Agent, Id) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Id :: nfilter_id(),
Reason :: term().
-spec unregister_subagent(Agent, SubAgentOidOrPid) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
SubAgentOidOrPid :: snmp:oid() | pid(),
Reason :: term().
Agent
中的所有树中取消注册该子代理。-spec update_mibs_cache_age(Age) -> ok | {error, Reason} when Age :: pos_integer(), Reason :: term().
-spec update_mibs_cache_age(Agent, Age) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Age :: pos_integer(),
Reason :: term().
age
属性。-spec update_mibs_cache_gclimit(GcLimit) -> ok | {error, Reason}
when GcLimit :: pos_integer(), Reason :: term().
-spec update_mibs_cache_gclimit(Agent, GcLimit) -> ok | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
GcLimit :: pos_integer(),
Reason :: term().
gclimit
属性。-spec verbosity(Target, Verbosity) -> snmp:void()
when
Target :: all | LogicalName | PidOrAgentName,
LogicalName :: net_if | note_store | mib_server | symbolic_store | local_db,
PidOrAgentName :: pid() | master_agent | atom(),
Verbosity :: SNMPVerb | SubAgent,
SNMPVerb :: snmp:verbosity(),
SubAgent :: {subagents, snmp:verbosity()}.
all
- 为所有代理进程设置详细程度;net_if、note_store、mib_server、symbolic_store、local_db 和 master_agent(以及子代理)。net_if
- 为 net-if 进程设置详细程度。note_store
- 为 note store 进程设置详细程度。mib_server
- 为 mib server 进程设置详细程度。symbolic_store
- 为 symbolic store 进程设置详细程度。local_db
- 为 local-db 进程设置详细程度。master_agent | pid()
当 Verbosity = {subagents,
snmp:verbosity()
}
时 - 为此(主)代理控制的所有子代理设置详细程度。master_agent | pid() | atom()
- 为代理进程设置详细程度。Target :: all | net_if | note_store | mib_server | symbolic_store | local_db
,则 Verbosity :: snmp:verbosity()
。Target :: master_agent
,则 Verbosity :: {subagents, snmp:verbosity()}
。如果 `Target :: pid() atom()`, 则 `Verbosity :: snmp:verbosity() {subagents, snmp:verbosity()}`。 -spec whereis_mib(MibName) -> {ok, MibFile} | {error, Reason}
when MibName :: atom(), MibFile :: string(), Reason :: term().
whereis_mib/2
。-spec whereis_mib(Agent, MibName) -> {ok, MibFile} | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
MibName :: atom(),
MibFile :: string(),
Reason :: term().
-spec which_aliasnames() -> AliasNames when AliasNames :: [AliasName], AliasName :: atom().
-spec which_mibs() -> Mibs when Mibs :: [{MibName, MibFile}], MibName :: atom(), MibFile :: string().
which_mibs/1
。-spec which_mibs(Agent) -> Mibs
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Mibs :: [{MibName, MibFile}],
MibName :: atom(),
MibFile :: string().
-spec which_mibs_cache_size() -> {ok, Size} | {error, Reason}
when Size :: non_neg_integer(), Reason :: term().
-spec which_mibs_cache_size(Agent) -> {ok, Size} | {error, Reason}
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Size :: non_neg_integer(),
Reason :: term().
-spec which_notification_filter() -> Filters when Filters :: [FilterId], FilterId :: nfilter_id().
-spec which_notification_filter(Agent) -> Filters
when
Agent :: pid() | AgentName,
AgentName :: atom(),
Filters :: [FilterId],
FilterId :: nfilter_id().
-spec which_notifications() -> Notifications
when
Notifications :: [{Name, MibName, Info}],
Name :: atom(),
MibName :: atom(),
Info :: term().
-spec which_tables() -> Tables when Tables :: [Table], Table :: atom().
-spec which_transports() -> Transports
when
Transports :: [Transport],
Transport :: {TDomain, TAddress} | {TDomain, TAddress, Kind},
TDomain :: snmp:tdomain(),
TAddress :: {IpAddr, IpPort},
IpAddr :: inet:ip_address(),
IpPort :: inet:port_number(),
Kind :: transport_kind().
-spec which_variables() -> Variables when Variables :: [Variable], Variable :: atom().