如何使用 Nagios 插件
主页 / 知识库 / 如何使用 Nagios 插件

如何使用 Nagios 插件进行监控?

Q: 我可以使用 Nagios 插件进行监控吗?

A: 是的,您可以,它只需要一次性设置。

目录

1.1. 基于Cygwin
       1.2. 适用于 Linux 的 Windows 子系统
       1.3. 运行 SSH 服务的类 Unix 主机
2.监控设置细节
       2.1. 脚本或程序
       2.2. SSH 脚本或程序
3.升级插件
4. 提示和技巧

1. 可能的场景

一般来说,Nagios 插件是任何符合 Nagios 插件指南(输出结构和退出代码)的可执行程序或脚本。 由于没有适用于 Windows 的本机 Nagios 插件,因此可以使用多种方案,具体取决于监控环境。

Nagios 插件是一些最常用的协议和技术的紧凑和多功能检查单元; 如果内置 IPHost 监视器类型不能满足您的需求,您可以考虑先使用插件,而不是编写自定义脚本。

在几种可能的情况中,使用最适合您的一种。 请注意,如果您使用基于 Cygwin 的环境,您有责任正确更新插件设置和底层 Cygwin 环境。

可能的设置列表:

设置类型 监视器类型 要求 评论

基于Cygwin

脚本或程序”

任何支持 Cygwin(Vista 和更新版本)的 Windows 类型。

仅支持官方 Nagios 插件分发的子集(见下文)。

适用于 Linux 的 Windows 子系统 (WSL)

“脚本或程序”,或“SSH 脚本或程序”

兼容的 Windows 类型和版本:

  • Windows 10 从版本 1607 开始
  • Windows Server 2019

需要以下其中一项:

  • 在具有 WSL 访问权限的用户帐户下运行的 IPHost 监控服务
  • 应该在 WSL 上设置并运行 SSH 服务器
与其他场景相比最快。

基于类 Unix 主机

SSH 脚本或程序”

类 Unix 系统(物理或虚拟),支持 Nagios 插件(包括各种 Linux 发行版、MacOS、BSD 类等),运行 SSH 服务器。

根据类 Unix 主机类型,可能支持 Nagios 插件子集。

更详细的说明如下。

1.1. 基于Cygwin

Cygwin 是一个 POSIX 兼容环境,提供在 Windows 系统上移植和运行类 Unix 应用程序(包括控制台和基于 GUI 的应用程序)的能力。 设置 Cygwin 的细节不在本指南的范围之内; 如果您需要帮助,请联系我们

假设你已经安装了 Cygwin 环境,下面是编译和准备使用 Nagios 插件的简短说明:

1. 确保您已经安装了以下 Cygwin 组件(它们可能需要安装额外的包,询问时确认):

gcc-g++ gd jpeg libgd-devel libpng httpd httpd-devel make autoconf automake

2. 下载 Nagios 插件源的最新压缩包(在撰写本文时,文件名为 nagios-plugins-2.3。 0.tar.gz)。

3. 运行提升权限(“以管理员身份运行”)Cygwin 终端并键入以下命令:

mkdir -p /usr/local/src/install
cd /usr/local/src/install
tar zxf </path/to/nagios-plugins-2.3.0.tar.gz>
cd nagios-plugins-2.3.0
./configure --prefix=/opt/nagios
make -i all
make -i install

编译后的插件将被放入 Cygwin 路径 /opt/nagios/libexec(Windows 路径,在 64 位 Cygwin 的情况下,对于默认的 Cygwin 安装设置,将是“C:\Cygwin64\opt\nagios\libexec”)。

4. 将 /bin Cygwin 路径(默认 64 位 Cygwin 设置的 Windows 路径“C:\Cygwin64\bin”)添加到系统 PATH(通过“此 PC > 属性 > 高级系统设置 > 环境变量”,在“系统变量”下 ,编辑 Path 变量并添加提到的 Windows 路径)。

注意:您可能需要重新启动 IPHost 监控服务,以便它可以运行 Cygwin 编译的 Nagios 插件。

5. 以下插件可用于此场景:

check_apt check_breeze check_by_ssh check_cluster
check_disk check_disk_smb check_dns check_dummy
check_file_age check_flexlm check_http check_ifoperstatus
check_ifstatus check_ircd check_ldap check_load
check_log check_mailq check_mrtg check_mrtgtraf
check_nt check_ntp check_ntp_peer check_ntp_time
check_nwstat check_oracle check_overcr check_ping
check_real check_rpc check_sensors check_smtp
check_ssh check_swap check_tcp check_time
check_ups check_users check_wave

注意:有几个插件在 Cygwin 环境下是没用的,例如 check_apt(因为 Windows 不使用 APT 包管理器); check_smb(它需要 smbclient,它不适用于标准存储库中的 Cygwin)。

注意:确保在具有真实主目录的 Windows 帐户下运行 check_by_ssh 和 check_ssh 插件(因为需要 .ssh 配置目录)。 这不包括默认的 SYSTEM 帐户。

1.2. 适用于 Linux 的 Windows 子系统

适用于 Linux 的 Windows 子系统 (WSL) 是运行 Linux 本机应用程序的兼容层。 如果您有兼容的操作系统,请安装 WSL。 您可以使用任何受支持的 Linux 发行版。 在下面的说明中,我们假设您已经安装了 Ubuntu。 如果选择了其他发行版,请使用适当的 Nagios 插件安装说明。

安装 WSL 并创建 Linux 用户后(为了举例,我们假设用户名为“monitor”),启动 Bash 窗口并运行以下命令:

sudo apt-get update -y
sudo apt-get install nagios-plugins -y

在我们的示例中,插件二进制文件将放入 /usr/lib/nagios/plugins 中,并且可以使用以下插件:

check_apt check_breeze check_by_ssh check_clamd
check_cluster check_dbi check_dhcp check_dig
check_disk check_disk_smb check_dns check_dummy
check_file_age check_flexlm check_fping check_ftp
check_game check_host check_hpjd check_http
check_icmp check_ide_smart check_ifoperstatus check_ifstatus
check_imap check_ircd check_jabber check_ldap
check_ldaps check_load check_log check_mailq
check_mrtg check_mrtgtraf check_mysql check_mysql_query
check_nagios check_nntp check_nntps check_nt
check_ntp check_ntp_peer check_ntp_time check_nwstat
check_oracle check_overcr check_pgsql check_ping
check_pop check_procs check_real check_rpc
check_rta_multi check_sensors check_simap check_smtp
check_snmp check_spop check_ssh check_ssmtp
check_swap check_tcp check_time check_udp
check_ups check_users check_wave

重要提示:默认情况下,第三方程序无法访问 Bash 可执行文件 (C:\Windows\System32\bash.exe) 的默认位置。 将该可执行文件复制到任何用户都可以访问的任意文件夹中(在下面的示例中,“C:\Scripts”)。

注意:要通过 Bash 运行 Nagios 插件(最快的设置),您必须确保监控服务在具有 WSL 访问权限的 Windows 帐户下运行。 如果监控服务在 SYSTEM 帐户下运行(默认情况下),您将无法运行 Bash 版本。 确保相关帐户属于“管理员”组。

如果您不能或可能不能在启用了WSL的Windows管理员帐户下运行监视服务,您可以在您的WSL安装中运行SSH服务器(通过运行适当的计划任务确保它在启动时启动),或者使用外部启用了SSH的类unix系统(参见下面)。

1.3. 运行 SSH 服务的类 Unix 主机

根据操作系统类型和版本,可以使用不同的命令来安装 Nagios 插件。 请参阅操作系统指南; 如果是 Ubuntu,请参阅上述 1.2 部分中的命令。

2.监控设置细节

下面提供了运行 Nagios 插件监视器的一般说明。 具体说明请参考 Nagios 插件手册页。

2.1. 脚本或程序

典型的“脚本或程序”监视器定义如下所示

以下是特定于场景的设置。

基于Cygwin 监视器将具有以下定义(如果您遵循上述设置步骤):
路径:C:\Cygwin64\bin\bash.exe
参数:-c "/opt/nagios/libexec/plugin_name 插件特定参数"
基于WSL (Bash) 监视器将具有以下定义:
路径:C:\Scripts\bash.exe
参数:-c "/usr/lib/nagios/plugins/plugin 插件特定参数"

2.2. SSH 脚本或程序

典型的“SSH 脚本或程序”监视器定义如下所示

3.升级插件

随着 Nagios 插件的更新(您可能希望创建一个监视器来检查它),可能需要升级本地安装的插件。

如果是 Cygwin 驱动的插件,只需下载新的插件 tarball 并重复安装步骤。 如果您使用基于 Cygwin 的 Nagios 插件,请在运行“make -i install”命令之前停止监控服务。

对于基于 WSL 的 Nagios 插件,同样重复安装它们的步骤。

如果您正在运行安装在远程主机上的 Nagios 插件,请查阅相应的操作系统手册以升级/重新安装插件可执行文件。

4. 提示和技巧

1. Nagios 插件有自己的方法来控制切换到 Warning 或 Down 状态。 在大多数情况下,这是通过使用以下参数完成的:

-w timevalue

设置时间间隔(以秒为单位;可以是小数,例如 0.05 表示 50 毫秒),之后监视器应切换到警告状态

-c timevalue

设置时间间隔(以秒为单位;可以是小数,例如 1.25 表示一又四分之一秒),之后监视器应切换到 Down(严重,在 Nagios 术语中)状态

2.我们建议先在命令行运行Nagios插件; 它将显示他们的输出并允许更好地理解可能出错的地方。

使用“-v”命令行参数提供详细的插件输出。

京公网安备 11010802041237号    |    备案号:京ICP备09015132号-1011