จากนั้นก็เปิดใช้งานในส่วนของ 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 เสียใหม่เท่านั้น