NGINX Agent เป็น daemon ที่ใช้ร่วมกันสำหรับอินสแตนซ์ NGINX Open Source หรือ NGINX Plus ของคุณ ช่วยให้:
แดชบอร์ด Grafana แสดงตัวชี้วัดที่รายงานโดย NGINX Agent
NGINX Agent ทำงานเป็นกระบวนการร่วมบนระบบที่ใช้ NGINX มีอินเทอร์เฟซ gRPC และ REST สำหรับการจัดการการกำหนดค่าและการรวบรวมหน่วยเมตริกจากกระบวนการ NGINX และระบบปฏิบัติการ NGINX Agent ช่วยให้สามารถโต้ตอบระยะไกลกับ NGINX โดยใช้เครื่องมือ Linux ทั่วไป และปลดล็อกความสามารถในการสร้างระบบการตรวจสอบและควบคุมที่ซับซ้อนซึ่งสามารถจัดการคอลเลกชันอินสแตนซ์ NGINX จำนวนมากได้
ตัวแทน NGINX มีอินเทอร์เฟซ API สำหรับการส่งไฟล์การกำหนดค่าที่อัปเดต เมื่อได้รับไฟล์ใหม่ ระบบจะตรวจสอบเอาต์พุตของ nginx -V
เพื่อระบุตำแหน่งของการกำหนดค่าที่มีอยู่ จากนั้นจะตรวจสอบการกำหนดค่าใหม่ด้วย nginx -t
ก่อนที่จะนำไปใช้ผ่าน HUP สัญญาณกับกระบวนการหลัก NGINX
อินเทอร์เฟซ NGINX Agent พร้อมข้อมูลกระบวนการ NGINX และแยกวิเคราะห์บันทึก NGINX เพื่อคำนวณและรายงานตัวชี้วัด เมื่อเชื่อมต่อกับ NGINX Plus แล้ว NGINX Agent จะดึงข้อมูลที่เกี่ยวข้องจาก NGINX Plus API Prometheus อาจรวบรวมเมตริกที่รายงานและแสดงเป็นภาพด้วยเครื่องมืออย่าง Grafana
NGINX Agent เปิดการเชื่อมต่อกับ NGINX Plus API และการสืบค้นตามช่วงเวลาการรวบรวม การเชื่อมต่อนี้ได้รับการรายงานในหน่วยเมตริก และขึ้นอยู่กับระยะของการรายงาน การเชื่อมต่อนี้อาจแสดงเป็นไม่ได้ใช้งานหรือใช้งานอยู่
เมื่อทำงานควบคู่ไปกับอินสแตนซ์โอเพ่นซอร์สของ NGINX ตัวแทน NGINX ต้องการให้เปิดการเข้าถึง NGINX และบันทึกข้อผิดพลาดและมีตัวแปรเริ่มต้นทั้งหมด
เพื่อให้ NGINX Agent ทำงานได้อย่างถูกต้องกับอินสแตนซ์ NGINX Plus จะต้องกำหนดค่า API ใน nginx.conf ของอินสแตนซ์นั้น ดูภาพรวมเมตริกอินสแตนซ์สำหรับรายละเอียดเพิ่มเติม เมื่อกำหนดค่า NGINX Plus ด้วยตำแหน่งข้อมูล /api/
แล้ว NGINX Agent จะใช้จุดสิ้นสุดดังกล่าวโดยอัตโนมัติเมื่อเริ่มต้นระบบ
ตัวแทน NGINX อนุญาตให้ระบบควบคุมที่เชื่อมต่อ gRPC ลงทะเบียนผู้ฟังสำหรับเหตุการณ์เฉพาะ จากนั้นกลไกการควบคุมจะถูกเรียกใช้เมื่อ NGINX Agent ส่งสัญญาณระบบที่เกี่ยวข้อง แหล่งที่มาของการแจ้งเตือนอาจเป็นได้ทั้งอินสแตนซ์ NGINX หรือตัวแทน NGINX เอง นี่คือรายการกิจกรรมที่รองรับในปัจจุบัน:
เหตุการณ์ | คำอธิบาย |
---|---|
ตัวแทน_START_MESSAGE | กระบวนการตัวแทน NGINX เริ่มต้นขึ้น |
ตัวแทน_STOP_MESSAGE | กระบวนการตัวแทน NGINX หยุดทำงาน |
NGINX_FOUND_MESSAGE | ตรวจพบกระบวนการหลัก NGINX บนระบบ |
NGINX_STOP_MESSAGE | กระบวนการหลักของ NGINX หยุดทำงาน |
NGINX_RELOAD_SUCCESS_MESSAGE | โหลดกระบวนการหลัก NGINX สำเร็จแล้ว |
NGINX_RELOAD_FAILED_MESSAGE | กระบวนการหลัก NGINX ไม่สามารถโหลดซ้ำได้ |
NGINX_WORKER_START_MESSAGE | กระบวนการของผู้ปฏิบัติงาน NGINX ใหม่เริ่มต้นขึ้น |
NGINX_WORKER_STOP_MESSAGE | กระบวนการของผู้ปฏิบัติงาน NGINX หยุดทำงาน |
CONFIG_APPLY_SUCCESS_MESSAGE | ใช้การกำหนดค่า NGINX ใหม่สำเร็จแล้ว |
CONFIG_APPLY_FAILURE_MESSAGE | ล้มเหลวในการใช้การกำหนดค่า NGINX ใหม่ |
CONFIG_ROLLBACK_SUCCESS_MESSAGE | ย้อนกลับการกำหนดค่า NGINX สำเร็จแล้ว |
CONFIG_ROLLBACK_FAILURE_MESSAGE | ไม่สามารถย้อนกลับการกำหนดค่า NGINX |
อินเทอร์เฟซ NGINX Agent โดยตรงกับกระบวนการเซิร์ฟเวอร์ NGINX ที่ติดตั้งบนระบบเดียวกัน หากคุณยังไม่มี ให้ทำตามขั้นตอนเหล่านี้เพื่อติดตั้ง NGINX Open Source หรือ NGINX Plus เมื่อติดตั้งแล้ว ตรวจสอบให้แน่ใจว่าอินสแตนซ์ NGINX กำลังทำงานอยู่
หากต้องการติดตั้ง NGINX Agent บนระบบของคุณ ให้ไปที่รุ่นต่างๆ และดาวน์โหลดแพ็คเกจล่าสุดที่รองรับโดยการกระจายระบบปฏิบัติการและสถาปัตยกรรม CPU ของคุณ
ใช้ตัวจัดการแพ็คเกจของระบบของคุณเพื่อติดตั้งแพ็คเกจ ตัวอย่างบางส่วน:
Debian, Ubuntu และการกระจายอื่นๆ โดยใช้ตัวจัดการแพ็คเกจ dpkg
sudo dpkg -i nginx-agent-<agent-version>.deb
RHEL, CentOS RHEL, Amazon Linux, Oracle Linux และการกระจายอื่นๆ โดยใช้ตัวจัดการแพ็คเกจ yum
sudo yum localinstall nginx-agent-<agent-version>.rpm
RHEL และการแจกแจงอื่น ๆ โดยใช้ตัวจัดการแพ็คเกจ rpm
sudo rpm -i nginx-agent-<agent-version>.rpm
อัลไพน์ลินุกซ์
sudo apk add nginx-agent-<agent-version>.apk
ฟรีBSD
sudo pkg add nginx-agent-<agent-version>.pkg
หากต้องการสตาร์ท NGINX Agent บนระบบ systemd ให้รันคำสั่งต่อไปนี้:
sudo systemctl start nginx-agent
หากต้องการเปิดใช้งาน NGINX Agent ให้เริ่มทำงานขณะบู๊ต ให้รันคำสั่งต่อไปนี้:
sudo systemctl enable nginx-agent
บน Alpine Linux ให้ใช้คำสั่งต่อไปนี้เพื่อสตาร์ทเอเจนต์:
sudo service nginx-agent start
หากต้องการเปิดใช้งานเอเจนต์ให้เริ่มทำงานในเวลาบูตบน Alpine Linux ให้รันสิ่งนี้:
sudo rc-update add nginx-agent default
ตัวแทน NGINX ใช้ไฟล์บันทึกที่จัดรูปแบบเพื่อรวบรวมตัวชี้วัด การขยายรูปแบบบันทึกและจำนวนอินสแตนซ์จะเพิ่มขนาดของไฟล์บันทึก NGINX Agent ด้วย เราขอแนะนำให้เพิ่มพาร์ติชันแยกต่างหากสำหรับ /var/log/nginx-agent
หากไม่มีการหมุนเวียนบันทึกหรือการจัดเก็บบนพาร์ติชันแยกต่างหาก ไฟล์บันทึกอาจใช้พื้นที่ว่างในไดรฟ์ทั้งหมด และทำให้ระบบของคุณไม่ตอบสนองต่อบริการบางอย่าง
ตามค่าเริ่มต้น NGINX Agent จะหมุนเวียนบันทึกทุกวันโดยใช้ logrotate โดยมีการกำหนดค่าต่อไปนี้:
/var/log/nginx-agent/*.log
{
# log files are rotated every day
daily
# log files are rotated if they grow bigger than 5M
size 5M
# truncate the original log file after creating a copy
copytruncate
# remove rotated logs older than 10 days
maxage 10
# log files are rotated 10 times before being removed
rotate 10
# old log files are compressed
compress
# if the log file is missing it will go on to the next one without issuing an error message
missingok
# do not rotate the log if it is empty
notifempty
}
หากคุณต้องการเปลี่ยนแปลงการกำหนดค่าเริ่มต้น คุณสามารถอัปเดตไฟล์ได้ที่นี่ /etc/logrotate.d/nginx-agent
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่า logrotate โปรดดูตัวเลือกการกำหนดค่า Logrotate
หากต้องการสร้างอิมเมจที่มี NGINX Agent ล่าสุด NGINX OSS เวอร์ชันเมนไลน์ล่าสุดบน Alpine ล่าสุดให้รันคำสั่งต่อไปนี้:
make official-oss-image
หากต้องการสร้างอิมเมจที่มี NGINX Agent ล่าสุด NGINX OSS เวอร์ชันเสถียรล่าสุดบน Alpine ล่าสุดให้รันคำสั่งต่อไปนี้:
make official-oss-stable-image
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเรียกใช้คอนเทนเนอร์ NGINX Agent และวิธีการสร้างอิมเมจที่ใช้ NGINX Plus แทน NGINX OSS โปรดดูที่ Docker Images
ทำตามขั้นตอนเหล่านี้เพื่อกำหนดค่าและเรียกใช้ NGINX Agent และอินเทอร์เฟซจำลอง ("ระนาบควบคุม") ที่ NGINX Agent จะรายงาน
ทำตามขั้นตอนในส่วนการติดตั้งเพื่อดาวน์โหลด ติดตั้ง และเรียกใช้ NGINX
ใช้วิธีการที่คุณต้องการโคลนพื้นที่เก็บข้อมูล NGINX Agent ลงในไดเร็กทอรีการพัฒนาของคุณ ดูการโคลนพื้นที่เก็บข้อมูล GitHub สำหรับความช่วยเหลือเพิ่มเติม
NGINX Agent และ Mock Control Plane เขียนในภาษา Go ต้องใช้ Go 1.23 หรือสูงกว่าเพื่อสร้างและเรียกใช้แอปพลิเคชันใดแอปพลิเคชันหนึ่งจากไดเร็กทอรีซอร์สโค้ด คุณสามารถดาวน์โหลด Go ได้จากเว็บไซต์อย่างเป็นทางการ
เริ่มต้นระนาบควบคุมจำลองโดยการรันคำสั่งต่อไปนี้จากไดเร็กทอรีรากของซอร์สโค้ด agent
:
go run sdk/examples/server.go
# Command Output
INFO[0000] http listening at 54790 # mock control plane port
INFO[0000] gRPC listening at 54789 # gRPC control plane port which NGINX Agent will report to
หากไม่มีอยู่ ให้สร้างไดเร็กทอรี /etc/nginx-agent/
และคัดลอกไฟล์ nginx-agent.conf
ลงในไดเร็กทอรีรากของโปรเจ็กต์
sudo mkdir /etc/nginx-agent
sudo cp <project_root_directory>/nginx-agent.conf /etc/nginx-agent/
สร้างไฟล์ agent-dynamic.conf
ในไดเร็กทอรี /etc/nginx-agent/
ซึ่งจำเป็นสำหรับ NGINX Agent ในการรัน
sudo touch /var/lib/nginx-agent/agent-dynamic.conf
เพิ่มการตั้งค่าต่อไปนี้ใน /etc/nginx-agent/nginx-agent.conf
:
server :
host : 127.0.0.1 # mock control plane host
grpcPort : 54789 # mock control plane gRPC port
# gRPC TLS options - DISABLING TLS IS NOT RECOMMENDED FOR PRODUCTION
tls :
enable : false
skip_verify : true
สำหรับข้อมูลเพิ่มเติม โปรดดูที่ คำจำกัดความและเอกสารคู่มือโปรโตคอลเอเจนต์
อินเทอร์เฟซ NGINX Agent REST สามารถเปิดเผยได้โดยการตรวจสอบบรรทัดต่อไปนี้ในไฟล์ /etc/nginx-agent/nginx-agent.conf
ที่มีอยู่:
api :
# Set API address to allow remote management
host : 127.0.0.1
# Set this value to a secure port number to prevent information leaks
port : 8038
# REST TLS parameters
cert : " <TLS-CERTIFICATE>.crt "
key : " <PRIVATE-KEY>.key "
ระนาบควบคุมจำลองสามารถใช้โปรโตคอล gRPC หรือ REST เพื่อสื่อสารกับ NGINX Agent
Swagger UI จำเป็นต้องติดตั้ง goswagger ดูคำแนะนำในการติดตั้ง goswagger สำหรับความช่วยเหลือเพิ่มเติม
หากต้องการเปิดใช้งาน Swagger UI สำหรับอินเทอร์เฟซ REST ให้รันคำสั่งต่อไปนี้
make launch-swagger-ui
เปิดเว็บเบราว์เซอร์เพื่อดู Swagger UI ที่ http://localhost:8082/docs
ส่วนขยายเป็นส่วนหนึ่งของโค้ด ซึ่งไม่สำคัญต่อฟังก์ชันการทำงานหลักที่ตัวแทน NGINX รับผิดชอบ โดยทั่วไปสิ่งนี้อยู่นอกขอบเขตการจัดการการกำหนดค่า NGINX และการรายงานตัววัด NGINX
หากต้องการเปิดใช้งานส่วนขยาย จะต้องเพิ่มลงในรายการส่วนขยายใน /etc/nginx-agent/nginx-agent.conf
นี่คือตัวอย่างการเปิดใช้งานส่วนขยายเมตริกขั้นสูง:
extensions :
- advanced-metrics
หากทำงานอยู่แล้ว ให้รีสตาร์ท NGINX Agent เพื่อใช้การกำหนดค่าใหม่ หรือหาก NGINX Agent ไม่ได้ทำงานอยู่ คุณสามารถเรียกใช้ได้จากไดเรกทอรีรากของซอร์สโค้ด
เปิดหน้าต่างเทอร์มินัลอื่นแล้วเริ่ม NGINX Agent ออกคำสั่งต่อไปนี้จากไดเร็กทอรีรูทซอร์สโค้ดของ agent
sudo make run
# Command Output snippet
WARN[0000] Log level is info
INFO[0000] setting displayName to XXX
INFO[0000] NGINX Agent at with pid 12345, clientID=XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX name=XXX
INFO[0000] NginxBinary initializing
INFO[0000] Commander initializing
INFO[0000] Comms initializing
INFO[0000] OneTimeRegistration initializing
INFO[0000] Registering XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
INFO[0000] Metrics initializing
INFO[0000] MetricsThrottle initializing
INFO[0000] DataPlaneStatus initializing
INFO[0000] MetricsThrottle waiting for report ready
INFO[0000] Metrics waiting for handshake to be completed
INFO[0000] ProcessWatcher initializing
INFO[0000] Extensions initializing
INFO[0000] FileWatcher initializing
INFO[0000] FileWatchThrottle initializing
INFO[0001] Events initializing
INFO[0001] OneTimeRegistration completed
เปิดเว็บเบราว์เซอร์เพื่อดูระนาบควบคุมจำลองที่ http://localhost:54790 ลิงค์ต่อไปนี้จะแสดงในเว็บอินเตอร์เฟส:
หากต้องการกรณีการใช้งาน NGINX Agent เพิ่มเติม โปรดดูที่ https://github.com/nginx/agent/tree/main/sdk/examples
แม้ว่าระบบปฏิบัติการ Linux หรือ FreeBSD ส่วนใหญ่สามารถใช้เพื่อสนับสนุนโปรเจ็กต์ NGINX Agent ได้ แต่ขั้นตอนต่อไปนี้ได้รับการออกแบบสำหรับ Ubuntu Ubuntu มาพร้อมกับไลบรารีส่วนใหญ่ที่จำเป็นสำหรับการสร้างและเรียกใช้ NGINX Agent และเป็นแพลตฟอร์มที่แนะนำสำหรับการพัฒนา NGINX Agent
ทำตามขั้นตอนในส่วนการติดตั้งเพื่อดาวน์โหลดและติดตั้ง NGINX เมื่อติดตั้งแล้ว ให้ตรวจสอบว่าอินสแตนซ์ NGINX กำลังทำงานอยู่
ทำตามขั้นตอนในส่วนการเริ่มต้นใช้งาน NGINX Agent เพื่อโคลน NGINX Agent Repository
อาจจำเป็นต้องติดตั้งแพ็คเกจต่อไปนี้เพื่อสร้าง NGINX Agent ทั้งนี้ขึ้นอยู่กับการกระจายระบบปฏิบัติการ
เปลี่ยนเป็นไดเร็กทอรีต้นทางของ NGINX Agent:
cd <path_to_development_directory>/agent
ติดตั้งยี่ห้อ:
sudo apt install make
ตัวแทน NGINX เขียนในภาษา Go คุณสามารถดาวน์โหลด Go และปฏิบัติตามคำแนะนำในการติดตั้งในหน้าเดียวกันหรือเรียกใช้:
sudo apt install golang-go
ติดตั้งโปรโตคอล:
sudo apt install -y protobuf-compiler
ติดตั้งเครื่องมือ NGINX Agent และการอ้างอิง:
ก่อนที่จะเริ่มการพัฒนาบน NGINX Agent สิ่งสำคัญคือต้องดาวน์โหลดและติดตั้งเครื่องมือที่จำเป็นและการขึ้นต่อกันที่ NGINX Agent ต้องการ คุณสามารถทำได้โดยการรันคำสั่ง make
ต่อไปนี้:
make install-tools
รันคำสั่งต่อไปนี้เพื่อสร้างและรัน NGINX Agent:
make build
sudo make run
NGINX Agent สามารถทำงานได้ในสภาพแวดล้อมส่วนใหญ่ สำหรับรายการการแจกแจงที่รองรับ โปรดดูคู่มือข้อกำหนดทางเทคนิคของ NGINX
NGINX Agent สามารถใช้งานได้ในสภาพแวดล้อมต่อไปนี้:
NGINX Agent ทำงานร่วมกับ NGINX Open Source และ NGINX Plus เวอร์ชันที่รองรับทั้งหมด
คำแนะนำเกี่ยวกับขนาดระบบขั้นต่ำสำหรับ NGINX Agent:
ซีพียู | หน่วยความจำ | เครือข่าย | พื้นที่จัดเก็บ |
---|---|---|---|
ซีพียู 1 คอร์ | แรม 1GB | 1 GbE นิค | 20 กิกะไบต์ |
ช่อง Slack ของเรา #nginx-agent เป็นช่องทางในการเริ่มถามคำถามและแบ่งปันความคิดของคุณ
หน้าปัญหา GitHub ของเรามีพื้นที่สำหรับการอภิปรายทางเทคนิคเพิ่มเติมตามที่คุณต้องการ
มีส่วนร่วมกับโครงการโดยมีส่วนร่วม! โปรดดูคู่มือการมีส่วนร่วมของเราสำหรับรายละเอียด
ดูหน้าเผยแพร่ของเราเพื่อติดตามการอัปเดต
ใบอนุญาต Apache เวอร์ชัน 2.0