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.log 和 error.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 的多个远程系统。使用下面的评论表分享您对此工具的想法。