Asterisk+SNMP+Cacti ตอนที่ 1
ใน Asterisk + SNMP + Cacti ตอนที่ 1 ผมได้พูดโปรแกรม Cacti พูดถึง CentOS + SNMP และพูดถึง Asterisk + SNMP ไปแล้วนะครับ สำหรับในตอนที่ 2 นี้จะเป็นการสร้างกราฟใน Cacti ติดตามได้เลยครับ
1. สร้างไฟล์สคริปต์เพื่อดึงข้อมูลจาก Asterisk ด้วย SNMP
- โค้ด: เลือกทั้งหมด
vi /usr/sbin/cacti_snmp_poller.sh
ใส่ข้อมูลดังนี้ คนละบรรทัดนะครับ
- โค้ด: เลือกทั้งหมด
export MIBS=+ASTERISK-MIB
/var/www/html/cacti/poller.php
2. ทำให้สั่งรันไฟล์ cacti_snmp_poller.sh ได้
- โค้ด: เลือกทั้งหมด
chmod +x /usr/sbin/cacti_snmp_poller.sh
chmod +x /var/www/html/cacti/poller.php
3. สั่งให้ CentOS รันไฟล์ cacti_snmp_poller.sh ทุก 5 นาที
- โค้ด: เลือกทั้งหมด
crontab -e
เพิ่มบรรทัดนี้ (ไม่เอาเครื่องหมาย ' นะครับ)
*/5 * * * * /usr/sbin/cacti_snmp_poller.sh > /dev/null 2>&1
4. ล๊อกอินเข้าเว็บอินเตอร์เฟสของ Cacti
5. สร้างกราฟ
เป็นกราฟที่จะใช้แสดงผลข้อมูลที่ Cacti ไป Query ได้จาก Asterisk ครับ ส่วนจะได้ข้อมูลอะไรนั้นก็อยู่ที่ว่าเราต้องการข้อมูลแบบไหน เครื่องที่ผมลง Asterisk กับ Cacti เป็นเครื่องเดียวกันนะครับ ดังนั้นเวลาระบุโฮสต์ลงไปใน Cacti ผมจึงระบุเป็น 127.0.0.1
5.1 สร้างกราฟ Channels In Use
ซึ่งจะแสดงจำนวน Channels ทั้งหมดที่กำลัง Active อยู่ ไม่แยกว่าเป็น SIP หรือ IAX นะครับ
5.1.1 คลิ๊กที่ "Data Sources" ด้านซ้ายมือ
5.1.2 คลิ๊กที่ "Add" แล้วกรอกข้อมูลดังตัวอย่าง
Selected Data Template = SNMP - Generic OID Template
Host = Localhost (127.0.0.1)
Name = |host_description| - Asterisk Channels In Use
Data Source Path = ใช้ที่โปรแกรมเลือกให้
Maximum Value = 100 หรือใส่จำนวนสูงสุดที่คาดว่าจะเป็นไปได้
OID = .1.3.6.1.4.1.22736.1.5.1.0
คลิ๊ก "Save"
5.1.3 จะมี "Localhost - Asterisk Channels In Use" ปรากฏใน Data source ดังรูป
5.1.4 คลิ๊ก "Graph Management"
5.1.5 คลิ๊ก "Add" แล้วป้อนข้อมูลดังตัวอย่าง
Selected Graph Template = SNMP - Generic OID Template
Host = Localhost (127.0.0.1)
แล้วคลิ๊ก "Create" จะได้ดังรูป
Title (--title) = |host_description| - Asterisk Channels In Use
Vertical Label (--vertical-label) = Current Channels Used
Legend Color = เลือกสีเอาตามใจชอบซึ่งจะเป็นสีของเส้นกราฟ
Data Source [snmp_oid] = Localhost - Asterisk Channels In Use (snmp_oid)
Lagend Text = Current Channels Used ซึ่งจะไปปรากฏในแกนแนวตั้งของกราฟ
คลิ๊ก "Save"
5.1.6 จะมีชื่อ "Localhost - Asterisk Channels Used" ปรากฏใน Graph Management ดังรูป
5.1.7 ทดสอบโดยการโทรระหว่างเบอร์ Extension 2 เบอร์แล้วปล่อยสายทิ้งไว้ รอสักพัก (ประมาณ 5 นาทีหรือมากกว่า) คลิ๊กที่ Localhost - Asterisk Channels Used ใน Graph Managent ก็จะเห็นจำนวน Active Call บนกราฟ ดังรูป
กราฟในรูปนี้เกิดจากผมเอาเบอร์ Extension 2 เบอร์โทรเข้าหากัน กราฟจะแสดงเป็น 2 Channels เพราะว่ามี 2 Calls เกิดขึ้นคือระหว่าง Asterisk กับเบอร์ Extension ต้นทาง และระหว่าง Asterisk กับเบอร์ Extension ปลายทาง
สังเกตุดูที่กราฟนะครับว่า Maximum มันขาดไป สาเหตุเกิดจากเราใส่ข้อความใน "Legend Text" ยาวเกินไป ผมลองลดเหลือ "Channels" ปรากฏว่าโชว์ครบครับ ดังรูป
Asterisk+SNMP+Cacti ตอนที่ 3