devture / nagadmin
Nagios 的 Web 配置器和前端
Requires
- alcaeus/mongo-php-adapter: 1.0
- devture/dbal: 1.2.*
- devture/silex-framework-bundle: 2.*
- devture/silex-localization-bundle: 3.*
- devture/silex-provider-config: 2.*
- devture/silex-provider-doctrine-mongodb: 2.*
- devture/silex-user-bundle: 7.*
- devture/sms-sender: 1.5.*
- silex/silex: 2.3.*
- swiftmailer/swiftmailer: 6.1.*
- symfony/console: 5.4.*
- symfony/finder: 5.4.*
- symfony/process: 5.4.*
- symfony/twig-bridge: ^4.0
- symfony/var-dumper: 5.4.*
- twig/twig: 2.14.*
Provides
- ext-mongodb: 1.11.*
This package is not auto-updated.
Last update: 2024-09-14 13:57:42 UTC
README
Nagadmin 是一个用于配置 Nagios 安装的 Web 配置器。它还充当前端 - 您可以在这里查看服务状态的地方。
它并不旨在支持所有 Nagios 功能。它可能会强制执行某种工作流程,这可能会或可能不会符合您的口味。它这样做的原因是为了优化常见的监控用例,并使其更加简单。
如果您的需求复杂,您可能需要寻找其他解决方案或分支并改进此方案。
为什么选择 Nagadmin 而不是“某些其他解决方案”?
有许多旨在使 Nagios 安装易于通过 Web 配置的 Web 配置器系统。编辑 Nagios 配置文件可能不方便(需要终端访问),更重要的是,它不会很好地展示实际配置的概览。
现有的所有 Nagios 配置器系统似乎都没有实现以下目标:
- 提供一个比“SSH 连接到 Nagios 服务器并编辑原始配置文件”更简单的用户界面
- 提供一个美丽且令人愉悦的用户界面,同时也可以在移动设备上使用
- 提供单一工具中的配置和前端工具
- 提供强大的访问控制,以便许多用户可以查看并可能执行不同的操作
- 通过隐藏某些复杂的 Nagios 功能来优化常见用例
- 为您提供对当前配置和状态的良好概览
安装
先决条件
- Docker
- Docker Compose (v1 或 v2)
下载源代码并进入主目录
cd /srv/http
git clone <repository url> nagadmin
cd nagadmin
配置
首先复制示例配置参数文件
cp config/parameters.json.dist config/parameters.json
cp .env.dist .env
现在修改 config/parameters.json
和 .env
以满足您的需求。
首次运行
make run
并非所有服务都能正常运行。Nagios 会遇到一些错误,因为它还找不到一些配置。我们将在下面的 安装 步骤中解决这些问题。
初始化数据库
运行以下命令以初始化数据库(导入初始数据集和创建数据库索引)
make init-database
安装
运行以下命令以设置资源变量并安装初始 Nagios 配置
make install
Nagios 应该现在可以正确启动和运行。
创建第一个用户
为您创建一个新的管理员用户账户
./bin/container-console devture-user:add USERNAME_HERE EMAIL_ADDRESS_HERE
您将被要求输入密码等。
访问 Nagadmin 和 Nagios
使用网络浏览器访问以下 URL 上的 Nagadmin:http://nagadmin.127.0.0.1.nip.io:20180
您应该可以使用上一步中创建的用户登录。
您还可以通过以下 URL 访问 Nagios:http://nagadmin.127.0.0.1.nip.io:20188
您需要使用在 .env
中指定的用户名/密码(NAGIOSADMIN_USER
和 NAGIOSADMIN_PASS
)进行身份验证。
验证一切是否正常工作
运行检查命令以查看一切是否运行正常
./bin/container-console check:status
设置反向代理
请参阅 resources/webserver
。您还可能需要调整 config/parameters.json
中的 %trusted_proxies%
参数。
常见问题解答
这支持所有类型的神秘 Nagios 功能吗?
不 - 请参阅上面的介绍。
这个提供了一个我可以查看我的服务状态的界面吗?
是的。Nagadmin 既是 Nagios 的一个网络配置工具,也是一个前端。它可以作为默认 Nagios CGI 界面的简单替代。
我可以将现有的 Nagios 配置文件导入到 Nagadmin 中吗?
不可以。你需要从头开始。
Nagadmin 的未来计划是什么?
源代码将始终可用。开发额外功能并进一步复杂化不是这个项目的目标。社区成员可以自由地对现有代码库进行改进。
Nagadmin 是用什么编写的?
Nagadmin是用PHP编写的,并使用Silex 微型框架。
系统需求是什么?
我们要求一个 x86-84 (amd64) Linux 服务器,无论是什么发行版,都必须有 Docker 和 Docker Compose。
所有服务都在容器中运行。
我可以在另一台机器上安装 web 配置器(不是运行 Nagios 的机器)吗?
不可以。在这个配置中,Nagios 只在容器中运行。
我没有运行 Nagios,但运行了一个兼容的系统(Icinga、Shinken、Centreon)。我能使用这个吗?
Nagadmin 只与 Nagios 兼容。这些系统有些相似,所以你可能可以将现有的设置迁移到 Nagios(由 Nagadmin 驱动)。
我需要检查成千上万的服务。我能使用这个吗?
现在还不能,或者至少它不会运行得很好。Nagadmin(尚)没有针对您的用例进行优化 - 请阅读上面的简介。它针对的是较小的安装,这些安装没有那么多服务。
限制
下面列出的限制是由尚未实现的功能或是有意识地设计决策省略它们(并可能用其他东西替换它们)造成的。
不支持主机检查和通知
因此,所有主机都被(内部)强制设置为 OK 状态。我们这样做是为了允许对这些主机运行服务检查。
不支持服务组
它们似乎又是管理员被要求输入的另一件事,这使工作流程更加复杂,并不会增加太多价值。
不支持定义时间段/联系人/主机/服务的模板
这使事情变得更简单,通过去除复杂的继承模型。
不支持服务依赖
这是一个高级功能。
Nagadmin 支持自动服务依赖(请参阅 config/parameters.json
中的 NagiosBundle.auto_service_dependency.master_service_regexes
参数)。
名称为 "ping" 或 "host-alive"(不区分大小写)的服务自动成为同一主机上所有其他服务的父服务。这允许您轻松定义一个 "重要" 服务,所有其他服务都依赖于它。这弥补了上面提到的 "主机检查和通知" 功能的缺失。
当这样一个重要/父服务出现问题时,将抑制所有子服务的单个通知。
不支持服务升级
这被认为是一个高级功能,超出了 Nagadmin 力求提供的内容(至少在目前这个时间点)。
不支持事件处理器
这被认为是一个高级功能,超出了 Nagadmin 力求提供的内容(至少在目前这个时间点)。
无法导入现有配置文件
如果您以前是手动配置 Nagios 的,您需要通过 Nagadmin 的 UI 重新复制所有现有的配置。
系统不擅长处理成千上万的服务
Nagadmin 针对的是更简单的用例和较小的安装(至少在目前)。代码和用户界面是以一种目前无法扩展到成千上万服务的方式设计的。如果您必须监控成千上万的服务,它也可能对您来说显得有点限制性和简单。