【问题标题】:Nagios SNMP Process check hangs on stale nfs mountNagios SNMP 进程检查挂在陈旧的 nfs 挂载上
【发布时间】:2014-10-15 16:14:36
【问题描述】:

我刚刚在工作中得到了这个任务,这太让我头疼了。我们有一个 nagios 监控脚本,它运行并运行进程检查。我们有一个 NFS 服务器最近出现了问题,如果它出现故障,所有挂载它的机器都会开始无法通过进程检查,因为 NFS 挂载并且挂起 SNMP 检查。

检查脚本是一个使用 NET::SNMP 库的 perl nagios 脚本。我很确定它只是通用的 nagios 脚本。该脚本位于http://nagios.manubulon.com/check_snmp_process.pl

请帮助我了解发生了什么。

编辑:有问题的 nfs 挂载适用于需要硬挂载的 oracle RMAN 备份。

【问题讨论】:

  • 插件究竟为受影响的系统返回了什么?未知?危急?是否有相关的错误消息? SNMP 超时了吗?
  • 错误:警报信号(Nagios 超时)它正在超时。如果我缩短脚本的超时时间,我会得到:错误:进程名称表:远程主机“x.x.x.x”没有响应。
  • Enable debugging for Net::SNMP 并从命令行手动运行插件以查看它挂断的确切位置。

标签: perl snmp nagios nfs


【解决方案1】:

相当简单 - NFS 旨在容忍服务器重新启动。 NFS 在挂载文件系统时调用它hard 因此将阻塞并等待服务器响应。这是为了确保没有数据丢失或进程被挂起——它们只是“停止”——这将是你遇到的问题。

nfs 有一个挂载选项可以避免这个问题 - 挂载时只需指定 soft(在 fstab 中,或者手动执行时指定 -o soft)。

但请注意 - 访问 NFS 挂载时会出错。大多数事情都可以容忍这种情况,但写得不好的脚本或程序总是有可能会失败。

【讨论】:

  • 谢谢。我们知道软选项。不幸的是,此 NFS 服务器用于需要硬挂载的 oracle RMAN 备份。
  • 那么你所有访问挂载的进程都会在它变得不可用时停止。这是设计使然。如果它在任何时候查询挂载表,这可能包括您的snmpd
  • 这就是问题所在。此检查正在尝试访问挂载表,但我无法理解代码以查看它在哪里执行或如何停止它。
  • 原来有一个单独的检查监控磁盘使用情况。它阻塞了 snmpd 进程,进而导致进程检查失败。
  • @gfreestone 您应该将其作为单独的答案,而不是评论。
【解决方案2】:

原来有一个单独的检查来监控磁盘使用情况。它阻塞了 snmpd 进程,进而导致进程检查失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 2022-07-28
    • 2017-10-17
    相关资源
    最近更新 更多