Nagios - 附加组件/插件


插件有助于使用 Nagios 监控数据库、操作系统、应用程序、网络设备、协议。插件是已编译的可执行文件或脚本(Perl 或非 Perl),可扩展 Nagios 功能以监视服务器和主机。Nagios 将执行插件来检查服务或主机的状态。Nagios 可以在编译时支持嵌入式 Perl 解释器来执行 Perl 插件。如果没有它,Nagios 通过将插件分叉并作为外部命令执行来执行 Perl 和非 Perl 插件。

Nagios 插件的类型

Nagios 有以下可用插件 -

官方 Nagios 插件- 有 50 个官方 Nagios 插件。官方 Nagios 插件由官方 Nagios 插件团队开发和维护。

社区插件- 有超过 3,000 个第三方 Nagios 插件,由数百名 Nagios 社区成员开发。

自定义插件- 您还可以编写自己的自定义插件。编写自定义插件必须遵循某些准则。

编写自定义 Nagios 插件的指南

在 Nagios 中编写自定义插件时,您需要遵循以下指南 -

  • 插件应提供“-V”命令行选项(验证配置更改)
  • 只打印一行文本
  • 仅打印诊断信息和部分帮助消息
  • 网络插件使用DEFAULT_SOCKET_TIMEOUT来超时
  • “-v”或“--verbose“与详细级别相关
  • “-t”或“--timeout”(插件超时);
  • “-w”或“--warning”(警告阈值);
  • “-c”或“--ritic”(临界阈值);
  • “-H”或“--hostname”(要检查的主机名)

多个 Nagios 插件同时运行并执行检查,为了让所有插件都能顺利运行,Nagios 插件遵循一个状态代码。下表列出了退出代码状态及其描述 -

退出代码 地位 描述
0 好的 工作正常
1 警告 工作正常,但需要注意
2 批判的 无法正常工作
3 未知 当插件无法确定主机/服务的状态时

Nagios 插件使用选项进行配置。以下是 Nagios 插件接受的一些重要参数 -

先生编号 选项和说明
1

-h,--帮助

这提供了帮助

2

-V,--版本

这会打印插件的确切版本

3

-v, --详细

这使得插件可以提供有关其正在执行的操作的更详细信息

4

-t, --超时

这提供了超时(以秒为单位);在此时间之后,插件将报告 CRITICAL 状态

5

-w, --警告

这为警告状态提供了特定于插件的限制

6

-c,--关键

这提供了针对 CRITICAL 状态的特定于插件的限制

7

-H, --主机名

这提供了要与之通信的主机名、IP 地址或 Unix 套接字

8

-4, --使用-ipv4

这使您可以使用 IPv4 进行网络连接

9

-6, --使用-ipv6

这使您可以使用 IPv6 进行网络连接

10

-p,--端口

这用于连接到 TCP 或 UDP 端口

11

-s, -- 发送

这提供了将发送到服务器的字符串

12

-e,--期望

这提供了应该从服务器发回的字符串

13

-q,--退出

这提供了发送到服务器以关闭连接的字符串

Nagios 插件包有很多检查可供主机和服务监控基础设施。让我们尝试使用 Nagios 插件来执行一些检查。

SMTP 是一种用于发送电子邮件的协议。Nagios 标准插件具有用于执行 SMTP 检查的命令。SMTP 的命令定义 -

define command {
   command_name check_smtp
   command_line $USER2$/check_smtp -H $HOSTADDRESS$
}

让我们使用Nagios插件来监控MySQL。Nagios 提供了 2 个插件来监控 MySQL。第一个插件检查 mysql 连接是否正常,第二个插件用于计算运行 SQL 查询所需的时间。

两者的命令定义如下 -

define command {
   command_name check_mysql
   command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -S –w 10 –c 30
}

define command {
   command_name check_mysql_query
   command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}

- 这两个命令中都需要用户名、密码和数据库名称作为参数。

Nagios 提供插件来检查所有分区上安装的磁盘空间。命令定义如下

define command {
   command_name check_partition
   command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}

大多数检查可以通过标准 Nagios 插件完成。但有些应用程序需要特殊检查来监视它们,在这种情况下,您可以使用第 3 方 Nagios 插件,它将对应用程序提供更复杂的检查。当您使用 Nagios Exchange 的第三方插件或从其他网站下载插件时,了解安全和许可问题非常重要。