网站搜索

Amplify - NGINX 监控变得简单


Nginx amplify 是一系列有用的工具,用于广泛监控开源 Nginx Web 服务器和 NGINX Plus。借助 NGINX Amplify,您可以监控性能、跟踪运行 Nginx 的系统,并能够实际检查和修复与运行和扩展 Web 应用程序相关的问题。

它可用于可视化并确定 Nginx Web 服务器性能瓶颈、服务器过载或潜在的 DDoS 攻击;通过智能建议和推荐来增强和优化 Nginx 性能。

此外,当您的任何应用程序设置出现问题时,它可以通知您,并且它还可以充当 Web 应用程序容量和性能规划器。

Nginx amplify 架构基于 3 个关键组件构建,如下所述:

  • NGINX Amplify Backend – 核心系统组件,作为 SaaS(软件即服务)实施。它包含可扩展的指标收集框架、数据库、分析引擎和核心 API。
  • NGINX Amplify Agent – 一个应在受监控系统上安装和运行的 Python 应用程序。代理与 SaaS 后端之间的所有通信均通过 SSL/TLS 安全地完成;所有流量始终由代理发起。
  • NGINX Amplify Web UI – 与所有主要浏览器兼容的用户界面,并且只能通过 TLS/SSL 访问。

Web UI 显示 Nginx 和操作系统指标的图表,允许创建用户定义的仪表板,提供静态分析器以改进 Nginx 配置和具有自动通知的警报系统。

步骤1:在Linux系统上安装Amplify Agent

1. 打开网络浏览器,输入下面的地址并创建一个帐户。链接将发送到您的电子邮件,用它来验证电子邮件地址并登录您的新帐户。

https://amplify.nginx.com

2. 之后,通过 SSH 登录到要监控的远程服务器,并使用 curl 或 wget 命令下载 nginx amplify 代理自动安装脚本。

wget https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh
OR
curl -L -O https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh 

3. 现在使用 sudo 命令以超级用户权限运行以下命令,以安装 amplify 代理程序包(API_KEY 可能会有所不同,对于您添加的每个系统都是唯一的)。

sudo API_KEY='e126cf9a5c3b4f89498a4d7e1d7fdccf' sh ./install.sh 

注意:您可能会收到一条错误消息,表明 sub_status 尚未配置,这将在下一步中完成。

4.安装完成后,返回Web UI,大约1分钟后,您将可以在左侧列表中看到新系统。

步骤2:在NGINX中配置stub_status

5. 现在,您需要设置 stub_status 配置来构建关键的 Nginx 图表(Nginx Plus 用户需要配置stub_status 模块或扩展状态 模块)。

/etc/nginx/conf.d/ 下为 stub_status 创建一个新的配置文件。

sudo vi /etc/nginx/conf.d/sub_status.conf

然后将以下 stub_status 配置复制并粘贴到文件中。

server {
    listen 127.0.0.1:80;
    server_name 127.0.0.1;
    location /nginx_status {
        stub_status;
        allow 127.0.0.1;
        deny all;
    }
}

保存并关闭文件。

6.接下来,重新启动Nginx服务以激活stub_status模块配置,如下所示。

sudo systemctl restart nginx

步骤 3:配置其他 NGINX 指标以进行监控

7. 在此步骤中,您需要设置额外的 Nginx 指标以密切关注应用程序的性能。代理将从活动且不断增长的 access.logerror.log 文件中收集指标,并自动检测其位置。重要的是,应该允许它读取这些文件。

您所要做的就是在主 Nginx 配置文件 /etc/nginx/nginx.conf 中定义一个特定的 log_format ,如下所示。

log_format main_ext '$remote_addr - $remote_user [$time_local] "$request" '
                                '$status $body_bytes_sent "$http_referer" '
                                '"$http_user_agent" "$http_x_forwarded_for" '
                                '"$host" sn="$server_name" ' 'rt=$request_time '
                                'ua="$upstream_addr" us="$upstream_status" '
                                'ut="$upstream_response_time" ul="$upstream_response_length" '
                                'cs=$upstream_cache_status' ;

然后在定义 access_log 时使用上述日志格式,并且 error_log 日志级别应设置为 warn,如图所示。

access_log /var/log/nginx/suasell.com/suasell.com_access_log main_ext;
error_log /var/log/nginx/suasell.com/suasell.com_error_log  warn;

8. 现在再次重新启动 Nginx 服务,以使最新的更改生效。

sudo systemctl restart nginx

步骤 4:通过 Amplify 代理监控 Nginx Web 服务器

9. 最后,您可以从 Amplify Web UI 开始监控您的 Nginx Web 服务器。

要添加另一个系统进行监控,只需转到图表并单击“新系统”,然后按照上述步骤操作即可。

Nginx Amplify 主页:https://amplify.nginx.com/signup/

Amplify 是一款功能强大的 SaaS 解决方案,用于监控操作系统、Nginx Web 服务器以及基于 Nginx 的应用程序。它提供了一个统一的 Web UI,用于监视运行 Nginx 的多个远程系统。使用下面的评论表分享您对此工具的想法。