云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

2019-02-28 22:11:20作者:叶云稿源:云网牛站

本文介绍在Ubuntu 18.04、Ubuntu 16.04上安装及使用Nginx Amplify进行LEMP Stack性能监控。Nginx Amplify是一种免费,灵活且功能强大的工具,用于分析Nginx和Nginx Plus Web服务器的负载和性能,它易于设置和使用,Nginx Amplify还自带MySQL/MariaDB、PHP-FPM插件,因此你可以监控完整的LEMP Stack应用程序。LEMP代表Linux、Nginx、MySQL/MariaDB、PHP,安装请参考在Ubuntu 18.04 Server中安装LEMP的方法[Nginx、MariaDB、PHP7.2]一文。

 

在Ubuntu 18.04/16.04 Linux服务器上安装Nginx Amplify

Nginx Amplify代理是开源的,你可以使用安装脚本在Debian 8、Debian 9、Ubuntu 16.04、Ubuntu 18.04、RHEL/CentOS 6,RHEL/CentOS 7上安装Nginx Amplify。

首先,在https://amplify.nginx.com注册一个帐户:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

确认你的邮件地址,接下来,你需要在Linux服务器上安装Nginx Amplify Agent,SSH进入你的服务器并以root身份登录(在Ubuntu 18.04系统中启用SSH登录的方法),Nginx Amplify网站非常适合提供运行安装Nginx Amplify所需的命令,因此只需在服务器上复制并运行这些命令即可。

请注意,你需要以root身份运行这些命令:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

下载安装脚本:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

运行安装脚本(每个Amplify帐户都有一个唯一的API密钥):

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

安装完成后,代理将自动启动,可以通过以下方式检查其状态:

systemctl status amplify-agent

输出信息如下:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

提示:运行上述命令后,按Q键获取终端控制权。

要在启动时启用自动启动,请运行:

sudo systemctl enable amplify-agent

 

在Nginx中配置Stub_status

Amplify代理可以开箱即用地收集系统指标,要收集Nginx指标,你需要配置Nginx stub_status,打开nginx.conf文件:

sudo nano /etc/nginx/nginx.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代理可以开始收集Nginx指标:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

 

创建自定义Nginx日志格式

Nginx Amplify代理还可以从Nginx日志文件中收集信息,但是,默认日志格式为我们提供了有限的信息,如果你真的关心应用程序性能,则应创建自定义日志格式以显示请求时间,上游响应时间,缓存命中等。

打开nginx.conf文件:

sudo nano /etc/nginx/nginx.conf

在包含指令上方的http {...}上下文中添加以下行,这里我们创建一个名为apm(应用程序性能监视)的自定义Nginx日志格式,其中包含有关request_time、upstream_response_time、upstream_connect_time和upstream_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_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

请定义自己的名称,比如云网牛站使用:sudo nano /etc/nginx/conf.d/ywnz.com.conf。

你的Nginx虚拟主机配置文件可能位于/etc/nginx/sites-enabled/目录下,我喜欢使用/etc/nginx/conf.d/目录。

在服务器{...}上下文中,添加以下两行以启用访问日志和错误日志,访问日志使用apm格式,错误日志使用警告日志级别:

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图中看到上游响应时间和其他与性能相关的指标:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

 

监控MariaDB/MySQL数据库

首先,我们需要在MariaDB/MySQL中创建用户来收集指标,登录MariaDB/MySQL监视器:

sudo mysql -u root

为Amplify代理创建一个新用户,将your_password替换为您的首选密码(建议选择与MariaDB/MySQL root密码不同的密码):

create user 'amplify-agent'@'localhost' identified by 'your_password';

退出MariaDB/MySQL服务器:

exit;

接下来,我们需要在Amplify configuariton文件中启用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]部分中,找到以下行:

password = amplify-agent

将默认密码替换为您为amplify-agent用户设置的密码,保存并关闭文件,然后重新启动Amplify代理以使更改生效:

sudo systemctl restart amplify-agent

现在,Amplify代理开始收集MariaDB/MySQL指数:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

 

启用MariaDB慢查询日志

慢查询日志可以显示哪些查询需要很长时间才能给出响应,它是优化MariaDB性能的重要工具,要启用MariaDB慢查询日志,请编辑服务器配置文件:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

找到以下3行:

#slow_query_log_file = /var/log/mysql/mariadb-slow.log

#long_query_time = 10

#log-queries-not-using-indexes

删除#符号并将long_query_time的值更改为1秒之类的低位数(可以指定较小的值,如0.5):

slow_query_log_file = /var/log/mysql/mariadb-slow.log

long_query_time = 1

log-queries-not-using-indexes

此外,添加以下行以启用慢查询日志:

slow_query_log = 1

保存并关闭文件,重新启动MariaDB以使更改生效:

sudo systemctl restart mariadb

要么:

sudo systemctl restart mysql

现在Nginx Amplify可以在图表中显示慢查询:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

 

监控PHP-FPM

默认情况下启用Amplify代理PHP-FPM插件,但我们需要启用PHP-FPM状态才能收集指标,编辑PHP-FPM池配置文件。

Ubuntu PHP7.2:

sudo nano /etc/php/7.2/fpm/pool.d/www.conf

找到以下行并删除分号以启用PHP-FPM状态:

;pm.status_path = /status

启用PHP慢速日志也是一个好主意,它可以显示哪些请求花费的时间太长,找到以下行:

;slowlog = log/$pool.log.slow

删除分号并设置日志路径:

slowlog = /var/log/php-fpm/slow.log

然后找到以下行:

;request_slowlog_timeout = 0

删除分号并将超时秒设置为1秒:

request_slowlog_timeout = 1s

保存并关闭文件,为PHP-FPM日志创建目录:

sudo mkdir /var/log/php-fpm/

重新启动PHP-FPM以使更改生效:

sudo systemctl restart php7.2-fpm

现在,Amplify代理开始收集PHP-FPM指标,包括慢速请求日志:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

请注意,如果安装新版本的PHP-FPM、如PHP7.3-FPM,则需要在/etc/php/7.3/fpm/pool.d/www.conf文件中再次配置它。

参考:在Ubuntu 18.04或CentOS 7系统上安装PHP 7.3

 

放大概述页面、图表、Nginx放大仪表板、分析仪、警报

在概述页面上,你可以查看整个应用程序运行状况评分和系统的5个关键指标:总请求数、HTTP 5xx错误、请求时间(需要创建自定义日志格式,如前所述,以显示此度量标准)、Nginx使用多少带宽、CPU使用率:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

应用程序运行状况评分受HTTP 5xx错误数量的影响,如果没有HTTP 5xx错误,则分数将为100%。

如果单击服务器图标,则可以看到系统上使用了多少CPU和RAM以及Nginx使用了多少:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

同时在Graphs页面中,你可以看到预定义的系统、Nginx、MariaDB/MySQL和PHP-FPM指标,以下为图表截图:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

通过Amplify仪表板,你可以创建自定义图形和图表,并将它们分组到一个页面上,例如,你可以在一个页面上组合所有与性能相关的图形,或者你可能希望显示特定URL的所有度量标准,以下为Nginx放大仪表板截图:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

分析仪中有用的工具之一是静态分析,Amplify可以解析你的Nginx配置文件,并提出性能,安全性和可靠性建议,可以使用它来识别错误并改进配置:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

如上所见,我的Nginx服务器有5个警告,因此我单击Open链接以查看如何调整我的Nginx配置:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

进行调整后,等待几分钟,警告就会消失。

默认情况下,如果Amplify代理停止工作,则会向你的电子邮件地址发送警报,在警报页面中,你可以为服务器设置各种警报,例如,如果过去2分钟的上游响应时间超过1秒,我可以告诉Amplify给我发电子邮件:

在Ubuntu 18.04/16.04上使用Nginx Amplify进行LEMP性能监控

至此,安装和使用Nginx Amplify来监控Ubuntu 18.04/16.04上Nginx或LEMP stack应用程序的性能就讲完了。

 

相关主题

使用Prometheus和Grafana监控Linux服务器性能的方法

精选文章
热门文章