Nagios 是许多DevOps团队用来确保对系统、设备、应用程序和服务进行全面有效跟踪的流行监控工具。但是,该工具确实有一个陡峭的学习曲线,因此如果没有经验或好的教程,设置和开始使用 Nagios 可能会很棘手。本文概述了 Nagios 的功能,并为该工具的新手提供了一个理想的起点。继续阅读以了解 Nagios 的基本功能、优势和架构,并了解公司如何使用该工具来确保对 IT 环境的持续监控。
什么是持续监控?
持续监控是不断检测、报告和响应 IT 系统内的风险和事件的过程。这个过程是至关重要的DevOps 安全实践,并且有多个目标:
- 提供对系统性能的实时洞察。
- 就 IT 基础架构的整体健康和安全提供反馈。
- 增强 IT 运营和DevOps 管道的可见性。
- 在问题导致停机或数据泄露之前确定事件的原因并采取缓解措施。
持续跟踪的需求来自手动监控的问题,因为传统跟踪太容易出现:
- 减慢CI/CD 管道中的部署。
- 导致生产中的性能问题。
- 冗长且具有挑战性的根本原因分析。
快速检测、报告和响应威胁的能力对于公司的整体网络安全至关重要。持续监控也是SecOps团队中的一种标准做法,因为整个环境的可靠、实时洞察力可以改进:
- 威胁情报。
- 根本原因分析。
- 事件响应。
- 事后取证。
其他流行的持续监控术语是ConMon和持续控制监控 (CCM)。
为什么 ConMon 很重要?
持续监控是现代网络安全的一个重要方面。完善的 ConMon 解决方案允许安全团队:
- 快速检测系统问题(网络错误、内存不足、端口故障、系统崩溃、服务器无法访问等)。
- 在问题影响用户或业务生产力之前解决问题。
- 识别基础架构中的安全和合规风险。
- 通过及时的警报系统和自动事件响应降低网络攻击的风险。
- 准确识别问题的根本原因。
- 保持高水平的系统正常运行时间和可用性。
- 使用精确的历史分析来规划基础设施升级。
- 跟踪应用更新后的用户体验和行为(对多个团队至关重要的能力,包括开发、质量保证和客户服务)。
什么是 Nagios?
Nagios 是一个用于监控系统、网络和 IT 基础设施的开源应用程序。该工具允许用户跟踪以下状态和性能:
- 硬件(路由器、交换机、防火墙、专用服务器、工作站、打印机等)。
- 网络。
- 应用。
- 服务。
- 业务流程。
- 操作系统(Windows、Linux、Unix 和 OSX)。
Nagios 定期检查关键阈值和指标,以监控系统更改和潜在问题。如果软件遇到问题,该工具会通知管理员,还可以运行自动脚本来控制和纠正这种情况。
您可以使用 Nagios 来监控:
- 内存和磁盘使用情况。
- CPU 负载。
- 正在运行的进程数。
- 日志文件。
- 系统可用性。
- 响应时间。
- URL 和内容监控指标。
- 服务和网络协议(SMTP、POP3、HTTP 等)。
该工具有两种主要变体:
- Nagios Core:该软件的免费版本,允许用户跟踪所有重要指标。
- Nagios XI: Core 的付费扩展版本,提供用于监控的高级组件和工具。
由于该解决方案的可扩展性、效率和灵活性,该软件是 DevOps 圈子中常用的首选工具。
为什么我们需要 Nagios?
与所有强大的 ConMon 工具一样,Nagios 无需手动监控。与识别和修复基础设施错误相比,团队可以专注于更有影响力的任务。Nagios 还对所有环境、设备和系统的监控进行标准化和集中化。
DevOps 和 SecOps 团队经常将 Nagios 视为首选持续监控工具的其他原因是:
- 甚至 Nagios 的免费版本也允许用户监控所有关键任务组件和指标。
- 该工具的高可扩展性使团队能够跟踪数千台设备和 100,000 多个节点环境。
- 该软件可以快速检测所有类型的网络/服务器问题并有效地找出根本原因。
- Nagios 擅长监控数据库服务器(SQL Server、Oracle、MySQL、Postgres等)。
Nagios 的好处
以下是使用 Nagios 进行持续监控的主要好处:
- 更好的系统可用性和性能。
- 该工具无需定期测试。
- 快速检测中断、网站篡改和劫持企图。
- 容量规划有助于规划未来的 IT 升级。
- 由于该工具是开源的,因此熟练的团队可以调整软件以适应业务需求。
- Nagios 有一个大型活跃社区的支持,该社区不断开发新的附加组件。
- Nagios 插件可免费下载和开发,提供了高度的灵活性。
- 该解决方案的警报和响应系统确保了高水平的安全性。
Nagios 功能
以下是 Nagios 监控工具的主要功能:
- 允许团队为周界和指标设置自定义阈值。如果系统超过设定的限制,Nagios 可以通过 SMS、电子邮件或语音呼叫发送警报。
- 支持基于代理和无代理的配置。Nagios Remote Plugin Executor (NRPE) 代理允许您运行远程脚本和插件。
- 具有多租户功能的高度可定制的 UI,允许您为每个用户分配自定义可见性。
- 多个 API 支持与内部和第三方应用程序的简单集成。
- 如果系统遇到严重问题,配置快照存档使您能够恢复到以前的工作设置。
- 分步监控向导可帮助您快速轻松地设置工具。
- 历史性能和容量规划有助于在关键系统过载之前预测未来使用情况并规划 IT 升级。
- 强大的日志管理系统。
- 并行处理可确保快速检测中断和硬件问题。
- 允许您跨多个位置设置对机器的监控。然后所有设备将输出发送到中央 Nagios 服务器。
- 使用拓扑来确定依赖关系。
- 允许用户使用父主机定义网络层次结构。
纳吉奥斯架构
Nagios 在主机服务器上运行(通常作为守护程序),并且该工具的操作依赖于服务器代理架构。在需要监控的网元上设置代理,代理与 Nagios 服务器通信。该工具通过代理检索指标,并根据事件和设置阈值做出决策。
Nagios 与系统通信的另一种方式是通过本机协议,例如 SNMP 或 WMI。根据设置,代理和基于协议的监控都可以是:
- 活动:服务器向交换机或服务器等元素伸出援手,并询问它们的状态。
- 被动:受监控的系统会定期或在发生事件时向服务器发送信息。
Nagios 架构具有三个主要组件:
- 插件:在 Nagios 服务器上运行并与需要监控的本地和远程主机通信的可配置插件。
- 进程调度器:调度器定期检查插件并根据结果执行操作(例如提醒员工或启动自动脚本来解决问题)。
- 图形用户界面 (GUI):这是 Nagios 系统的用户界面,用户通过该界面与工具交互并查看监控数据。
虽然您可以使用基于 Web 的 GUI 与该工具进行交互,但团队也可以在命令行界面 (CLI) 中工作。
Nagios 插件
插件是独立的附加组件和扩展,允许用户:
- 定义受监控系统的目标和参数。
- 检查主机或服务的状态。
插件要么是编译的二进制文件(用 C、C++ 等编写),要么是用户从命令行运行的可执行脚本(Shell、Perl、PHP 等)。插件在 Nagios 服务器上运行,使用户能够通过代理或本地协议监控远程和本地主机。Nagios 使用插件生成的结果来确定:
- 主机的状态。
- 如果事件需要立即发出警报或 GUI 上的简单日志。
- 是否运行自动脚本来解决问题。
Nagios 插件分为三种类型:
- 官方插件: Nagios 开发和维护了大约 50 个官方插件。
- 社区插件:社区成员开发了超过 3,000 个可用的第三方插件。
- 自定义插件:如果您的团队具备合适的技能,该工具的开源特性允许您创建自定义插件。
所有插件都遵循状态码。下表解释了默认退出代码状态及其描述:
退出代码 | 状态 | 描述 |
---|---|---|
0 | 好的 | 系统工作正常 |
1 | 警告 | 系统继续运行,但需要注意 |
2 | 危急 | 系统无法正常工作 |
3 | 未知 | 插件无法评估主机或服务的状态 |
Nagios GUI
图形用户界面 (GUI) 提供了 Nagios 中进行的所有进程的概览。Nagios XI GUI 提供最关键的监控数据的查看,并有六个子菜单:
- 快速查看:包含不同 Dashlet 的可自定义界面,用户可以根据自己的需要添加、删除和操作。快速视图是您可以找到战术概览的地方,它是您当前监控的所有主机和服务的总体摘要。
- 详细信息:此菜单显示所有主机和服务的详细摘要。详细信息选项卡显示为每个主机运行的所有统计信息、命令和服务。
- 图表:此菜单显示了每个主机的所有受监控服务的一系列可扩展性能图表。
- Maps:所有主机和父子关系的图形状态图。您可以将地图视为气球或树状图(或为其他一些地图选项安装自定义插件)。
- 事件管理:此菜单汇总了服务和主机的所有当前通知和警报。
- 监控过程:此菜单显示有关工具内部操作的数据。
在顶部菜单中,您会发现:
- 视图:快速访问每个用户独有的一组视图。对于希望在网络运营中心 (NOC) 的墙上监视器上显示数据的网络管理员很有用。
- 仪表板:可定制的仪表板,显示特定于各个 Nagios 用户的重要相关数据。
- 报告:此菜单提供了一种为主机和服务生成统计数据和图形报告的简便方法。
- 配置:配置菜单允许您在监控向导的帮助下设置新的监控进程。
- 工具:您可以使用 Web 浏览器从 Nagios 快速访问的实用程序。
- 帮助:直接访问 Nagios 支持资源和团队。
Nagios 核心安装
下面的分步指南显示了如何在 Ubuntu 20.04 上安装 Nagios Core。
第 1 步:检查系统更新
1.您应该首先在网上查看最新的可用软件包:
$ sudo apt update
2.接下来,将系统包升级到最新版本:
$ sudo apt upgrade
第 2 步:安装必备软件包
更新系统后,您需要安装运行 Core 所需的包。在命令行中输入以下代码:
$ sudo apt install wget unzip vim curl gcc openssl build-essential libgd-dev libssl-dev libapache2-mod-php php-gd php apache2
第 3 步:下载 Nagios 核心
下载 Nagios 核心。为此,请浏览到官方Git 存储库并选择最新版本。或者,您可以从官方网站下载该工具。在撰写本文时,Nagios 的最新版本是 4.4.6,因此我们使用以下命令来提取工具:
$ export VER="4.4.6"
现在,使用curl
命令:
$ curl -SL https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-$VER/nagios-$VER.tar.gz | tar -xzf -
此命令会下载一个名为nagios-4.4.6的目录并将其添加到您当前的工作目录中。
第 4 步:安装 Nagios
我们现在需要通过从源代码编译来安装 Core。
1. 导航到 Nagios 目录:
$ cd nagios-4.4.6
2. 运行配置脚本:
$ ./configure
3. 运行make all
命令以编译 CGI 旁边的程序:
$ sudo make all
4.接下来,我们需要创建组用户:
$ sudo make install-groups-users
$ sudo usermod -a -G nagios www-data
5. 现在在您的 Ubuntu 系统上安装 Nagios Core:
$ sudo make install
6. 如您所见,屏幕上出现了一些附加说明。运行以下命令将init
脚本安装在/lib/systemd/system路径中:
$ sudo make install-init
7.接下来,安装目录并配置权限:
$ sudo make install-commandmode
8. 最后,在/usr/local/nagios/etc/中安装示例配置文件:
$ sudo make install-config
第 5 步:设置 Apache 和 Nagios UI
1. 您需要启用 Nagios Web 界面所需的 Apache 模块,因此运行以下命令:
$ sudo make install-webconf
$ sudo a2enmod rewrite cgi
$ sudo systemctl restart apache2
2. 为经典的 Nagios 监控主题键入以下命令:
$ sudo make install-classicui
第 6 步:创建第一个 Nagios 用户
我们现在需要创建一个可以登录 Nagios 的用户。以下命令创建一个名为nagadmin的用户:
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagadmin
您需要为用户提供密码并确认(默认情况下,密码存储在/usr/local/nagios/etc/htpasswd.users中)。
第 7 步:安装 Nagios 插件
查看官方存储库中最新可用的插件(在撰写本文时,最新发布的版本是 2.3.3)。
1. 要下载插件,请键入以下命令:
$ VER="2.3.3"
$ curl -SL https://github.com/nagios-plugins/nagios-plugins/releases/download/release-$VER/nagios-plugins-$VER.tar.gz | tar -xzf -
2. 此命令在您当前的工作目录中创建一个新目录 ( nagios-plugins-2.3.3 )。要安装插件,您首先需要导航到新目录:
$ cd nagios-plugins-2.3.3
3. 现在从源代码编译插件:
$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios
$ sudo make install
4. 要确保所有配置都井然有序,请运行以下命令:
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
第 8 步:启动 Nagios 守护进程
1.最后一步是启动Nagios服务,我们通过以下命令实现:
$ sudo systemctl enable --now nagios
2. 要确保该工具正在运行,请使用以下命令:
$ sudo systemctl status nagios
3. 您现在可以通过打开浏览器并导航到http://server-IP/nagios URL 来访问该工具。
4. 出现提示后,输入第 6 步中定义的凭据以登录,您就可以开始监控了。
使用 Nagios 的缺点
Nagios 虽然功能丰富,但并不是一个完美的工具。以下是使用 Nagios 的主要缺点:
- 该界面可以用大量数据压倒初学者。
- 虽然 Nagios Core 是免费的,但许多功能(例如向导、深度图表和交互式仪表板)只有在您购买 Nagios XI 时才能使用。
- 某些配置文件可能难以配置。
- 该解决方案无法监控网络吞吐量。
- 该工具将每个设备(服务器、路由器、交换机等)视为主机。
- 该工具需要大量定制和调整以使其适用于特定环境。
出色的监控能力,即使是免费版的工具
对于任何寻求可靠系统监控的企业来说,Nagios 都是一个不错的选择。如果您的团队以前从未使用过该工具,请考虑免费设置 Nagios Core 并直接测试该工具的功能。使用 Core 几周后,您将知道团队是否需要 XI。无论哪种方式,您的 IT 监控都会得到巨大的改进。