X
Change of support channel during COVID-19

ในบทความนี้เราจะสอนวิธีการติดตั้ง Netdata สำหรับใช้ในการ Monitor Nginx เพื่อเป็นข้อมูลในการนำมาปรับประสิทธิภาพของ Nginx ให้ทำงานได้ดีขึ้น

Netdata เป็นระบบตรวจสอบโอเพนซอร์สสำหรับเซิร์ฟเวอร์ Linux ซึ่งทำงานแบบ real time ใช้งานง่าย สามารถตรวจสอบการใช้งานของ CPU, Memory, IPv4/IPv6 networks และ applications เช่น Nginx, fail2ban, MySQL, MongoDB เป็นต้น ทั้งนี้ยังติดตั้งได้หลายระบบปฏิบัติการ

ระบบปฏิบัติการที่สามารถติดตั้ง Netdata

  • Alpine Linux
  • Arch Linux
  • CentOS
  • Debian Linux
  • Fedora
  • Gentoo Linux
  • PLD Linux
  • RedHat Enterprise Linux
  • OpenSUSE
  • Solus Linux
  • Ubuntu Linux >= 18.04

ขั้นตอนการติดตั้ง Netdata

เราจะมาติดตั้งบนระบบ CentOS 7 ซึ่งได้ติดตั้ง Nginx ไว้เรียบร้อยแล้ว

ขั้นตอนที่ 1 : ตรวจสอบว่ามีการติดตั้ง stub_status module ไว้แล้ว

# nginx -V 2>&1 | grep -o with-http_stub_status_module

ขั้นตอนที่ 2 : Config Nginx เพื่อ enable  stub_status module ที่ไฟล์ nginx.conf ใน Path : /etc/nginx/ (แนะนำให้ backup ไฟล์ nginx.conf ไว้ก่อนดำเนินการแก้ไข)

# cd /etc/nginx/
# vi nginx.conf

วางไฟล์ด้านล่างนี้ไว้ใน server {}

location /stub_status {
     stub_status;
     # Security: Only allow access from the IP below.
     allow 127.0.0.1;
     # Deny anyone else
     deny all;
 }

ตรวจสอบการตั้งค่า

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

ทำการ restart Nginx และทดสอบเรียก stub_status module

# systemctl restart nginx
# curl http://127.0.0.1/stub_status
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0

ขั้นตอนที่ 3 : ติดตั้ง Netdata

ก่อนดำเนินการติดตั้ง Netdata เราจะต้องติดตั้งแพ็กเกจสำหรับ Netdata โดย yum ตามด้างล่างนี้

# yum -y install zlib-devel libuuid-devel libmnl-devel gcc make git 
autoconf autogen automake pkgconfig curl jq nodejs

จากนั้นดาวน์โหลด Netdata และทำการติดตั้ง เมื่อพบข้อความ “Press ENTER to build and install netdata to your system” ให้ทำการ ENTER และรอการติดตั้ง

# git clone https://github.com/firehol/netdata.git --depth=1
# cd netdata/
# ./netdata-installer.sh 

  ^
  |.-.   .-.   .-.   .-.   .  netdata                                        
  |   '-'   '-'   '-'   '-'   real-time performance monitoring, done right!  
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->


  You are about to build and install netdata to your system.

  It will be installed at these locations:

   - the daemon     at /usr/sbin/netdata
   - config files   in /etc/netdata
   - web files      in /usr/share/netdata
   - plugins        in /usr/libexec/netdata
   - cache files    in /var/cache/netdata
   - db files       in /var/lib/netdata
   - log files      in /var/log/netdata
   - pid file       at /var/run/netdata.pid
   - logrotate file at /etc/logrotate.d/netdata

  This installer allows you to change the installation path.
  Press Control-C and run the same command with --help for help.

Press ENTER to build and install netdata to your system > >> ENTER 
และรอจนติดตั้งเรียบร้อย จะขึ้นแจ้งตามด้านล่าง

เมื่อ Netdata ติดตั้งเรียบร้อยแล้ว จะแสดงรายละเอียดดังนี้

netdata by default listens on all IPs on port 19999,
so you can access it with:

  http://this.machine.ip:19999/

To stop netdata run:

  systemctl stop netdata

To start netdata run:

  systemctl start netdata


Uninstall script generated: ./netdata-uninstaller.sh
Update script generated   : ./netdata-updater.sh

netdata-updater.sh can work from cron. It will trigger an email from cron
only if it fails (it does not print anything when it can update netdata).
Run this to automatically check and install netdata updates once per day:

sudo ln -s /root/netdata/netdata-updater.sh /etc/cron.daily/netdata-updater

 --- We are done! --- 

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'  
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...

*** หากมีการติดตั้ง Firewall ไว้ ให้ทำการเปิด Port 19999

ทำการ restart และ enable netdata

# systemctl restart netdata
# systemctl enable netdata

ตรวจสอบ Port 19999 ว่าเปิดเรียบร้อยแล้ว

# netstat -plntu

ขั้นตอนที่ 4 : ตรวจสอบการเชื่อมต่อระหว่าง Nginx กับ Netdata

ที่ไฟล์ /etc/netdata/python.d/nginx.conf ตรวจสอบว่ามีค่าตามข้างล่างนี้แล้วหรือไม่

localhost:
  name : 'local'
  url  : 'http://localhost/stub_status'

ทำการ restart netdata

# systemctl restart netdata

ขั้นตอนที่ 5 : การเข้าใช้งาน Netdata

เข้าใช้งาน Netdata ด้วย URL : http://[IP address of your server]:19999/

เมื่อเรียก URL สมบูรณ์จะพบหน้า Dashboard ของ Netdata

ตรวจสอบการใช้งานของ Nginx ได้ที่เมนูทางขวามือ “nginx local”

ตรวจสอบการใช้งานของ Memory

ตรวจสอบการใช้งานของ IPv4 networks

ทาง HostPacific หวังว่า NetData จะเป็น Monitoring ที่จะช่วยตรวจสอบ server ของท่าน เพื่อเป็นแนวทางในการปรับประสิทธิภาพของ server ท่านได้