สำนักวิทยบริการและเทคโนโลยีสารสนเทศ (สวส.)

Office of Academic Resources and Information Technology

สร้างกราฟ Multi CPU Load บน Cacti

- ทดสอบบน Ubuntu 14.04 LTS
- MySQL-Server, Apache2, PHP5, phpMyAdmin
- ทดสอบบน Windows 7 CPU 4Core RAM 12 G

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

ลำดับขั้นตอน
1. สร้างและทดสอบเขียน script php
2. สร้าง data input
3. สร้าง data template
4. สร้าง graph template
5. เพิ่ม graph template ให้ device
6. สร้าง graph จาก template


1. สร้างและทดสอบเขียน script php
- ทดสอบ snmpwalk แสดงค่า total CPU

Check total cpu
snmpwalk -v 2c -c COMMUNITY x.x.x.x -On .1.3.6.1.2.1.25.3.3.1.1

Check cpu usage
snmpwalk -v 2c -c COMMUNITY x.x.x.x -On .1.3.6.1.2.1.25.3.3.1.2

#snmpwalk -v 2c -c cacti 172.26.0.99 -On .1.3.6.1.2.1.25.3.3.1.2

.1.3.6.1.2.1.25.3.3.1.2.9 = INTEGER: 29
.1.3.6.1.2.1.25.3.3.1.2.10 = INTEGER: 29
.1.3.6.1.2.1.25.3.3.1.2.11 = INTEGER: 37
.1.3.6.1.2.1.25.3.3.1.2.12 = INTEGER: 29

- สร้างไฟล์ /usr/share/cacti/site/scripts/multicpuload.php โดยมีข้อความดังนี้
<?php
$host = $argv[1];
$community = $argv[2];
$result = snmpwalk($host,$community,'.1.3.6.1.2.1.25.3.3.1.2');
$result = str_replace('INTEGER: ',"",$result);
$output = "";
foreach($result as $index => $value)
{
$output .= "cpu$index:$value ";
}
echo trim($output);
?>

- ทดสอบการทำงานของ script
#cd /usr/share/cacti/site/scripts

- รูปแบบของคำสั่ง php multicpuload.php [ip] [community_string]
#php multicpuload.php 172.26.0.99 cacti
cpu0:28 cpu1:28 cpu2:36 cpu3:28

- รูปแบบของ output จะเป็นลักษณะ output_name:value และแยกด้วยช่องว่าง
- ดังนั้นการสร้าง สร้าง data template และ graph template ต้องกำหนดให้สอดคล้องกับจำนวน core ของ cpu

2. สร้าง data input
- เข้าไปที่เมนู Data Input Methods --> Add




- กำหนดค่าของ data input ดังตัวอย่าง
php <path_cacti>/scripts/multicpuload.php <host> <community>




- เพิ่ม input ให้สอดคล้องกับ script








- เพิ่ม output กำหนดค่าของ Field [Output] ให้สอดคล้องกับ script








3. สร้าง data template




- เลือก Data Input Method ให้ตรงกับที่สร้างไว้ และป้อนข้อมูลดังตัวอย่าง โดยสร้าง Data Source Item ของ cpu0 ด้วย




- สร้าง Data Source Item ของ cpu1 cpu2 cpu3 ให้ครบตามจำนวน core cpu






4. สร้าง graph template




- สร้างชื่อกราฟดังตัวอย่าง แล้วกด create




- เพิ่มข้อมูล Graph Template Items ดังภาพ




- กำหนดค่า Item ของ cpu0 ให้แสดงข้อมูลของ Line(แยกด้วยสี), Current, Average, Max ตามลำดับ ดังตัวอย่าง










- และกำหนดค่า Item ของ cpu1, cpu2, cpu3 ให้ครบดังตัวอย่าง




5. เพิ่ม graph template ให้ device win7 Amatawit




- Add Graph Template ให้กับ device




- ไปยังเมนู Create Graphs for this Host เพื่อสร้างกราฟ และเลือก MultiCPULoad Template ดังภาพ




- ตัวอย่างภาพแสดงกราฟของ CPU 4Core



Referrent : http://www.phuketadmin.org/index.php?topic=7236.0