Nagios 命令

命令定义定义了一个命令。命令包括服务检查、服务通知、服务事件处理程序、主机检查、主机通知和主机事件处理程序。 Nagios 的命令定义在 commands.cfg 文件中定义。

以下是定义命令的格式:

define command {
   command_name command_name
   command_line command_line
}

Command name-此指令用于识别命令。联系人、主机和服务的定义由命令名称引用。

命令行-当命令用于服务或主机检查、通知或事件处理程序时,此指令用于定义 Nagios 执行的内容。

示例

define command{
   command_name check_ssh
   command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}

此命令将执行插件-/usr/libl/nagios/plugins/check_ssh with 1 parameter : '$HOSTADDRESS$'

使用此检查命令的非常短的主机定义可能与此处显示的类似:

define host{
   host_name host_tutorial
   address 10.0.0.1
   check_command check_ssh
}

命令定义说明如何执行主机/服务检查。还定义了如何在发现任何问题时生成通知以及如何处理任何事件。有几个命令可以执行检查,例如检查 SSH 是否正常工作的命令、检查数据库是否已启动并正在运行的命令、检查主机是否处于活动状态的命令等等。

有些命令会告诉用户基础架构中存在哪些问题。您可以在Nagios中创建您自己的自定义命令或使用任何第三方命令,它们的处理方式与Nagios插件项目类似,它们之间没有区别。

您还可以在命令中传递参数,这为执行检查提供了更大的灵活性。这是你需要如何定义一个带参数的命令:

define command {
   command_name check-host-alive-limits
   command_line $USER5$/check_ping-H $HOSTADDRESS$-w $ARG1$-c $ARG2$-p 5
}

上述命令的主机定义:

define host {
   host_name system2
   address 10.0.15.1
   check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}

你通过将外部命令添加到 Nagios 守护进程定期处理的命令文件中,在 Nagios 中运行外部命令。

使用外部命令,您可以在 Nagios 运行时进行许多检查。您可以暂时禁用一些检查,或强制立即运行某些检查,暂时禁用通知等。以下是 Nagios 中必须写入命令文件的外部命令的语法:

[time] command_id;command_arguments

您还可以在此处查看可在 Nagios 中使用的所有外部命令的列表-https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/

下一章:Nagios 检查和状态

在 Nagios 上配置主机和服务后,将使用检查来查看主机和服务是否按预期工作。让我们看一个对主机执行检查的示例:假设您已将主机定义放在/usr/local/nagios/etc/objects 目录中的 host ...