ค้นหาเว็บไซต์

วิธีตรวจสอบประสิทธิภาพของ Ubuntu โดยใช้ Netdata


Netdata เป็นเครื่องมือตรวจสอบและแก้ไขปัญหาแบบเรียลไทม์แบบโอเพนซอร์สฟรีสำหรับเซิร์ฟเวอร์ระบบคลาวด์ คอนเทนเนอร์ แอปพลิเคชัน และโครงสร้างพื้นฐานด้านไอทีในองค์กร โดยให้ตัวชี้วัดระบบแบบเรียลไทม์และละเอียดสูง เช่น ประสิทธิภาพของ CPU, การใช้งาน RAM และดิสก์ และสถิติแบนด์วิธ และอื่นๆ อีกมากมาย

นอกจากนี้ Netdata ยังมีการแสดงภาพข้อมูลเมตริกเชิงโต้ตอบที่สามารถเข้าถึงได้บนเว็บเบราว์เซอร์ พร้อมด้วยสัญญาณเตือนอัจฉริยะที่ช่วยในการแก้ไขปัญหาข้อผิดพลาดของระบบ

เทคโนโลยีล้ำหน้าและความนิยมของ Netdata ทำให้มีตำแหน่งใน Forbes cloud 100 ดาวรุ่งในปี 2020 ซึ่งไม่ได้หมายความว่าแย่เลย ที่จริงแล้ว ในขณะที่เขียนคู่มือนี้ ได้รับดาว Github เกือบ 50,000 ดวง

มีสองวิธีที่คุณสามารถใช้ติดตั้ง Netdata คุณสามารถรันสคริปต์อัตโนมัติบน BASH เชลล์ได้ทันที นี่เป็นการอัปเดตระบบของคุณและเริ่มการติดตั้ง Netdata หรือคุณสามารถโคลนพื้นที่เก็บข้อมูล Git ของ Netdata แล้วจึงรันสคริปต์อัตโนมัติหลังจากนั้น วิธีแรกนั้นเรียบง่ายและตรงไปตรงมา และนี่คือสิ่งที่เราจะเน้นในคู่มือนี้

ในบทความนี้ เราจะมาดูกันว่าคุณสามารถติดตั้ง Netdata บน Ubuntu เพื่อตรวจสอบแบบเรียลไทม์ ประสิทธิภาพ และการตรวจสอบสถานะของเซิร์ฟเวอร์และแอปพลิเคชันได้อย่างไร

แพลตฟอร์มที่รองรับ

Netdata รองรับการแจกแจง Ubuntu LTS ต่อไปนี้:

  • อูบุนตู 20.04
  • อูบุนตู 18.04
  • อูบุนตู 16.04

วิธีการติดตั้ง Netdata ใน Ubuntu Linux

เพื่อเริ่มการติดตั้ง ให้รันคำสั่งด้านล่างบนเทอร์มินัล bash ของคุณเพื่อดาวน์โหลดและรันสคริปต์

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

ในระหว่างการดำเนินการสคริปต์ สิ่งต่อไปนี้จะเกิดขึ้น:

  • สคริปต์จะค้นหาการกระจาย Linux ของคุณโดยอัตโนมัติ อัปเดตรายการแพ็คเกจ และติดตั้งแพ็คเกจซอฟต์แวร์ที่จำเป็นทั้งหมด
  • แผนผังแหล่งที่มา netdata ล่าสุดจะถูกดาวน์โหลดไปยังเส้นทาง /usr/src/netdata.git
  • สคริปต์จะติดตั้ง netdata โดยการเรียกใช้สคริปต์ ./netdata-installer.sh จากแผนผังต้นทาง
  • มีการอัปเดตเป็น cron.daily เพื่อให้แน่ใจว่า netdata ได้รับการอัปเดตทุกวัน

ขณะที่สคริปต์ทำงาน คุณจะได้รับคำแนะนำในการเข้าถึง Netdata บนเบราว์เซอร์ และวิธีการจัดการเป็นบริการ systemd

การติดตั้งจะใช้เวลาสักครู่ ดังนั้น ให้เวลาประมาณ 10 นาทีแล้วจึงกลับมาใหม่ ในที่สุด คุณจะได้ผลลัพธ์ด้านล่างเมื่อสคริปต์เสร็จสิ้นการติดตั้ง

เมื่อติดตั้งแล้ว ให้เริ่มต้น เปิดใช้งาน และตรวจสอบสถานะของ Netdata ดังที่แสดง

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata

ตามค่าเริ่มต้น Netdata จะรับฟังพอร์ต 19999 และสามารถยืนยันได้โดยใช้คำสั่ง netstat ดังที่แสดง

sudo netstat -pnltu | grep netdata

หากคุณใช้งาน UFW ให้พยายามเปิดพอร์ต 19999 เนื่องจากจำเป็นเมื่อเข้าถึง Netdata บนเบราว์เซอร์

sudo ufw allow 19999/tcp
sudo ufw reload

สุดท้าย หากต้องการเข้าถึง Netdata ให้สลับไปที่เบราว์เซอร์ของคุณและเรียกดู URL ต่อไปนี้

http://server-ip:19999/

นี่คือสิ่งที่ทักทายคุณเมื่อคุณเรียกดู URL ในความเป็นจริง คุณจะรู้ว่าคุณไม่จำเป็นต้องเข้าสู่ระบบ ตัวชี้วัดทั้งหมดของระบบจะแสดงดังที่แสดง

คุณสามารถพลิกดูกราฟต่างๆ ได้โดยการคลิกตัวชี้วัดที่คุณต้องการบนแถบด้านข้างขวาของแดชบอร์ด ตัวอย่างเช่น หากต้องการตรวจสอบสถิติอินเทอร์เฟซเครือข่าย ให้คลิกที่ตัวเลือก 'อินเทอร์เฟซเครือข่าย'

การรักษาความปลอดภัย Netdata ด้วยการตรวจสอบสิทธิ์ขั้นพื้นฐานบน Ubuntu

จนถึงจุดนี้ ทุกคนสามารถเข้าถึงแดชบอร์ด Netdata และดูเมตริกระบบต่างๆ ได้ ซึ่งถือเป็นการละเมิดความปลอดภัย และเราต้องการหลีกเลี่ยงสิ่งนี้อย่างแน่นอน

ด้วยเหตุนี้ เราจะกำหนดค่าการตรวจสอบสิทธิ์ HTTP ขั้นพื้นฐาน เราจำเป็นต้องติดตั้งแพ็คเกจ apache2-utils ที่ให้โปรแกรม htpasswd ซึ่งจะใช้ในการกำหนดค่าชื่อผู้ใช้และรหัสผ่านของผู้ใช้ นอกจากนี้ เราจะติดตั้งเว็บเซิร์ฟเวอร์ Nginx จะทำหน้าที่เป็นพร็อกซีย้อนกลับ

หากต้องการติดตั้งเว็บเซิร์ฟเวอร์ Nginx และแพ็คเกจ apache2-utils ให้ดำเนินการคำสั่ง


sudo apt install nginx apache2-utils

เมื่อติดตั้ง Nginx และ apache2-utils แล้ว เราจะสร้างไฟล์การกำหนดค่าภายในไดเร็กทอรี /etc/nginx/conf.d อย่างไรก็ตาม คุณสามารถใช้ไดเรกทอรี sites-available ได้ หากคุณใช้ Nginx เพื่อวัตถุประสงค์อื่นนอกเหนือจาก Netdata


sudo vim /etc/nginx/conf.d/default.conf

ภายในไฟล์การกำหนดค่า ก่อนอื่นเราจะสั่ง Nginx ให้กับคำขอขาเข้าของพร็อกซีสำหรับแดชบอร์ด Netdata หลังจากนั้น เราจะเพิ่มพรอมต์การตรวจสอบสิทธิ์พื้นฐานบางส่วนที่ให้สิทธิ์เฉพาะผู้ใช้ที่ได้รับอนุญาตในการเข้าถึงแดชบอร์ด Netdata โดยใช้การตรวจสอบสิทธิ์ชื่อผู้ใช้/รหัสผ่าน

นี่คือการกำหนดค่าทั้งหมด โปรดอย่าลืมแทนที่คำสั่ง server_ip และ example.com ด้วยที่อยู่ IP ของเซิร์ฟเวอร์และชื่อเซิร์ฟเวอร์ของคุณเอง


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

มาทำความเข้าใจการกำหนดค่ากันทีละส่วน

ส่วนที่ 1:


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

เราได้ระบุโมดูล อัปสตรีม ชื่อ netdata-backend ที่อ้างอิงถึงเว็บเซิร์ฟเวอร์ในตัวของ Netdata โดยใช้ที่อยู่ loopback 127.0.0.1< และพอร์ต 19999 ซึ่งเป็นพอร์ตเริ่มต้นที่ Netdata รับฟัง คำสั่ง keepalive กำหนดจำนวนการเชื่อมต่อที่ไม่ได้ใช้งานสูงสุดที่สามารถเปิดต่อไปได้

ส่วนที่ 2:


server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

นี่คือส่วนบล็อกเซิร์ฟเวอร์หลักของ Nginx บรรทัดแรกระบุที่อยู่ IP ภายนอกที่ Nginx ควรรับฟังเมื่อไคลเอนต์ส่งคำขอ คำสั่ง server_name ระบุชื่อโดเมนของเซิร์ฟเวอร์และสั่งให้ Nginx เรียกใช้บล็อกเซิร์ฟเวอร์เมื่อไคลเอ็นต์เรียกใช้ชื่อโดเมนแทนที่อยู่ IP ภายนอก

สองบรรทัดสุดท้ายระบุการตรวจสอบสิทธิ์ HTTP แบบง่ายที่กำหนดให้ผู้ใช้ลงชื่อเข้าใช้ด้วยชื่อผู้ใช้และรหัสผ่าน โมดูล auth_basic จะทริกเกอร์ป๊อปอัปชื่อผู้ใช้/รหัสผ่านบนเบราว์เซอร์โดยมีข้อความ “ต้องมีการตรวจสอบสิทธิ์” บนชื่อ ซึ่งสามารถปรับแต่งให้เหมาะกับความต้องการของคุณได้ในภายหลัง

โมดูล auth_basic_user_file ชี้ไปที่ชื่อไฟล์ที่จะมีชื่อผู้ใช้และรหัสผ่านของผู้ใช้ที่ได้รับอนุญาตให้เข้าถึงแดชบอร์ดของ Netdata - ในกรณีนี้คือการเข้าถึง netdata เราจะสร้างไฟล์นี้ในภายหลัง

ส่วนที่ 3:

ส่วนสุดท้ายคือบล็อก ตำแหน่ง ซึ่งอยู่ภายในบล็อกเซิร์ฟเวอร์ สิ่งนี้จะจัดการการพร็อกซีและการส่งต่อคำขอขาเข้าไปยังเว็บเซิร์ฟเวอร์ Nginx


location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }

สำหรับการตรวจสอบสิทธิ์ เราจะสร้างชื่อผู้ใช้และรหัสผ่านสำหรับผู้ใช้ชื่อ tecmint โดยใช้ยูทิลิตี htpasswd และจัดเก็บข้อมูลประจำตัวไว้ในไฟล์ netdata-access .


sudo htpasswd -c /etc/nginx/netdata-access tecmint

ระบุรหัสผ่านและยืนยัน

จากนั้นรีสตาร์ทเว็บเซิร์ฟเวอร์ Nginx เพื่อให้การเปลี่ยนแปลงมีผล


sudo systemctl restart nginx

หากต้องการทดสอบว่าการกำหนดค่าถูกต้องหรือไม่ ให้ดำเนินการต่อและเรียกดูที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ


http://server-ip

ป๊อปอัปการรับรองความถูกต้องจะปรากฏขึ้นดังที่แสดงด้านล่าง ระบุชื่อผู้ใช้และรหัสผ่านของคุณแล้วกด ENTER

หลังจากนั้น คุณจะสามารถเข้าถึงแดชบอร์ด Netdata ได้

สิ่งนี้นำเรามาถึงจุดสิ้นสุดของหัวข้อของเราสำหรับวันนี้ คุณเพิ่งเรียนรู้วิธีติดตั้งเครื่องมือตรวจสอบ Netdata และการกำหนดค่าการตรวจสอบสิทธิ์ HTTP พื้นฐานบน Ubuntu อย่าลังเลที่จะตรวจสอบกราฟอื่นๆ บนตัวชี้วัดระบบต่างๆ