Nagios – 快速指南
Nagios – 快速指南
Nagios – 概述
DevOps 生命周期是几个阶段的连续循环,持续监控是这个循环的最后一个阶段。持续监控是此生命周期中的阶段之一。在本章中,让我们详细了解什么是持续监控以及 Nagios 如何帮助实现此目的。
什么是持续监控
在生产服务器上完成部署后,将开始持续监控。从那时起,这个阶段负责监控发生的一切。这个阶段对企业生产力非常重要。
使用连续监控有几个好处 –
- 它检测所有服务器和网络问题。
- 它找到了失败的根本原因。
- 它有助于降低维护成本。
- 它有助于解决性能问题。
- 它有助于在过时之前更新基础设施。
- 它可以在检测到问题时自动修复问题。
- 它确保服务器、服务、应用程序和网络始终正常运行。
- 它每秒监控完整的基础设施。
什么是 Nagios
Nagios 是一个开源的持续监控工具,用于监控网络、应用程序和服务器。它可以发现并修复在基础设施中检测到的问题,并在问题影响最终用户之前阻止未来的问题。它提供了您的 IT 基础架构及其性能的完整状态。
为什么选择 Nagios
Nagios 提供以下功能,使其可供大量用户社区使用 –
- 可以监控SQL Server、Oracle、Mysql、Postgres等数据库服务器
- 它提供应用程序级别的信息(Apache、Postfix、LDAP、Citrix 等)。
- 提供积极的发展。
- 拥有庞大的活跃社区的优秀支持。
- Nagios 可以在任何操作系统上运行。
- 它可以 ping 以查看主机是否可达。
Nagios 的好处
Nagios 为用户提供以下好处 –
- 它有助于摆脱定期测试。
- 当腕带仍处于“间歇”阶段时,它会检测到瞬间故障。
- 它在不牺牲性能的情况下降低了维护成本。
- 它为控制和故障的管理提供及时的通知。
Nagios – 架构
本章详细介绍了 Nagios 架构。
Nagios 架构
关于 Nagios 架构,以下几点值得注意 –
-
Nagios 具有服务器代理架构。
-
Nagios 服务器安装在主机上,插件安装在要监控的远程主机/服务器上。
-
Nagios 通过进程调度程序发送信号以在本地/远程主机/服务器上运行插件。
-
插件收集数据(CPU 使用率、内存使用率等)并将其发送回调度程序。
-
然后进程计划将通知发送给管理员并更新 Nagios GUI。
下图详细显示了 Nagios 服务器代理架构 –
Nagios – 产品
Nagios 包含以下详细讨论的各种产品 –
纳吉奥斯十一世
它提供对完整 IT 基础设施组件(如应用程序、服务、网络、操作系统等)的监控。它提供您的基础设施和业务流程的完整视图。GUI 可轻松定制,提供使用的灵活性。该工具的标准版售价 1995 美元,企业版售价 3495 美元。
Nagios 核心
它是监控 IT 基础设施的核心。Nagios XI 产品也从根本上基于 Nagios 核心。每当基础架构出现任何故障问题时,它都会向管理员发送警报/通知,管理员可以快速采取措施解决问题。这个工具是完全免费的。
Nagios 日志服务器
它使日志数据的搜索变得非常简单和容易。它通过高可用性设置将所有日志数据保存在一个位置。如果在日志数据中发现任何问题,它可以轻松发送警报。它可以扩展到 1000 台服务器,为您的日志分析平台提供更多的功能、速度、存储和可靠性。此工具的价格取决于实例数量 – 1 个实例 3995 美元、2 个实例 4995 美元、3 个实例 5995 美元、4 个实例 6995 美元、10 个实例 14995 美元。
Nagios 融合
该产品提供完整监控系统的集中视图。使用 Nagios Fusion,您可以为不同的地理位置扫描设置单独的监控服务器。它可以轻松地与 Nagios XI 和 Nagios 核心集成,以提供基础架构的完整可见性。该工具售价 2495 美元。
Nagios 网络分析器
它向管理员提供网络基础设施的完整信息以及网络上的潜在威胁,以便管理员可以快速采取行动。它在深入的网络分析后共享有关网络的非常详细的数据。该工具售价 1995 美元。
Nagios – 安装
本章将详细讨论在 Ubuntu 上设置 Nagios 的步骤。
在你安装 Nagios 之前,你的 Ubuntu 系统上需要有一些包,比如 Apache、PHP、构建包等。因此,让我们先安装它们。
步骤 1 – 运行以下命令来安装预先需要的软件包 –
sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd libgd-dev sendmail unzip
第 2 步– 接下来,为 Nagios 创建用户和组,并将它们添加到 Apache www-data 用户。
sudo useradd nagios sudo groupadd nagcmd sudo usermod -a -G nagcmd nagios sudo usermod -a -G nagios,nagcmd www-data
第 3 步– 下载最新的 Nagios 软件包。
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios- 4.4.3.tar.gz
步骤 4 – 提取 tarball 文件。
tar -xzf nagios-4.4.3.tar.gz cd nagios-4.4.3/
步骤 5 – 运行以下命令从源代码编译 Nagios。
./configure --with-nagios-group=nagios --with-command-group=nagcmd
步骤 6 – 运行以下命令来构建 Nagios 文件。
make all
步骤 7 – 运行下面显示的命令来安装所有 Nagios 文件。
sudo make install
步骤 8 – 运行以下命令来安装 init 和外部命令配置文件。
sudo make install-commandmode sudo make install-init sudo make install-config sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesavailable/ nagios.conf
步骤 9 – 现在将事件处理程序目录复制到 Nagios 目录。
sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/ sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
步骤 10 – 下载并提取 Nagios 插件。
cd wget https://nagios-plugins.org/download/nagiosplugins- 2.2.1.tar.gz tar -xzf nagios-plugins*.tar.gz cd nagios-plugins-2.2.1/
步骤 11 – 使用以下命令安装 Nagios 插件。
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl make sudo make install
步骤 12 – 现在编辑 Nagios 配置文件并取消注释行号 51 → cfg_dir=/usr/local/nagios/etc/servers
sudo gedit /usr/local/nagios/etc/nagios.cfg
步骤 13 – 现在,创建一个服务器目录。
sudo mkdir -p /usr/local/nagios/etc/servers
步骤 14 – 编辑联系人配置文件。
sudo gedit /usr/local/nagios/etc/objects/contacts.cfg
步骤 15 – 现在启用 Apache 模块并配置用户 nagiosadmin。
sudo a2enmod rewrite sudo a2enmod cgi sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/
步骤 16 – 现在,重新启动 Apache 和 Nagios。
service apache2 restart service nagios start cd /etc/init.d/ sudo cp /etc/init.d/skeleton /etc/init.d/Nagios
步骤 17 – 编辑 Nagios 文件。
sudo gedit /etc/init.d/Nagios DESC = "Nagios" NAME = nagios DAEMON = /usr/local/nagios/bin/$NAME DAEMON_ARGS = "-d /usr/local/nagios/etc/nagios.cfg" PIDFILE = /usr/local/nagios/var/$NAME.lock
步骤 18 – 使 Nagios 文件可执行并启动 Nagios。
sudo chmod +x /etc/init.d/nagios service apache2 restart service nagios start
步骤 19 – 现在转到您的浏览器并打开 url → http://localhost/nagios。现在使用用户名 nagiosadmin 登录 Nagios,并使用您之前设置的密码。Nagios 的登录屏幕如下面的屏幕截图所示 –
如果您正确地遵循了所有步骤,您的 Nagios Web 界面将出现。您可以找到 Nagios 仪表板,如下所示 –
Nagios – 配置
在上一章中,我们已经看到了 Nagios 的安装。在本章中,让我们详细了解其配置。
Nagios 的配置文件位于 /usr/local/nagios/etc。这些文件显示在下面给出的屏幕截图中 –
现在让我们了解每个文件的重要性 –
nagios.cfg
这是 Nagios 核心的主要配置文件。该文件包含 Nagios 的日志文件位置、主机和服务状态更新间隔、锁定文件和 status.dat 文件。在此文件中定义运行实例的 Nagios 用户和组。它具有所有单个对象配置文件的路径,如命令、联系人、模板等。
配置文件
默认情况下,Nagios 的 CGI 配置文件名为 cgi.cfg。它告诉 CGI 在哪里可以找到主配置文件。CGI 将读取主配置文件和主机配置文件以获取它们可能需要的任何其他数据。它包含所有用户和组信息以及他们的权利和许可。它还包含 Nagios 的所有前端文件的路径。
资源配置文件
您可以在此文件中定义 $USERx$ 宏,这些宏又可用于主机配置文件中的命令定义。$USERx$ 宏可用于存储敏感信息,例如用户名、密码等。
它们对于指定插件和事件处理程序的路径也很方便——如果你决定将来将插件或事件处理程序移动到不同的目录,你可以只更新一两个 $USERx$ 宏,而不是修改很多命令定义。资源文件也可用于存储外部数据源(如 MySQL)的配置指令。
对象目录中的配置文件用于定义命令、联系人、主机、服务等。
命令.cfg
此配置文件为您提供了一些示例命令定义,您可以在主机、服务和联系人定义中引用这些示例。这些命令用于检查和监控主机和服务。您可以在 Linux 控制台上本地运行这些命令,您还将在其中获得所运行命令的输出。
例子
define command { command_name check_local_disk command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ } define command { command_name check_local_load command_line $USER1$/check_load -w $ARG1$ -c $ARG2$ } define command { command_name check_local_procs command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ }
联系人.cfg
该文件包含 Nagios 的联系人和组信息。默认情况下,一位联系人已经是 Nagios 管理员。
例子
define contact { contact_name nagiosadmin use generic-contact alias Nagios Admin email [email protected] } define contactgroup { contactgroup_name admins alias Nagios Administrators members nagiosadmin }
模板.cfg
此配置文件为您提供了一些示例对象定义模板,这些模板由其他配置文件中的其他主机、服务、联系人等定义引用。
时间段.cfg
此配置文件为您提供了一些示例时间段定义,您可以在主机、服务、联系人和依赖项定义中引用这些示例。
Nagios – 功能
Nagios 是具有多种功能的监控工具,如下所示 –
-
Nagios Core 是开源的,因此可以免费使用。
-
强大的监控引擎,可以扩展和管理 1000 台主机和服务器。
-
全面的 Web 仪表板提供完整网络组件和监控数据的可见性。
-
它具有多租户功能,多个用户可以访问 Nagios 仪表板。
-
它具有可扩展的架构,可以轻松地与具有多个 API 的第三方应用程序集成。
-
Nagios 拥有一个非常活跃和庞大的社区,在全球拥有超过 100 万以上的用户。
-
快速警报系统,在发现任何问题后立即向管理员发送警报。
-
多个插件可用于支持 Nagios,自定义编码插件也可以与 Nagios 一起使用。
-
它具有良好的日志和数据库系统,可以轻松存储网络上发生的一切。
-
主动规划功能有助于了解何时需要升级基础架构。
Nagios – 应用程序
Nagios 可以适用于广泛的应用程序。他们在这里给出 –
-
监控主机资源,如磁盘空间、系统日志等。
-
监控网络资源——http、ftp、smtp、ssh 等。
-
持续监控日志文件以识别基础设施问题。
-
监控 windows/linux/unix/web 应用程序及其状态。
-
Nagios Remote Plugin Executer (NRPE) 可以远程监控服务。
-
并行运行服务检查。
-
SSH 或 SSL 隧道也可用于远程监控。
-
发送警报/通知
-
通过电子邮件、短信、关于基础设施任何问题的寻呼机
-
建议何时升级 IT 基础架构。
Nagios – 主机和服务
Nagios 是最流行的工具,用于监控 IT 基础架构中运行的主机和服务。主机和服务配置是 Nagios Core 的构建块。
-
主机就像一台电脑;它可以是物理设备或虚拟设备。
-
服务是 Nagios 用来检查主机信息的服务。
您可以在 Nagios 的服务器目录中创建一个主机文件,并提及主机和服务定义。例如 –
sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu 主机配置文件
define host { use linux-server host_name ubuntu_host alias Ubuntu Host address 192.168.1.10 register 1 } define service { host_name ubuntu_host service_description PING check_command check_ping!100.0,20%!500.0,60% max_check_attempts 2 check_interval 2 retry_interval 2 check_period 24x7 check_freshness 1 contact_groups admins notification_interval 2 notification_period 24x7 notifications_enabled 1 register 1 }
上述定义添加了一个名为 ubuntu_host 的主机,并定义了将在该主机上运行的服务。当您重新启动 Nagios 时,该主机将开始受到 Nagios 的监控并且指定的服务将运行。
Nagios 中还有更多服务,可用于监控运行主机上的几乎所有内容。
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 带有 1 个参数:’$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 守护程序定期处理的命令文件中来在 Nagios 中运行外部命令。
使用外部命令,您可以在 Nagios 运行时进行许多检查。您可以暂时禁用一些检查,或强制立即运行某些检查,暂时禁用通知等。以下是 Nagios 中必须写入命令文件的外部命令的语法 –
[time] command_id;command_arguments
您还可以在此处查看可在 Nagios 中使用的所有外部命令的列表 –
https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/
Nagios – 检查和状态
在 Nagios 上配置主机和服务后,将使用检查来查看主机和服务是否按预期工作。让我们看一个对主机执行检查的示例 –
考虑到您已将主机定义放在 /usr/local/nagios/etc/objects 目录中的 host1.cfg 文件中。
cd /usr/local/nagios/etc/objects gedit host1.cfg
这是您的主机定义目前的样子 –
define host { host_name host1 address 10.0.0.1 }
现在让我们添加 check_interval 指令。该指令用于为您设置的数量执行主机的预定检查;默认以分钟为单位。使用下面的定义,将在每 3 分钟后对主机执行一次检查。
define host { host_name host1 address 10.0.0.1 check_interval 3 }
在 Nagios 中,对主机和服务执行两种类型的检查 –
- 主动检查
- 被动检查
主动检查
主动检查由 Nagios 进程启动,然后定期运行。Nagios 进程内部的检查逻辑启动 Active 检查。为了监控远程机器上运行的主机和服务,Nagios 执行插件并告知要收集哪些信息。然后插件在远程机器上执行,在那里收集所需的信息,然后发送回 Nagios 守护程序。根据在主机和服务上收到的状态,采取适当的行动。
下图显示了一个主动检查 –
这些是定期执行的,由 check_interval 和 retry_interval 定义。
被动检查由外部进程执行,结果返回给 Nagios 进行处理。
被动检查的工作原理如下 –
外部应用程序检查主机/服务的状态并将结果写入外部命令文件。当 Nagios 守护进程读取外部命令文件时,它会读取并发送队列中的所有被动检查以供稍后处理。在处理这些检查时,会根据检查结果中的信息定期发送通知或警报。
下图显示了被动检查 –
因此,主动检查和被动检查之间的区别在于主动检查由 Nagios 运行,而被动检查由外部应用程序运行。
当您无法定期监控主机/服务时,这些检查很有用。
Nagios 存储它正在监视的主机和服务的状态,以确定它们是否正常工作。很多情况下,故障是随机发生的,是暂时的;因此 Nagios 使用状态来检查主机或服务的当前状态。
有两种类型的状态 –
- 软状态
- 硬状态
软状态
当主机或服务在很短的时间内关闭并且其状态未知或与之前的状态不同时,则使用软状态。主机或服务将被反复测试,直到状态为永久。
硬状态
当执行 max_check_attempts 并且主机或服务的状态仍然不正常时,则使用硬状态。Nagios 执行事件处理程序来处理硬状态。
下图显示了软状态和硬状态。
Nagios – 端口和协议
本章介绍了 Nagios 包含的端口和协议。
协议
Nagios 使用的默认协议如下 –
-
http(s)、端口 80 和 443 – Nagios 中的产品界面基于 Web。Nagios 代理可以使用 http 来移动数据。
-
snmp,端口 161 和 162 – snmp 是网络监控的重要组成部分。端口 161 用于向节点发送请求,而 post 162 用于接收结果。
-
ssh,端口 22 – Nagios 构建为在 CentOS 或 RHEL Linux 上本地运行。管理员可以随时通过 SSH 登录 Nagios 并执行检查。
端口
常见 Nagios 插件使用的默认端口如下 –
- Butcheck_nt (nsclient++) 12489
- NRPE 5666
- NSCA 5667
- 国家大剧院 5693
- 第 1433 章
- MySQL 3306
- PostgreSQL 5432
- MongoDB 27017、27018
- 甲骨文数据库 1521
- 电子邮件 (SMTP) 25、465、587
- WMI 135、445 / 1024-1034 范围内的其他动态分配端口
Nagios – 附加组件/插件
插件有助于使用 Nagios 监控数据库、操作系统、应用程序、网络设备、协议。插件是已编译的可执行文件或脚本(Perl 或非 Perl),可扩展 Nagios 功能以监控服务器和主机。Nagios 将执行一个插件来检查服务或主机的状态。Nagios 可以在支持嵌入式 Perl 解释器的情况下进行编译,以执行 Perl 插件。没有它,Nagios 通过派生和执行插件作为外部命令来执行 Perl 和非 Perl 插件。
Nagios 插件的类型
Nagios 有以下插件可用 –
官方 Nagios 插件– 有 50 个官方 Nagios 插件。官方 Nagios 插件由官方 Nagios 插件团队开发和维护。
社区插件– 数百名 Nagios 社区成员开发了 3,000 多个第三方 Nagios 插件。
自定义插件– 您还可以编写自己的自定义插件。编写自定义插件必须遵循某些准则。
编写自定义 Nagios 插件的指南
在 Nagios 中编写自定义插件时,您需要遵循以下指南 –
- 插件应提供“-V”命令行选项(验证配置更改)
- 只打印一行文本
- 打印诊断信息和仅部分帮助消息
- 网络插件使用 DEFAULT_SOCKET_TIMEOUT 超时
- “-v”或“–verbose”与详细级别有关
- “-t”或“–timeout”(插件超时);
- “-w”或“–warning”(警告阈值);
- “-c”或“–critical”(临界阈值);
- “-H”或“–hostname”(要检查的主机名)
多个 Nagios 插件同时运行并执行检查,为了所有它们一起顺利运行,Nagios 插件遵循一个状态代码。下面给出的表格告诉退出代码状态及其描述 –
Exit Code | 地位 | 描述 |
---|---|---|
0 | 行 | 工作正常 |
1 | 警告 | 工作正常,但需要注意 |
2 | 危急 | 工作不正常 |
3 | 未知 | 当插件无法确定主机/服务的状态时 |
Nagios 插件使用选项进行配置。以下是 Nagios 插件接受的几个重要参数 –
Sr.No | 选项和说明 |
---|---|
1 |
-h, –help 这提供了帮助 |
2 |
-V, –version 这将打印插件的确切版本 |
3 |
-v, –verbose 这使得插件提供了关于它正在做什么的更详细的信息 |
4 |
-t, –timeout 这提供了超时(以秒为单位);在此之后,插件将报告 CRITICAL 状态 |
5 |
-w, –warning 这为 WARNING 状态提供了插件特定的限制 |
6 |
-c, –critical 这为 CRITICAL 状态提供了插件特定的限制 |
7 |
-H, –hostname 这提供了要与之通信的主机名、IP 地址或 Unix 套接字 |
8 |
-4, –use-ipv4 这使您可以使用 IPv4 进行网络连接 |
9 |
-6, –use-ipv6 这使您可以使用 IPv6 进行网络连接 |
10 |
-p, –port 这用于连接到 TCP 或 UDP 端口 |
11 |
-s, — send 这提供了将发送到服务器的字符串 |
12 |
-e, –expect 这提供了应该从服务器发回的字符串 |
13 |
-q, –quit 这提供了要发送到服务器以关闭连接的字符串 |
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 交易所的 3rd 方插件或从其他网站下载插件时,了解安全和许可问题很重要。
Nagios – NRPE
Nagios 守护进程在 NRPE(Nagios Remote Plugin Executor)中对远程机器运行检查。它允许您在其他机器上远程运行 Nagios 插件。您可以监控远程机器指标,例如磁盘使用情况、CPU 负载等。它还可以通过一些 Windows 代理插件检查远程 Windows 机器的指标。
让我们看看如何在需要监控的客户端机器上逐步安装和配置 NRPE。
步骤 1 – 运行以下命令在要监控的远程 linux 机器上安装 NRPE。
sudo apt-get install nagios-nrpe-server nagios-plugins
第 2 步– 现在,在服务器目录中创建一个主机文件,并为主机放置所有必要的定义。
sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file define host { use linux-server host_name ubuntu_host alias Ubuntu Host address 192.168.1.10 register 1 } define service { host_name ubuntu_host service_description PING check_command check_ping!100.0,20%!500.0,60% max_check_attempts 2 check_interval 2 retry_interval 2 check_period 24x7 check_freshness 1 contact_groups admins notification_interval 2 notification_period 24x7 notifications_enabled 1 register 1 } define service { host_name ubuntu_host service_description Check Users check_command check_local_users!20!50 max_check_attempts 2 check_interval 2 retry_interval 2 check_period 24x7 check_freshness 1 contact_groups admins notification_interval 2 notification_period 24x7 notifications_enabled 1 register 1 } define service { host_name ubuntu_host service_description Local Disk check_command check_local_disk!20%!10%!/ max_check_attempts 2 check_interval 2 retry_interval 2 check_period 24x7 check_freshness 1 groups admins notification_interval 2 notification_period 24x7 notifications_enabled 1 register 1 } define service { host_name ubuntu_host service_description Check SSH check_command check_ssh max_check_attempts 2 check_interval 2 retry_interval 2 check_period 24x7 check_freshness 1 contact_groups admins notification_interval 2 notification_period 24x7 notifications_enabled 1 register 1 } define service { host_name ubuntu_host service_description Total Process check_command check_local_procs!250!400!RSZDT max_check_attempts 2 check_interval 2 retry_interval 2 check_period 24x7 check_freshness 1 contact_groups admins notification_interval 2 notification_period 24x7 notifications_enabled 1 register 1 }
步骤 3 – 运行如下所示的命令以验证配置文件。
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
第 4 步– 如果没有错误,重新启动 NRPE、Apache 和 Nagios。
service nagios-nrpe-server restart service apache2 restart service nagios restart
第 5 步– 打开浏览器并转到 Nagios Web 界面。可以看到需要监控的主机已经添加到 Nagios 核心服务中。同样,您可以添加更多要由 Nagios 监控的主机。
Nagios – V 壳
V-Shell 是用 PHP 编写的 Nagios Core 的轻量级 Web 界面。它易于安装和使用,是 Nagios 输出的替代品。VShell 的前端基于 AngularJs,因此设计具有响应性和现代感。它提供了由 CodeIgniter 提供支持的 Quicksearch 功能和 RESTful API。
Nagios VShell 与 Nagios XI 和 Nagios Core 3.x 兼容。需要php 5.3或更高版本,系统中安装php-cli和apache。让我们看看如何安装 Nagios VShell。
步骤 1 – 转到 tmp 目录并下载 vshell tar 文件。
cd /tmp wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz
步骤 2 – 提取 tar 文件。
tar zxf vshell.tar.gz
第 3 步– 转到 vshell 目录并授予 install.php 文件的可执行权限。最后,运行安装脚本。
cd vshell chmod +x install.php ./install.php
第 4 步– 现在在浏览器中访问https://192.168.56.101/vshell,使用 nagiosadmin 登录,您的 Vshell 将出现。
Nagios – 案例研究
在本章中,让我们看看成功实施 Nagios 的两个组织的案例研究。
使用 Nagios 的 Bitnetix
Bitnetix 在 IT 咨询组织中工作,该组织涉及网络、数据中心、监控和 IP 语音。通过他们的产品,他们使小企业看起来很大。他们的解决方案通过增加更多参与度和提高客户满意度来帮助您以更好的方式管理客户关系。他们说他们从事沟通业务,因此在正确的时间向客户传达正确的信息对他们来说非常重要。
Bitnetix 正在与一位从事电子邮件营销的客户合作。他们曾经监控动态分配的 AWS 服务器,并负责向客户发送数千封电子邮件。他们之前在使用 Nagios 核心,但希望迁移到新的 Nagios XI 并在零停机时间的情况下与 Chef 集成。将 Nagios 核心上的实时状态配置移动到 Nagios XI 中的适当检查中存在挑战。但是使用 Nagios,他们能够设置集成了 Chef 的 Nagios XI 配置文件。他们能够以零停机时间将所有客户从 Nagios 核心转移到 Nagios XI。Nagios XI 还能够与 PagerDuty 集成以发送即时通知。
使用 Nagios 的 EverWatch.gobal
EverWatch.global 是一家帮助非营利组织和中小型组织的 IT 管理和咨询组织。其总部设在纽约罗彻斯特。他们与 Nagios 的合作赢得了无数奖项。
EverWatch.global 正在与一家年收入达 10 亿美元的电子商务零售客户合作。他们负责让网站始终保持正常运行,监控购物车和结账功能,在诽谤的情况下向必要的员工发送通知。挑战在于他们客户的服务器距离其纽约总部 500 英里。为了在同一平台上监控生产、分期、质量保证和开发,这两个领域的配置应该是独特的和相似的。
在 Nagios 的帮助下,他们能够为设备和网络运营中心创建 ssh 防火墙规则。他们还能够检查诽谤事件并减少误报。通过在 Nagios 中配置事件处理程序,通知数量急剧减少。Nagios 帮助他们将客户网站的正常运行时间从每年 85% 保持到每年 98%,这是一个巨大的成功。
“以实际美元计算,该公司因此能够实现近 1.25 亿美元的额外销售额。” EverWatch Global 首席执行官埃里克·洛伊德 (Eric Loyd)。