5 故障排除工具

虽然 ACSLS Agent 是一个相对简单的应用程序,但是它有许多依赖项,其中的任一依赖项都可能会阻止 Agent 响应 snmpget 请求或陷阱情况。

检查状态

ACSLS Agent 的运行状态由您的 Solaris 或 Linux 服务器上的服务实用程序予以显示。

  • 在 Solaris 上,请使用 svcs acsnmp

    如果 acsnmp 无法启动,则 SMF 守护进程会将 acsnmp 置于维护状态。要收集关于它为何无法启动的线索,可以查阅 SMF 启动日志中的轨迹;要找到启动日志,请发出命令 svcs -l acsnmp 并查找日志文件定义。然后,查看该日志中的最后几行:

     # tail -20 /var/svc/log/application-management-acsnmp:default.log 
    
  • 在 Linux 上,请使用 service acsnmp status

    service 命令仅显示 Agent 是正在运行还是已停止。

ACSNMP 日志文件 AcslsAgtd.log

AcslsAgtd.log 位于顶层 ACSNMP 目录中。它跟踪启动和关闭事件以及在 ACSLS Agent 运行期间遇到的任何重大错误。

agent 命令

要使 ACSLS Agent 能够响应 SNMP 请求,必须完成多个配置和运行依赖项并且它们必须已正常运行。$ACSNMP_HOME/utils 目录中有一个名为 agent 的命令。当尝试找出缺少各种系统依赖项中的哪一些时(如果有),此命令是一个很有用的故障排除助手。

命令 agent status 不但可用来查看 ACSLS Agent 的状态,还可用来查看所有相关服务的状态,包括:

  • Net-SNMP 代理守护进程 (snmpd)。

  • ACSLS 应用程序 (acsls)。

  • ACSLS 的 SNMP 服务器端接口 (snmpssi)。

  • ACSLS Agent 守护进程 (AcslsAgtd)。

  • 到主代理的端口连接。

命令 agent status 还会检查是否为对 ACSLS MIB 进行只读访问而建立了已配置的 V1 用户 rocommunity。必须在 snmpd.conf 文件中定义 rocommunityAcslsAgtd.cfg 文件中还需要包含团体定义,但是只有当在 snmpd.conf 中发现了多个团体并且只有一个特定团体供 ACSLS Agent 使用时才需要包含。

在检查依赖项并发现有效的 rocommunity 后,agent status 命令将通过提交 snmpget 命令、请求 ACSLS Agent 的版本继续对 Agent 进行测试。此测试的成功结果会显示 Agent 软件版本。

agent status 命令还查找所配置的陷阱目标。它测试对所定义的每个陷阱主机的网络访问并显示结果。如果配置了某个侦听器并且该侦听器正在本地主机上运行,则会测试到陷阱端口的连接并显示结果。

最后,agent status 命令会发出 snmpget 来获取 ACSLS Agent 广播的最新陷阱消息。

agent 实用程序还可以用作替代启动命令。使用 agent start 启动 ACSLS Agent 时,您可以在它启动时观察该实用程序的进度。如果缺少任何依赖项,则在启动序列中会显示它们。当 acsnmp 已联机到 Solaris SMF 或 Linux 服务实用程序时,无法使用此 agent start 命令。

在检验 Agent 后,您可以直接使用 snmp 命令。使用 translate -n 捕获要关注的任何特定 OID,然后针对该 OID 提交 snmpget 命令。例如,如果 rocommunityacs_user,则通过运行 snmpget 并使用对应的数字 IOD 显示 Agent 软件的版本字符串:

# snmpget -v1 -c acs_user localhost 1.3.6.1.4.1.1211.1.11.1.1.0