📜  Nagios-附加组件/插件

📅  最后修改于: 2020-10-31 13:46:38             🧑  作者: Mango


插件有助于使用Nagios监视数据库,操作系统,应用程序,网络设备,协议。插件是编译后的可执行文件或脚本(Perl或非Perl),可扩展Nagios功能以监视服务器和主机。 Nagios将执行一个插件来检查服务或主机的状态。 Nagios可以在支持嵌入式Perl解释器的情况下进行编译以执行Perl插件。如果没有它,Nagios会将Fork插件和非Perl插件作为外部命令执行并执行,从而执行它们。

Nagios插件的类型

Nagios具有以下可用插件:

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

社区插件-数百名Nagios社区成员开发了3000多个第三方Nagios插件。

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

编写自定义Nagios插件的准则

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

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

多个Nagios插件可同时运行并执行检查,为了使所有Nagios插件一起顺利运行,Nagios插件遵循状态代码。下表给出了退出代码的状态及其说明-

Exit Code Status Description
0 OK Working fine
1 WARNING Working fine, but needs attention
2 CRITICAL Not working Correctly
3 UNKNOWN When the plugin is unable to determine
the status of the host/service

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

Sr.No Option & Description
1

-h, –help

This provides help

2

-V, –version

This prints the exact version of the plugin

3

-v, –verbose

This makes the plugin give a more detailed information on what it is doing

4

-t, –timeout

This provides the timeout (in seconds); after this time, the plugin will report CRITICAL status

5

-w, –warning

This provides the plugin-specific limits for the WARNING status

6

-c, –critical

This provides the plugin-specific limits for the CRITICAL status

7

-H, –hostname

This provides the hostname, IP address, or Unix socket to communicate with

8

-4, –use-ipv4

This lets you use IPv4 for network connectivity

9

-6, –use-ipv6

This lets you use IPv6 for network connectivity

10

-p, –port

This is used to connect to the TCP or UDP port

11

-s, — send

This provides the string that will be sent to the server

12

-e, –expect

This provides the string that should be sent back from the server

13

-q, –quit

This provides the string to send to the server to close the connection

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插件完成。但是有些应用程序需要特殊检查来监视它们,在这种情况下,您可以使用3rd Party Nagios插件,这将对应用程序提供更复杂的检查。当您通过Nagios交易所使用第三方插件或从另一个网站下载插件时,了解安全和许可问题非常重要。