Nginx Amplify是一个免费的、基于SaaS的解决方案,用于监控Nginx和Nginx Plus服务器的性能和负载。它通过收集和分析系统指标、Nginx指标、MySQL/MariaDB指标以及PHP-FPM指标,提供了全面的服务监控能力。Nginx Amplify的易用性和多功能性使得它成为管理LEMP(Linux、Nginx、MySQL/MariaDB、PHP)堆栈应用程序性能的首选工具之一。
安装Nginx Amplify Agent
1. 注册Amplify账户访问amplify.nginx.com并注册一个账号。验证您的电子邮件地址。
2. 安装Nginx Amplify Agent
- 以root身份登录到您的CentOS 8/RHEL 8服务器。
- 安装Python 2,如果它没有被安装。在CentOS 8中,Python 2默认不安装,因此需要运行以下命令
bash
sudo dnf install python2
- 下载并运行Nginx Amplify安装脚本
bash
wget http://raw.githubusercontent.com/nginxinc/nginx-amplify-agent/master/scripts/install.sh
sudo sh install.sh
- 安装完成后,Agent将自动启动。您可以通过检查Amplify Agent的状态来确认安装成功
bash
systemctl status amplify-agent
配置Nginx stub_status
为了收集Nginx指标,我们需要配置Nginx的stub_status模块。这可以通过创建一个配置文件来实现。
1. 编辑配置文件
bash
sudo nano /etc/nginx/conf.d/stub_status.conf
2. 在http { ... }上下文中添加以下配置
nginx
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
allow 127.0.0.1;
deny all;
}
}
3. 保存并关闭文件,然后重新加载Nginx以应用更改
bash
sudo systemctl reload nginx
创建自定义Nginx日志格式
为了更深入地分析Nginx的性能,我们需要创建一个自定义的Nginx日志格式,该格式包含请求时间、上游响应时间、缓存命中率等信息。
1. 编辑Nginx的主配置文件
bash
sudo nano /etc/nginx/nginx.conf
2. 在http { ... }上下文中添加以下行来定义新的日志格式
nginx
log_format apm ''$time_local' client=$remote_addr 'method=$request_method request='$request' 'request_length=$request_length 'status=$status bytes_sent=$bytes_sent 'body_bytes_sent=$body_bytes_sent 'referer=$http_referer 'user_agent='$http_user_agent' 'upstream_addr=$upstream_addr 'upstream_status=$upstream_status 'request_time=$request_time 'upstream_cache_status='$upstream_cache_status' 'upstream_response_time=$upstream_response_time 'upstream_connect_time=$upstream_connect_