虚拟主机域名注册-常见问题服务器知识 → 操作系统

CentOS 8安装Nginx Amplify监控LEMP性能的操作方法

  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

  保存并关闭文件。




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:重启Ubuntu服务器命令方式
下一篇:Linux服务器上安装和配置ConfigServer Security & Firewall的方法
  >> 相关文章
没有相关文章。
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部