虚拟主机域名注册-常见问题 → 服务器知识 → 操作系统 | ||||
Nginx Amplify是由Nginx公司开发的,该公司是Nginx Web服务器背后的公司。它是一个基于SaaS的解决方案。你在服务器上安装Nginx Amplify Agent,它将收集并发送指标到SaaS服务。Nginx Amplify Agent是开源和轻量级的。它收集了许多指标,包括 ①系统指标(CPU、RAM使用量、网络流量、磁盘使用量、磁盘I/O、磁盘延迟等)。 ②Nginx指标(连接、请求、HTTP状态、响应时间、流量等)。 ③MySQL/MariaDB指标(连接、选择查询、插入查询、更新查询、慢速查询等)。 ④PHP-FPM指标(连接数、连接队列、慢速请求等)。 Nginx Amplify还可以: ①使用静态分析器帮助您改进Nginx配置。 ②提醒异常行为 一、在CentOS 8/RHEL8 Linux服务器上安装Nginx Amplify Nginx Amplify Agent是开源的,你可以使用安装脚本在以下Linux发行版上安装Nginx Amplify: Debian 9,Debian 10。 Ubuntu 16.04, Ubuntu 18.04 CentOS /RHEL 6, CentOS/RHEL 7, CentOS/RHEL 8。 首先,在amplify.nginx.com注册一个账号。 ![]() 验证你的电子邮件地址。接下来,你需要在Linux服务器上安装Nginx Amplify Agent。通过SSH进入服务器,以root身份登录。Nginx Amplify官网给出了安装Nginx Amplify所需要运行的命令,所以只要复制并在服务器上运行这些命令即可。 注意,你需要以root身份运行这些命令。 ![]() Nginx Amplify需要Python2。从默认的CentOS存储库安装它。 sudo dnf install python2 下载安装脚本。 ![]() 然后运行安装脚本。(每个Amplify帐户都有一个唯一的API密钥。) ![]() 安装完成后,Agent将自动启动。您可以通过以下方式查看其状态: systemctl status amplify-agent 样本输出: ![]() 提示:如果上述命令没有立即退出,请按Q以获得对终端的控制权。 要在引导时启用自动启动,请运行 sudo systemctl enable amplify-agent 二、在Nginx中配置Stub_status Amplify Agent可以立即收集系统指标。为了收集Nginx指标,您需要配置Nginx stub_status。创建一个配置文件。 sudo nano /etc/nginx/conf.d/stub_status.conf 在http {...}上下文中添加以下信息。 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; } } 保存并关闭文件。然后重新加载Nginx以使更改生效。 sudo systemctl reload nginx 现在,Amplify Agent可以开始收集Nginx指标。 ![]() 三、创建自定义Nginx日志格式 Nginx Amplify Agent还可以从Nginx日志文件中收集信息。但是,默认日志格式为我们提供了有限的信息。如果您确实关心应用程序的性能,则应创建一个自定义日志格式以显示请求时间,上游响应时间,缓存命中率等。 打开nginx.conf文件。 sudo nano /etc/nginx/nginx.conf http {...}在include指令上方的上下文中添加以下行。在这里,我们正在创建一种称为apm(应用程序性能监视)的自定义Nginx日志格式,其中包括有关request_time,streaming_response_time,streaming_connect_time和streaming_header_time的信息。所有这些都以毫秒为单位,以毫秒为单位进行测量。 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_time ' 'upstream_header_time=$upstream_header_time'; 保存并关闭文件。然后打开您的Nginx虚拟主机配置文件。例如, sudo nano /etc/nginx/conf.d/linuxbabe.com.conf 在server {...}上下文中,添加以下两行以启用访问日志和错误日志。访问日志使用apm格式,错误日志使用warn日志级别。 access_log /var/log/nginx/linuxbabe.com.access.log apm; error_log /var/log/nginx/linuxbabe.com.error.log warn; 保存并关闭文件。然后重新加载Nginx。 sudo systemctl reload nginx 现在我可以在Amplify图中看到上游响应时间和其他性能相关指标。良好的上游响应时间小于0.5秒。否则你的访客会觉得你的网站很慢。如果你能调整你的服务器,使上游响应时间低于0.2秒,你的网站将非常快。 ![]() 如果Amplify Agent未报告Nginx指标,请检查Amplify Agent是否以与Nginx工作进程相同的用户身份运行。您也可以检查Amplify Agent日志(/var/log/amplify-agent/agent.log)。 四、如何在Nginx访问日志中排除您自己的IP地址 有时,您的活动可能会使Nginx指标产生偏差。您可以在访问日志中排除自己的IP地址来避免这种情况。首先,在httpNginx配置文件的上下文中添加以下行。用您自己的IP地址替换12.34.56.78。如果HTTP请求来自您自己的IP地址,Nginx会将$log_ip变量的值设置为0。 map $remote_addr $log_ip { "12.34.56.78" 0; default 1; } 然后access_log,如下更改指令。 access_log /var/log/nginx/linuxbabe.com.access.log apm if=$log_ip; 保存并关闭文件。然后输入nginx配置文本并重新加载。 sudo nginx -t sudo systemctl reload nginx 五、如何监视MariaDB / MySQL数据库服务器 首先,我们需要在MariaDB / MySQL中创建一个用户来收集指标。登录到MariaDB / MySQL监视器。 mysql -u root -p 为Amplify Agent创建一个新用户。替换your_password为您的首选密码。(建议选择与MariaDB / MySQL根密码不同的密码。) create user 'amplify-agent'@'localhost' identified by 'your_password'; 退出MariaDB / MySQL服务器。 exit; 接下来,我们需要在Amplify配置文件中启用Amplify MariaDB / MySQL插件。 sudo nano /etc/amplify-agent/agent.conf 在该[extensions]部分中,您可以看到mysql插件默认为禁用。 [extensions] phpfpm = True mysql = False 更改False为True启用此插件。 [extensions] phpfpm = True mysql = True 然后在[mysql]部分中,找到以下行。 unix_socket = /var/run/mysqld/mysqld.sock password = amplify-agent CentOS上的MariaDB软件包在/var/lib/mysql/mysql.sockUnix套接字上侦听,因此将的值更改unix_socket为 unix_socket = /var/lib/mysql/mysql.sock 然后将默认密码替换为您为amplify-agent用户设置的密码。保存并关闭文件。然后重新启动Amplify agent,以使更改生效。 sudo systemctl restart amplify-agent 现在,Amplify Agent开始收集MariaDB / MySQL指标。(您可能需要等待几分钟。) ![]() 六、如何启用MariaDB慢查询日志 慢查询日志可以向您显示哪些查询需要很长时间才能给出响应。这是优化MariaDB性能的重要工具。要启用MariaDB慢查询日志,请编辑服务器配置文件。 sudo nano /etc/my.cnf.d/mariadb-server.cnf 在该[mysqld]部分中添加以下行。 slow_query_log = 1 slow_query_log_file = /var/log/mariadb/mariadb-slow.log long_query_time = 1 log_slow_rate_limit = 1000 log_slow_verbosity = query_plan log-queries-not-using-indexes 我将设置long_query_time为较低的数字1秒。您还可以指定一个较小的值,例如0.5秒。保存并关闭文件。重新启动MariaDB,以使更改生效。 sudo systemctl restart mariadb 现在,Nginx Amplify可以在图中显示缓慢的查询。 ![]() 七、如何监视PHP-FPM 默认情况下,Amplify AgentPHP-FPM插件处于启用状态,但是我们需要启用PHP-FPM状态才能收集指标。编辑PHP-FPM池配置文件。 sudo nano /etc/php-fpm.d/www.conf 查找以下行并删除分号以启用PHP-FPM状态。 ;pm.status_path = /status 默认情况下,PHP慢日志已启用,如以下行所示。 slowlog = /var/log/php-fpm/www-slow.log 然后找到以下行。 ;request_slowlog_timeout = 0 删除分号,并将超时秒数设置为1s。 request_slowlog_timeout = 1s 保存并关闭文件。为PHP-FPM日志创建目录。 sudo mkdir -p /var/log/php-fpm/ 重新启动PHP-FPM,以使更改生效。 sudo systemctl restart php-fpm 现在,Amplify 开始收集PHP-FPM指标,包括慢请求日志。 ![]() 八、Amplify概述页面 在概述页面上,您可以查看系统的总体应用程序运行状况得分和5个关键指标。 请求总数 HTTP 5xx错误 请求时间(您需要按照前面所述创建自定义日志格式,以显示该指标。) Nginx使用多少带宽 CPU使用率 ![]() 应用程序运行状况得分受HTTP 5xx错误数量的影响。如果没有HTTP 5xx错误,则分数将为100%。 九、图表 在“图形”页面中,您可以查看预定义的系统,Nginx,MariaDB / MySQL和PHP-FPM指标。 ![]() 十、Nginx Amplify仪表盘 Amplify仪表盘允许您创建自定义的图形和图表,并将它们组合在一个页面上。例如,您可以在一页上组合所有与性能相关的图形,或者您可能想显示特定URL的所有指标。 ![]() 如果已配置Nginx FastCGI缓存,则还可以在仪表板上为Nginx缓存命中率和缓存过期创建图表。 十一、分析器 分析器中有用的工具是静态分析。Amplify可以解析你的Nginx配置文件,并提出性能、安全和可靠性建议。你可以用它来识别错误并改进配置。 ![]() 如您所见,我的Nginx服务器有5条警告,因此我单击“打开”链接以查看如何调整我的Nginx配置。 ![]() 进行调整后,请等待几分钟,警告将消失。 十二、警报提醒 默认情况下,如果Amplify Agent停止工作,则会将警报发送到您的电子邮件地址。在警报页面中,可以为服务器设置各种警报。例如,如果过去2分钟内上游响应时间超过1秒,我可以让Amplify给我发送电子邮件。 ![]() 十三、Amplify Agent停止工作 我发现Amplify Agent有时候因为未知原因停止发送性能指标。我创建了一个Cron定时作业,每天重启一次Amplify-agent来解决这个问题。 sudo crontab -e 在crontab文件中添加以下行。 @daily systemctl restart amplify-agent 保存并关闭文件。
|
||||
>> 相关文章 | ||||
没有相关文章。 |