在Arch Linux下安装NGINX Amplify

NGINX Amplify是一个很强大的NGINX监控工具。

官方提供的安装脚本目前只支持在Ubuntu / Debian / CentOS / RHEL环境下运行,在Arch Linux下运行会报错「arch is currently unsupported, apologies!」

AUR里面的nginx-amplify-agent依赖官方仓库内的Nginx,这对于自己编译Nginx的小朋友们来说不太友好,此外也缺少一些依赖,导致安装后运行不起来,不能拿来直接用。

开始安装

首先使用yaourt安装nginx-amplify-agent

如果你没有安装过yaourt,可以参考这篇文章中的「安装yaourt」部分内容。

yaourt -S nginx-amplify-agent

如果你使用的不是官方仓库内的Nginx,请在这一步选择「编辑PKGBUILD」并删除掉依赖项中的Nginx后再继续安装。

安装完成后继续安装缺少的依赖。

pacman -Syu python2-pip python2-scandir
pip2 install crossplane pymysql supervisor daemon_runner daemon

全部安装完成后,编辑nginx.conf,加入以下内容到http段落中。

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  /path/to/access.log  main_ext;
error_log  /path/to/error.log warn;

新建一个server段落。

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来让这些配置生效。

nginx -s reload

扩展

Amplify除了可以监控Nginx之外,还可以监控PHP-FPM以及MySQL的状态,而且配置起来也十分简单。

PHP-FPM

编辑/etc/php/php-fpm.d/www.conf,取消注释以下内容。

listen.owner = http
listen.group = http
listen.mode = 0660
pm.status_path = /status

重启PHP-FPM。

systemctl restart php-fpm

MySQL

首先连接到数据库。

mysql -u root -p

新建一个名为amplify-agent的用户。

CREATE USER 'amplify-agent'@'localhost' IDENTIFIED BY 'xxxxxx';

运行

编辑/etc/amplify-agent/agent.conf

[credentials]
api_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
hostname =
uuid =
imagename =

[nginx]
user = http
configfile = /path/to/nginx.conf
stub_status = http://127.0.0.1/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 = xxxxxx

配置好API Key和其他配置项后即可运行Amplify。

systemctl start amplify-agent
systemctl enable amplify-agent


已有 4 条评论

  1. 小浩太强了吧_(:з」∠)_

  2. Prometheus的Nginx监控模块也不错呢,加上Grafana可视化简直完美(・∀・)

  3. 第一!

添加新评论