MRTG สถานะการทำงานของ Nginx เขียนเมื่อ 2010.09.08 โดย

การตรวจสอบสถานะการทำงานของ Nginx นั้นเราสามารถเรียกใช้งาน status ของ nginx ให้แสดงผลได้ซึ่งสถานะของการร้องขอ (Requests) และการติดต่อ (Connections) เท่านั้นโดยต้อง compile ด้วย --with-http_stub_status_module เพื่อให้สามารถเรียกใช้งานได้

จากนั้นก็เปิดใช้งานในส่วนของ server โดยใส่
server {
...
location /nginx_status {
stub_status on;
access_log off;
}
...
}

ทำการบันทึกแล้ว restart nginx แล้วลองเรียกใช้งานเช่น http://vhost/nginx_status ถ้าทุกอย่างถูกต้องจะมีการแสดงผลออกมาเช่น
Active connections: 37 
server accepts handled requests
1662938 1662938 7405032
Reading: 1 Writing: 2 Waiting: 10

ถ้าได้ตามนี้ถือว่าทุกอย่างใช้ได้แล้ว เราก็มาเขียน script เพื่อใช้ในการเก็บข้อมูลเพื่อส่งให้ MRTG ต่อไปในที่นี้ขอใช้ Perl แล้วกัน

#!/usr/bin/perl


$active = $waiting = 0;

@res = `/usr/bin/curl -s http://myvhost/nginx_status`;

foreach $res (@res) {
if ($res =~ /active connections:\s*(.*)/is){
$active = $1 * 1;
}

if ($res =~ /.*waiting:\s*(.*)/is){
$waiting = $1 * 1;
}
}
print "$active\n";
print "$waiting\n";

print "Nginx Stat";

โดย script นี้จะเก็บเฉพาะจำนวน Connections ที่ Active และ Wait ในขณะนั้นๆ เท่านั้นเพื่อตรวจสอบ load ของ nginx ของเรา โดยเราใช้ประโยชน์จาก curl (ถ้าชอบ lynx ก็สามารถเลือกใช้ได้เช่นกัน) ทำหน้าที่เป็นตัวเรียกสถานะจาก Nginx มาเท่านั้น จากนั้นทำการบันทึก (ในที่นี้ชื่อ nginx.pl) แล้วก็เปลี่ยนโหมดให้ทำงานได้ด้วย
chmod +x nginx.pl

จากนั้นเราก็เพิ่มในส่วนของ mrtg.cfg
# Nginx
Target[nginx]: `/path/to/nginx.pl`
Title[nginx]: Nginx connection
PNGTitle[nginx]: Nginx connections
MaxBytes[nginx]: 100000000
PageTop[nginx]: <H1>Nginx connections</H1>
YLegend[nginx]: Connections
LegendI[nginx]: Active
LegendO[nginx]: Wait
Legend1[nginx]: Active connections
Legend2[nginx]: Wait connections
Options[nginx]: nopercent,growright,nobanner,nolegend,noinfo,gauge,integer,transparent,perminute
ShortLegend[nginx]: c/s

จากนั้นทำการบันทึกแล้วสร้าง index ด้วย indexmaker เสียใหม่แล้วรอสักพักเราก็จะได้กราฟ MRTG ของ Nginx ได้แล้ว ส่วนถ้าต้องการเก็บสถานะอื่นๆ เช่น Requests ต่างๆ ก็เปลี่ยนได้ตามต้องการโดยเพียงเขียน Regular Expressions เสียใหม่เท่านั้น



คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย