为生产而构建:Web 应用程序 您所在的位置:网站首页 加载卸载应用程序 为生产而构建:Web 应用程序

为生产而构建:Web 应用程序

2023-03-24 03:23| 来源: 网络整理| 查看: 265

介绍

现在我们已经完成了生产应用程序服务器设置、恢复计划和备份,让我们考虑添加监控以提高我们对服务器和服务状态的认识。监控软件(例如 Nagios、Icinga 和 Zabbix)使您能够创建仪表板和警报,向您显示应用程序设置的哪些组件需要注意。这样做的目的是帮助您检测设置问题,并在用户遇到问题之前开始修复它们。

监控图

在本教程中,我们将 Nagios 4 设置为监控软件,并在构成我们应用程序的服务器上安装 NRPE 代理。

对于我们设置中的每台服务器,我们将设置监控以检查服务器是否已启动以及其主进程(即 apache、mysql 或 haproxy)是否正在运行。虽然本监控指南并不全面——您可能需要设置我们不会在此处介绍的其他检查——但它是一个很好的起点。

先决条件

如果您想通过域名访问您的日志仪表板,请在您的域下创建一个 A 记录,例如“monitoring.example.com”,它指向您的监控服务器的公共 IP 地址。或者,您可以通过公共 IP 地址访问监控仪表板。建议您将监控 Web 服务器设置为使用 HTTPS,并通过将其置于 VPN 后面来限制对其的访问。

在监控服务器上安装 Nagios

按照本教程在您的监控服务器上设置 Nagios:[如何在 Ubuntu 14.04 上安装 Nagios 4 并监控您的服务器](https://www.digitalocean.com/community/tutorials/how-to-install -nagios-4-and-monitor-your-servers-on-ubuntu-14-04)。如果您愿意,也可以使用 [Icinga](https://www.digitalocean.com/community/tutorials/how-to-use-icinga-to-monitor-your-servers-and-services-on-ubuntu- 14-04),这是 Nagios 的一个分支。

当您到达 Monitor an Ubuntu Host with NRPE 部分时停止。

将服务器添加到 Nagios

在您设置中的每台服务器(db1、app1、app2 和 lb1)上,通过 [使用 NRPE 监控 Ubuntu 主机](https://www.digitalocean.com/community/tutorials/how-to-install-nagios -4-and-monitor-your-servers-on-ubuntu-14-04#monitor-an-ubuntu-host-with-nrpe) Nagios 教程的部分。

请务必将您的 monitoring 服务器的私有主机名或 IP 地址添加到 NRPE 配置文件中的 allowed_hosts 设置中。

添加完每台主机后,您应该为要监控的每台服务器创建一个单独的文件:db1.cfg、app1.cfg、app2.cfg 和 lb1.cfg。每个文件都应包含引用相应主机名和地址(可以是服务器的主机名或 IP 地址)的主机定义。

设置主机和服务监控

让我们列出我们想要在每台服务器上监控的常见事物。对于每台服务器,让我们监控以下服务:

SSH

当前负载

当前用户

磁盘利用率

让我们现在进行设置。

定义公共服务

在 Nagios 设置教程中,我们将 Nagios 配置为在 /usr/local/nagios/etc/servers(或 Icinga 的 /etc/icinga/objects/)中查找 .cfg 文件。为了使事情井井有条,我们将为我们要监控的公共服务创建一个新的 Nagios 配置文件,名为“common.cfg”。

一、打开主机配置文件进行编辑

sudo 你 /usr/local/nagios/etc/servers/common.cfg

添加以下服务定义,以及每个服务器的 host_name(在前面的主机定义中定义):

Nagios 配置——公共服务

定义服务{ 使用通用服务 主机名 db1,app1,app2,lb1 service_description PING check_command check_ping!100.0,20%!500.0,60% } 定义服务{ 使用通用服务 主机名 db1,app1,app2,lb1 服务描述 SSH check_command check_ssh 通知_启用 0 } 定义服务{ 使用通用服务 主机名 db1,app1,app2,lb1 service_description 当前负载 check_command check_nrpe!check_load } 定义服务{ 使用通用服务 主机名 db1,app1,app2,lb1 service_description 当前用户 check_command check_nrpe!check_users } 定义服务{ 使用通用服务 主机名 db1,app1,app2,lb1 service_description 磁盘利用率 check_command check_nrpe!check_hda1 }

保存并退出。

现在我们准备好定义特定于每个服务器的服务。我们将从我们的数据库服务器开始。

定义 MySQL 进程 创建 NRPE 命令(在客户端)

在您的数据库服务器 db1 上,我们将配置一个新的 NRPE 命令。打开一个新的 NRPE 配置文件,“commands.cfg”:

sudo 你 /etc/nagios/nrpe.d/commands.cfg

添加以下命令定义:

NRPE 配置 (commands.cfg) — 检查_mysqld

命令[check_mysqld]u003d/usr/lib/nagios/plugins/check_procs -c 1: -C mysqld

保存并退出。这允许 NRPE 检查名为“mysqld”的进程,并在运行该名称的进程少于 1 个时报告关键状态。

重新加载 NRPE 配置:

sudo service nagios-nrpe-server 重新加载 创建服务定义(在服务器上)

在您的 Nagios 服务器上,monitoring,我们需要定义一个使用 NRPE 运行“check_mysqld”命令的新服务。

打开定义数据库主机的文件。在我们的示例中,它被称为“db1.cfg”:

sudo 你 /usr/local/nagios/etc/servers/db1.cfg

在文件末尾,添加此服务定义(确保 host_name 值与主机定义的名称匹配):

db1.cfg — 检查_mysql

定义服务{ 使用通用服务 主机名 db1 service_description 检查 MySQL 进程 check_command check_nrpe!check_mysqld }

保存并退出。这会将 Nagios 配置为使用 NRPE 在数据库服务器上运行 check_mysqld 命令。

要使此更改生效,我们必须重新加载 Nagios。但是,我们将首先监控 Apache 进程。

定义 Apache 进程 创建 NRPE 命令(在客户端)

在您的应用服务器 app1 和 app2 上,我们将配置一个新的 NRPE 命令。打开一个新的 NRPE 配置文件,“commands.cfg”:

sudo 你 /etc/nagios/nrpe.d/commands.cfg

添加以下命令定义:

NRPE 配置 (commands.cfg) — 检查_apache2

命令[check_apache2]u003d/usr/lib/nagios/plugins/check_procs -c 1: -w 3: -C apache2

保存并退出。这允许 NRPE 检查名为“apache2”的进程,如果没有匹配的进程正在运行,则报告严重状态,如果匹配的进程少于三个,则报告警告状态。

重新加载 NRPE 配置:

sudo service nagios-nrpe-server 重新加载

请务必在任何其他应用程序服务器上重复此操作。

创建服务定义(在服务器上)

在您的 Nagios 服务器上,monitoring,我们需要定义一个使用 NRPE 运行“check_apache2”命令的新服务。

打开定义应用程序主机的文件。在我们的示例中,它们被称为“app1.cfg”和“app2.cfg”:

sudo 你 /usr/local/nagios/etc/servers/app1.cfg

在文件末尾,添加此服务定义(确保 host_name 值与主机定义的名称匹配):

app1.cfg 和 app2.cfg — 检查_apache2

定义服务{ 使用通用服务 主机名 app1 service_description 检查 Apache2 进程 check_command check_nrpe!check_apache2 }

保存并退出。这将 Nagios 配置为使用 NRPE 在应用程序服务器上运行 check_apache2 命令。请务必为您的每个应用程序服务器重复此操作。

要使此更改生效,我们必须重新加载 Nagios。但是,在此之前,我们将继续监控 HAProxy 进程。

定义 HAProxy 进程 创建 NRPE 命令(在客户端)

在您的负载平衡器服务器 lb1 上,我们将配置一个新的 NRPE 命令。打开一个新的 NRPE 配置文件,“commands.cfg”:

sudo 你 /etc/nagios/nrpe.d/commands.cfg

添加以下命令定义:

NRPE 配置 (commands.cfg) — 检查_haproxy

命令[check_haproxy]u003d/usr/lib/nagios/plugins/check_procs -c 1: -C haproxy

保存并退出。这允许 NRPE 检查名为“haproxy”的进程,并在运行该名称的进程少于 1 个时报告临界状态。

重新加载 NRPE 配置:

sudo service nagios-nrpe-server 重新加载

请务必在任何其他应用程序服务器上重复此操作。

创建服务定义(在服务器上)

在您的 Nagios 服务器上,monitoring,我们需要定义一个使用 NRPE 运行“check_haproxy”命令的新服务。

打开定义数据库主机的文件。在我们的示例中,它被称为“lb1.cfg”:

sudo 你 /usr/local/nagios/etc/servers/lb1.cfg

在文件末尾,添加此服务定义(确保 host_name 值与主机定义的名称匹配):

lb1.cfg — 检查_haproxy

定义服务{ 使用通用服务 主机名 lb1 service_description 检查 HAProxy 进程 check_command check_nrpe!check_haproxy }

这会将 Nagios 配置为使用 NRPE 在负载平衡器服务器上运行 check_haproxy 命令。

要使此更改生效,我们必须重新加载 Nagios。

重新加载 Nagios 配置

要重新加载 Nagios,并使我们的所有更改生效,请输入以下命令:

sudo 服务 nagios 重新加载

如果配置中没有语法错误,则应该设置。

检查 Nagios 服务

在继续之前,您需要验证 Nagios 是否正在监控您定义的所有主机和服务。通过其公共主机名或 IP 地址访问您的 Nagios 服务器,例如http://monitoring.example.com/nagios/。输入您在安装 Nagios 服务器期间设置的登录名。

在侧边菜单中,单击 Services 链接。您应该被带到如下所示的页面:

Nagios 服务

理想情况下,您会看到每个主机和所有服务都处于“正常”状态。在屏幕截图中,我们可以看到 app2 服务器存在问题,因为它在最近的状态检查期间已关闭。如果您的任何服务不“正常”,请修复它们,或者,如果服务正常,请检查您的 Nagios 配置是否有错误。

其他注意事项

您很可能希望为您的监控服务器创建一个恢复计划,并备份您的 Nagios 配置文件(/usr/local/nagios/etc)。设置备份后,您可能需要配置监控、附加服务和电子邮件通知。

结论

现在,您应该能够通过简单地查看监控仪表板来查看服务器和服务的状态。如果发生中断,您的监控系统将帮助您确定哪些服务器和服务未正常运行,这将有助于减少应用程序的停机时间。

继续下一个教程,开始为您的生产服务器设置设置集中式日志记录:为生产而构建:Web 应用程序 - 集中式日志记录。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有