DCC

Amplify —— 深度整合的全方位监控
关于 Amplify首先来一段官方的介绍:Nginx Amplify 是全面的系统监测工具。借助 Nginx Am...
扫描右侧二维码阅读全文
25
2018/03

Amplify —— 深度整合的全方位监控

关于 Amplify

首先来一段官方的介绍:

Nginx Amplify 是全面的系统监测工具。借助 Nginx Amplify,您可以轻松分析和解决与运行 NGINX 的 Web 应用程序相关的问题。
Nginx Amplify 可以让您:

  • 可视化并识别 NGINX 性能瓶颈,服务器过载或潜在的DDoS攻击
  • 通过智能建议改进和优化 NGINX 性能
  • 在应用程序基础出现问题时收到通知
  • 规划 Web 应用程序的容量和性能
  • 跟踪运行 NGINX 的系统

实际上 Amplify 不仅能监控 Nginx 的运行情况,还能监控 php-fpm MySQL 和操作系统本身的运行状况,我大致统计了一下它的监控内容:

Nginx:连接数、请求数、HTTP 状态、文件读写、缓存状态、系统 CPU、IO、内存占用、后段负载均衡状态等等
PHP-FPM:连接数、请求队列、占用线程状态、慢请求状态等
MySQL:连接数、请求数、读、写、增、删状态、慢查询、连接状态、线程占用等
系统资源:CPU、IO、RAM、SWAP、网络、硬盘状态等

几乎是所有能想象到的监控项目,都是以直观的图表显示,而且能自定义监控项目进行提醒。

市面上有非常多的服务器运行状态监控的程序,但是 Amplify 的优点在于:

  • 由 Nginx 官方团队开发,而且完全开源,可信度方面要相对高于其他第三方监控程序
  • 和 Nginx 深度整合,直接读取 Nginx 状态,对 Web 的监控来说更加准确可靠
  • 资源占用非常低,几乎 0 CPU 和内存占用
  • 后台比较美观,自定义状态提醒和预警功能非常好用

这边有一些截图可以参考:

dashbord
chart
remind

Amplify 的安装和使用

安装 python 2.7

apt install python-dev -y && pip install -U pip setuptools

安装并开启 Amplify

首先需要给 Nginx 安装 stub_status 模块

编译 Nginx 时添加参数 --with-http_stub_status_module 即可
具体的编译过程可以参考 之前的教程

点击注册 Amplify

选择 New System 开始安装
root 用户执行:

curl -L -O https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh
API_KEY='xxxxxxxxxxxxxxxxxxxx' sh ./install.sh

注意填写自己的 API KEY

配置 Amplify

Nginx 配置

nginx.confhttp 中添加修改如下配置:

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  /var/log/nginx/access.log  main_ext;
error_log  /var/log/nginx/error.log warn;
############################################################################
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;
    }
}
############################################################################

php-fpm 配置

这个配置的位置可能有些不一样,具体需要找一下,修改的内容为:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

pm.status_path = /php_status

MySQL 配置

就是在数据库中创建一个对应的用户:

mysql -u root -p
[..]
mysql> CREATE USER 'amplify-agent'@'localhost' IDENTIFIED BY 'xxxxxx';

mysql -u amplify-agent -p
..
mysql> show global status;

修改 Amplify 配置

vi /etc/amplify-agent/agent.conf

基本上只需修改如下部分就可以啦:

[nginx]
user = www-data
configfile = /etc/nginx/nginx.conf
stub_status = /nginx_status
#plus_status = /status
#exclude_logs =

[extensions]
phpfpm = True
mysql = True

[mysql]
host = 127.0.0.1
port = 3306
unix_socket = /var/run/mysqld/mysqld.sock
user = amplify-agent
password = xxxxxxxxxxxxxxxxx

重启服务

service nginx restart && service php-fpm restart
service amplify-agent restart

等待一会就可以看到图表完全显示啦!

Last modification:March 26th, 2018 at 10:32 am

Leave a Comment