Nginx Amplify Agent 是一個用 Python 編寫的功能強大的 Nginx 監控工具。 它的作用是收集各種指標和元數據,並將它們安全地發送到後端進行存儲和可視化。 正確安裝後,它會為您提供 NGINX Amplify Web 界面,您應該會看到受監控系統的實時指標。 它還為您提供以下功能:
- 列出所有受監控的服務器,SLA 會提供 30 秒的 NGINX 健康檢查。
- Nginx、PHP‑FPM 和操作系統指標的一組標準圖表。
- 您的 NGINX 配置文件的概述,並在出現任何常見配置問題時發出警報。
- 一個易於管理的儀表板來擁有您的圖表
- 關於異常 Nginx 行為的通知。
所有流行的操作系統發行版都支持此應用程序,即 Amazon Linux、CentOS、RHEL、Debian 和 Ubuntu。 在本文中,我將解釋如何在 CentOS 7 服務器上安裝此應用程序。
安裝 Amplify 代理
在繼續安裝步驟之前,您需要轉到 amplify.nginx.com 並註冊一個帳戶。
現在您可以使用創建的憑據登錄您的帳戶。 您將獲得一組安裝步驟以繼續進行。 假設您已經安裝並運行了 Nginx 服務器。 讓我們從下面的 Amplify Agent 安裝步驟開始:
步驟1。 通過 SSH 連接到您需要監視和下載安裝程序腳本的服務器,如下所示:
#wget https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh
第2步。 以 root 身份運行以下命令以安裝 Amplify Agent 包。 您可以從 Amplify Dashboard 的安裝說明彈出窗口中獲取此 API_KEY。 每個單獨的帳戶都有一個唯一的 api 密鑰。 出於安全原因,我在“***”中標記了 api 密鑰
# API_KEY='***' sh ./install.sh
Installed:
nginx-amplify-agent.x86_64 0:0.47-1.el7
Complete!
8. Installing nginx-amplify-agent package ... done.
9. Building configuration file ... done.
10. Checking if sudo -u nginx -g nginx can be used for tests ... done.
11. Checking if euid 997(nginx) can find root processes ... ok.
12. Checking if euid 997(nginx) can access I/O counters for nginx ... ok.
13. Checking connectivity to the receiver ... ok.
14. Checking system time ... ok.
OK, everything went just fine!
第 3 步。 驗證代理狀態如下:
# ps ax | grep -i 'amplify-'
13536 ? S 0:01 amplify-agent
這些命令可用於啟動/停止代理。
# service amplify-agent start
# service amplify-agent stop
# service amplify-agent restart
您可以通過單擊主窗口右下角的“新建系統”選項向此代理添加新系統。 您可以按照相同的說明在那里安裝代理。
更新 Amplify 代理
我們需要定期檢查更新並安裝最新的穩定版代理。 你可以只用一個命令來做到這一點:
# yum makecache &&
yum update nginx-amplify-agent
配置代理
NGINX Amplify Agent 的配置文件位於/etc/amplify-agent/agent.conf
. 代理和正在運行的 NGINX 實例使用相同的用戶 ID 非常重要,以便代理能夠正確收集所有 NGINX 指標。 默認情況下,它將使用用戶 nginx 的用戶 ID 來設置其在設置期間自動創建的有效用戶 ID。 如果用戶指令出現在 NGINX 配置中,代理將選擇 NGINX 配置中指定的用戶作為其有效用戶 ID(例如 www-data)。
您甚至可以在 [nginx] 部分在這裡。
[nginx]
user =
configfile = /etc/nginx/nginx.conf
為 stub_status 或擴展狀態配置 URL
當代理髮現正在運行的 NGINX 實例時,它會自動從 NGINX 配置中檢測 stub_status 位置。 或者您可以使用 stub_status 配置選項覆蓋 stub_status URL,如下所示:
[nginx]
..
stub_status = https://127.0.0.1/nginx_status
配置系統日誌
代理可以通過 syslog 收集 NGINX 日誌文件。 當您不將 NGINX 日誌保留在磁盤上時,或者在使用 NGINX Amplify 監視容器環境(例如 Docker)時,這可能很有用。
要為 syslog 配置代理,請修改 /etc/amplify-agent/agent.conf 中的以下指令:
[listeners]
鍵 = syslog-default
[listener_syslog-default]
地址 = *// 指定 IP:端口 這裡就像這樣 127.0.0.1:12000 //*
重新啟動代理以重新加載配置並開始偵聽指定的 IP 地址和端口。 在默認安裝中,它從 Nginx 配置文件中收集所有日誌信息。
配置額外的 Nginx 指標
這可以收集許多額外的有用指標。 我會讓你知道啟用一些重要的指標來完成它的設置。 我們可以通過添加這些指標來添加更多預定義的圖表。 通過所需的日誌格式配置,您將能夠構建更具體的自定義圖表。 讓我們看看如何將一組擴展的 NGINX 變量添加到訪問日誌格式中。 您可以添加新的日誌格式或修改現有格式,並將其與 NGINX 配置中的 access_log 指令一起使用。 我已經通過以下更改修改了 NGINX 配置中的 access_log 指令。
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 /var/log/nginx/access.log main_ext;
現在您可以將 error.log 日誌級別設置為警告,如下所示:
error_log /var/log/nginx/error.log warn;
您可以使用 (kill -HUP `cat /var/run/nginx.pid`) 終止現有的 Nginx 進程並重新啟動或重新加載當前的 Nginx 配置(服務 nginx 重新加載)以保存這些更改。 您可以獲取有關列表的更多信息 附加指標 可以從此處的 NGINX 日誌文件中收集。
而已!! 我們已經成功安裝了 Amplify Agent 並配置了我們的服務器進行監控。 您可以在登錄到您的 Web 界面的 Web 界面中概覽我們監控的服務器 (104.237.159.96) 的狀態 擴大賬戶 如快照所示:
您可以瀏覽每個選項卡以獲取有關添加的服務器的所有信息。
卸載 Amplify Agent
我們可以使用以下步驟完全刪除以前監視的對象:
步驟1。 使用此命令卸載代理,如下所示:
#yum remove nginx-amplify-agent
第2步。 從 Web 界面刪除對象
從 Amplify Web 界面刪除服務器。 您可以在 Web 界面的 Inventory 中找到它,然後選擇 [i]
圖標。 您可以像這樣從接下來出現的彈出窗口中刪除所需的對象。
最後,檢查警報頁面並刪除/靜音為對象設置的不相關規則。
 結束
NGINX Amplify Agent 是一個強大的 NGINX 綜合監控工具。 我們可以主動分析和修復與基於 NGINX 的 Web 應用程序相關的問題。 它幫助我們跟踪運行 Nginx 的系統。 我們還可以將其用於以下目的:
- 通過智能建議和建議改進和優化 Nginx 性能
- 可視化和識別 Nginx 性能瓶頸、服務器過載或潛在的 DDoS 攻擊
- 規劃 Web 應用程序容量和性能