Nagios - 命令
命令定义定义了一个命令。命令包括服务检查、服务通知、服务事件处理程序、主机检查、主机通知和主机事件处理程序。Nagios 的命令定义在 commands.cfg 文件中定义。
以下是定义命令的格式:
define command { command_name command_name command_line command_line }
命令名称 - 此指令用于识别命令。联系人、主机和服务的定义通过命令名称进行引用。
命令行 - 此指令用于定义 Nagios 在使用命令进行服务或主机检查、通知或事件处理程序时执行的操作。
示例
define command{ command_name check_ssh command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’ }
此命令将执行插件 - /usr/libl/nagios/plugins/check_ssh,带有一个参数:'$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 守护进程定期处理的 commands 文件中,在 Nagios 中运行外部命令。
使用外部命令,您可以在 Nagios 运行时实现许多检查。您可以暂时禁用一些检查,或强制立即运行一些检查,暂时禁用通知等。以下是 Nagios 中外部命令的语法,必须将其写入命令文件:
[time] command_id;command_arguments
您还可以查看此处列出的所有可在 Nagios 中使用的外部命令: https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/