SNMP 模块是一个扩展功能,可以通过简单网络管理协议 (SNMP) 来检索 Apache HTTP Server 的状态。众所周知,SNMP 是一个因特网许可的硬 件(如路由器、网桥和调制解调器)和软件(如操作系统、网络层和应用程序)的管理框架,并通过管理信息库 (MIB) 提供状态。MIB 代表通过 SNMP 代理可访问的远程设备的管理目标的集合。管理器可以查询代理并获取由该代理管理的对象值。
IBM HTTP Server 支持下列 MIB:
MIB | 描述 |
SNMPv2-MIB | 每个 SNMP 代理的强制性 MIB。MIB 由 SNMPv2 工作组定义。 |
WWW-MIB | 定义用于 WWW 服务管理的 MIB。MIB 由 IETF 的 SYSAPPL MIB 工作组定义。 |
APACHE-MIB | 为 Apache HTTP Server 指定的 MIB。 |
要启用 SNMP,请使用下列 SNMP 伪指令修改 IBM HTTP Server 配置文件 (httpd.conf):
要启用 apScoreBoardGroup MIB 的 SNMP 访问,请添加或修改下列伪指令:
您必须通过 LoadModule 伪指令装入 SNMP 模块,以启用 SNMP。
对于 Windows NT:
语法:LoadModule snmp_agt_module modules/IBMModuleSNMP.dll
对于 unix:
语法:LoadModule snmp_agt_module libexec/mod_snmp.so
相应的 AddModule 是:AddModule mod_snmp.c
语法:SNMPenable
缺少 SNMPenable 将导致 SNMP 不可用。
语法:<SNMP number>...</SNMP>
模块:snmp_agt_module
number 设置 SNMP 代理将侦听的端口。 Number 值的范围是 0 - 65635;有些端口号(特别是 1024 以下的端口号)是为特殊协议所保留的。 查看 /etc/services 以获取一些所定义端口的列表;SNMP 协议的标准端口是 161。
端口 161 是 Unix 特殊端口之一。保留所有 1024 以下的端口号以供系统使用,即普通用户(非 root 用户)不能使用这些端口,他们只能用 1024 以上的端口。要使用端口 161,您必须以 root 帐户启动服务器。
如果您无法使用端口 161,请选择其它未使用的端口。非 root 用户将只能选择端口号大于 1023 的端口,如 8000。
示例:
<SNMP 80>
SNMPcommunity public
sysContact Admins@email.address
sysLocation your-place.your-country.your-earth.your-universe
</SNMP>
另见 SNMPcommunity、 sysDescr、sysContact 和 sysLocation。
语法:SNMPcommunity string
缺省:community public
模块:snmp_agt_module
公共体用于定义 SNMP 代理可访问的公共体。在 SNMP 版本 1 和版本 2C 中公共体用于‘安全性’。只有有效的公共体才可以访问来自 SNMP 代理的信息。
最常见的公共体是 'public'。大多数人使用它,但并不是必需的。如果未给定公共体,则将使用缺省的公共体。公共名的字符串长度通常至多为 64 个字符。
安全性:如果您不希望其他人使用来自于 SNMP 代理的信息,您必须使用知名的名称或来自于字典的词。
示例:
SNMPcommunity public
语法:sysDescr string
缺省:缺省编译反映各种版本/协议的标志和其它详细信息。
模块:snmp_agt_module
SysDescr 伪指令用于定义运行 SNMP 代理的主机的系统描述,用于 SNMPv2-MIB(也称为 MIB-II 的一部分)的 SysDescr 对象实例。
定义陈述:
“实体的文本描述。该值将包含系统硬件类型、软件操作系统和网络软件的全名和版本标识。”
示例:
SNMP 的 SysDescr IHS HTTP/1.1
另见 sysContact 和 sysLocation。
语法:sysContact string
模块:snmp_agt_module
SysContact 伪指令用于定义系统的联系地址,该系统用于 SNMPv2-MIB 的 SysContact 对象实例(作为 MIB-II 的一部分)。
定义陈述:
“该受管节点的联系人的文本标识,以及有关如何与该人员联系的信息。如果没有联系信息,则该值为零长度字符串。”
示例:
sysContact Admins@email.address
另见 sysDescr 和 sysLocation。
语法:sysLocation string
模块:snmp_agt_module
sysLocation 伪指令用于定义运行 SNMP 代理(也可是服务器)的主机的位置,并用于 SNMPv2-MIB 的 sysLocation 对象实例(作为 MIB-II 的一部分)。
定义陈述:
“此节点的物理位置(如,电话间位于第 3 层)。如果没有位置信息,则该值为零长度字符串。”
示例:
sysLocation 在大楼底层,房间 44
另见 sysDescr 和 sysContact。
您必须通过 apScoreBoardGroup MIB 的 LoadModule 伪指令来装入 Status 模块。
对于 Windows NT:
语法:LoadModule status_module modules/ApacheModuleStatus.dll
对于 unix:
语法:LoadModule status_module libexec/mod_status.so
相应的 AddModule 为:AddModule mod_status.c
语法:<ExtendedStatus On>
模块:mod_status
缺少 ExtendedStatus 将阻止 apScoreBoardGroup 数据的任何成功请求。
语法:<LocationMatch server-status>...</LocationMatch>
模块:mod_status
示例:
<LocationMatch server-status>
SetHandler server-status
</LocationMatch>