Q: 我可以使用 Nagios 插件进行监控吗?
A: 是的,您可以,它只需要一次性设置。
目录
1.1. 基于Cygwin
1.2. 适用于 Linux 的 Windows 子系统
1.3. 运行 SSH 服务的类 Unix 主机
2.监控设置细节
2.1. 脚本或程序
2.2. SSH 脚本或程序
3.升级插件
4. 提示和技巧
一般来说,Nagios 插件是任何符合 Nagios 插件指南(输出结构和退出代码)的可执行程序或脚本。 由于没有适用于 Windows 的本机 Nagios 插件,因此可以使用多种方案,具体取决于监控环境。
Nagios 插件是一些最常用的协议和技术的紧凑和多功能检查单元; 如果内置 IPHost 监视器类型不能满足您的需求,您可以考虑先使用插件,而不是编写自定义脚本。
在几种可能的情况中,使用最适合您的一种。 请注意,如果您使用基于 Cygwin 的环境,您有责任正确更新插件设置和底层 Cygwin 环境。
可能的设置列表:
设置类型 | 监视器类型 | 要求 | 评论 |
---|---|---|---|
基于Cygwin |
“脚本或程序” |
任何支持 Cygwin(Vista 和更新版本)的 Windows 类型。 |
仅支持官方 Nagios 插件分发的子集(见下文)。 |
适用于 Linux 的 Windows 子系统 (WSL) |
“脚本或程序”,或“SSH 脚本或程序” |
兼容的 Windows 类型和版本:
需要以下其中一项:
|
与其他场景相比最快。 |
基于类 Unix 主机 |
“SSH 脚本或程序” |
类 Unix 系统(物理或虚拟),支持 Nagios 插件(包括各种 Linux 发行版、MacOS、BSD 类等),运行 SSH 服务器。 |
根据类 Unix 主机类型,可能支持 Nagios 插件子集。 |
更详细的说明如下。
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 终端并键入以下命令:
编译后的插件将被放入 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 帐户。
适用于 Linux 的 Windows 子系统 (WSL) 是运行 Linux 本机应用程序的兼容层。 如果您有兼容的操作系统,请安装 WSL。 您可以使用任何受支持的 Linux 发行版。 在下面的说明中,我们假设您已经安装了 Ubuntu。 如果选择了其他发行版,请使用适当的 Nagios 插件安装说明。
安装 WSL 并创建 Linux 用户后(为了举例,我们假设用户名为“monitor”),启动 Bash 窗口并运行以下命令:
在我们的示例中,插件二进制文件将放入 /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系统(参见下面)。
根据操作系统类型和版本,可以使用不同的命令来安装 Nagios 插件。 请参阅操作系统指南; 如果是 Ubuntu,请参阅上述 1.2 部分中的命令。
下面提供了运行 Nagios 插件监视器的一般说明。 具体说明请参考 Nagios 插件手册页。
典型的“脚本或程序”监视器定义如下所示
以下是特定于场景的设置。
基于Cygwin 监视器将具有以下定义(如果您遵循上述设置步骤):
路径:C:\Cygwin64\bin\bash.exe
参数:-c "/opt/nagios/libexec/plugin_name 插件特定参数"
基于WSL (Bash) 监视器将具有以下定义:
路径:C:\Scripts\bash.exe
参数:-c "/usr/lib/nagios/plugins/plugin 插件特定参数"
典型的“SSH 脚本或程序”监视器定义如下所示
随着 Nagios 插件的更新(您可能希望创建一个监视器来检查它),可能需要升级本地安装的插件。
如果是 Cygwin 驱动的插件,只需下载新的插件 tarball 并重复安装步骤。 如果您使用基于 Cygwin 的 Nagios 插件,请在运行“make -i install”命令之前停止监控服务。
对于基于 WSL 的 Nagios 插件,同样重复安装它们的步骤。
如果您正在运行安装在远程主机上的 Nagios 插件,请查阅相应的操作系统手册以升级/重新安装插件可执行文件。
1. Nagios 插件有自己的方法来控制切换到 Warning 或 Down 状态。 在大多数情况下,这是通过使用以下参数完成的:
-w timevalue
设置时间间隔(以秒为单位;可以是小数,例如 0.05 表示 50 毫秒),之后监视器应切换到警告状态
-c timevalue
设置时间间隔(以秒为单位;可以是小数,例如 1.25 表示一又四分之一秒),之后监视器应切换到 Down(严重,在 Nagios 术语中)状态
2.我们建议先在命令行运行Nagios插件; 它将显示他们的输出并允许更好地理解可能出错的地方。
使用“-v”命令行参数提供详细的插件输出。