You are on page 1of 26

Monitoring Asterisk 1.

6 With SNMP And Cacti 1

มอนิเตอร์ Asterisk 1.6 ด้วย SNMP แสดงผลด้วย Cacti ตอนที่ 1


ยังมีบทความเกี่ยวกับ Asterisk, CentOS, Elastix, VoIP อีกมากมายที่ http://www.voip4share.com

ผมจะมาแนะนาวิธีการมอนิเตอร์ Asterisk 1.6 ในอีกรูปแบบหนึ่งนะครับ คือมอนิเตอร์ด้วยโปรโตคอล SNMP และแสดงกราฟด้วยโปรแกรม


Cacti วิธีนี้สามารถแสดงปริมาณ Call เป็นกราฟได้เลย ทาให้เราเก็บสถิติการ Call และเรียกดูย้อนหลังได้ สะดวกมากครับ
ถ้ายังไม่ได้ตดิ ตั้ง Cacti ก็ต้องติดตั้งก่อนนะครับซึ่งผมมีแนะนาไว้อย่างละเอียดแล้ว

1. ติดตั้งและคอนฟิก Cacti ให้ใช้งานได้


2. ติดตั้ง SNMP บน CentOS
3. คอมไพล์ Asterisk ให้รองรับ SNMP

เช็คดูก่อนครับว่า Asterisk รองรับ SNMP หรือยัง ดังนี้


1. เข้า Asterisk Console
2. พิมพ์คาสั่ง module show like snmp

sip*CLI> module show like snmp


Module Description Use Count
res_snmp.so SNMP [Sub]Agent for Asterisk 0
1 modules loaded

ถ้าเห็นแบบนี้ก็แสดงว่า Asterisk รองรับ SNMP แล้วครับ ไม่ต้องคอมไพล์ใหม่


ซึ่งการติดตั้ง Asterisk ให้รองรับ SNMP นี้ผมแนะนาสั้นๆดังนี้นะครับ (สรุปมาจากบทความ Asterisk + SNMP)
1. ติดตั้ง SNMP ถ้ายังไม่ได้ติดตั้ง
2. คอมไพล์ Asterisk ใหม่ เน้นว่าคอมไพล์เฉพาะ Asterisk นะครับ ส่วนอย่างอื่นเช่น dahdi-linux, dahdi-tools, asterisk-addons, libpri นั้น
ไม่ต้องคอมไพล์ใหม่นะครับ
2.1 คอมไพล์ Asterisk
เข้าไปที่ไดเร็คตอรี่เก็บ Source Code ของ Asterisk สมมติว่าอยู่ที่ /usr/src/asterisk-1.6.2.0 นะครับ
cd /usr/src/asterisk-1.6.2.0
make menuconfig
เลื่อนปุ่มลูกศรลงมาที่ "Resource Modules" แล้วกด Enter มองหาบรรทัด res_snmp ต้องมีเครื่องหมาย * อยู่ในวงเล็บนะครับ แบบนี้
[*] res_snmp

กด Esc แล้วกด s เพื่อบันทึกแล้วออกจาก menuconfig


พิมพ์คาสั่ง make และ make install
make && make install

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 2

แต่ห้ามพิมพ์คาสั่ง make samples นะครับ เดี๋ยวคอนฟิกที่อุตส่าห์ทุ่มเทเวลาทามันจะหายไปหมด


2.2 ก๊อบไฟล์คอนฟิกของ snmp ดังนี้
cd /usr/src/asterisk-1.6.2.0/configs
cp res_snmp.conf.sample /etc/asterisk/res_snmp.conf

2.3 แก้ไขไฟล์คอนฟิก res_snmp.conf


vi /etc/asterisk/res_snmp.conf

[general]
subagent = yes
enabled = yes

2.4 เข้า Asterisk Console แล้วสั่ง reload โมดูล res_snmp.so


module load res_snmp.so

ข้อความที่ปรากฏเมื่อโหลดโมดูล res_snmp.so

== Parsing '/etc/asterisk/res_snmp.conf': == Found


Loading [Sub]Agent Module
Loaded res_snmp.so => (SNMP [Sub]Agent for Asterisk)
== Starting SubAgent

3. ติดตั้ง newt-devel
yum -y install newt-devel

4. แก้ไขไฟล์คอนฟิกของ net-snmp
4.1 ไฟล์ snmpd.conf
cd /etc/snmp
mv snmpd.conf snmpd.conf.bak
vi snmpd.conf

ใส่บรรทัดเหล่านี้ไปในไฟล์ แก้ไขข้อมูลให้เหมาะสมกับระบบของเราครับ

syslocation Bangkok

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 3
rocommunity voip4share

# Asterisk User
rwuser asterisk priv
createUser asterisk SHA password AES
# Asterisk Configuration
master agentx
agentXSocket /var/agentx/master
agentXPerms 0660 0550 nobody asterisk

บันทึกไฟล์
บรรทัด agentXperms 0660 0550 nobody asterisk เซ็ต permission ให้แก่ user=nobody และ group=asterisk โดยสมมติว่า group ที่ใช้
รัน Asterisk คือ asterisk ส่วน voip4share เป็นชื่อ Community นะครับ

4.2 ก๊อบไฟล์ Asterisk + Digium MIB จากไดเร็คตอรีซ่ อร์สโค๊ด


cd /usr/src/asterisk-1.6.2.0/doc
cp *-mib.txt /usr/share/snmp/mibs

4.3 สตาร์ท snmpd


service snmpd restart

4.4 ตรวจสอบว่าที่คอนฟิกไว้เวอร์คหรือไม่
chmod 755 /var/agentx
ls -la /var/agentx

ถ้าเห็น Permission ของ master แบบนี้ก็เวอร์คครับ ตรงกับที่เราคอนฟิกไว้ในไฟล์ /etc/snmp/snmpd.conf


dr-xr-x--- 2 root root 4096 Feb 5 17:04 .
drwxr-xr-x 23 root root 4096 Feb 5 17:04 ..
srw-rw---- 1 nobody asterisk 0 Feb 5 17:04 master

ซึ่ง /var/agentx และ /var/agentx/masters นี้นะครับทาหน้าที่เป็นตัวกลางระหว่าง Asterisk และ SNMP ซึ่ง Asterisk จะใช้มันเพื่อสื่อสารกับ
SNMP ทีนี้ถ้าหากว่า Asterisk ไม่สามารถ Write ไฟล์ master ได้ มันก็จะสื่อสารกับ SNMP ไม่ได้ เราจะไม่สามารถใช้ SNMP มามอนิเตอร์
Asterisk ได้

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 4

5. รีโหลด Asterisk
asterisk –rx “reload”

6. ทดสอบว่าสามารถใช้ SNMP ดึงข้อมูลจาก Asterisk ได้จริงหรือไม่


export MIBS=+ASTERISK-MIB
snmpwalk -v 3 -u asterisk -n "" -l authPriv -a SHA -A password -x AES -X password localhost asterisk

จะได้ผลลัพธ์ประมาณนี้ครับ แสดงว่าเวอร์คแล้ว
ASTERISK-MIB::astVersionString.0 = STRING: 1.6.2.0
ASTERISK-MIB::astVersionTag.0 = Gauge32: 10602
ASTERISK-MIB::astConfigUpTime.0 = Timeticks: (68274) 0:11:22.74
ASTERISK-MIB::astConfigReloadTime.0 = Timeticks: (59852) 0:09:58.52
ASTERISK-MIB::astConfigPid.0 = INTEGER: 2613
ASTERISK-MIB::astConfigSocket.0 = STRING: /var/run/asterisk/asterisk.ctl
ASTERISK-MIB::astConfigCallsActive.0 = Gauge32: 0
ASTERISK-MIB::astConfigCallsProcessed.0 = Counter32: 0
ASTERISK-MIB::astNumModules.0 = INTEGER: 180
ASTERISK-MIB::astNumIndications.0 = INTEGER: 40
ASTERISK-MIB::astCurrentIndication.0 = STRING: us
ASTERISK-MIB::astIndIndex.1 = INTEGER: 1
ASTERISK-MIB::astIndIndex.2 = INTEGER: 2
ASTERISK-MIB::astIndIndex.3 = INTEGER: 3
ASTERISK-MIB::astIndIndex.4 = INTEGER: 4
ASTERISK-MIB::astIndIndex.5 = INTEGER: 5
ASTERISK-MIB::astIndIndex.6 = INTEGER: 6
ASTERISK-MIB::astIndIndex.7 = INTEGER: 7
ASTERISK-MIB::astIndIndex.8 = INTEGER: 8
ASTERISK-MIB::astIndIndex.9 = INTEGER: 9
ASTERISK-MIB::astIndIndex.10 = INTEGER: 10
ASTERISK-MIB::astIndIndex.11 = INTEGER: 11
ASTERISK-MIB::astIndIndex.12 = INTEGER: 12
ASTERISK-MIB::astIndIndex.13 = INTEGER: 13
ASTERISK-MIB::astIndIndex.14 = INTEGER: 14
ASTERISK-MIB::astIndIndex.15 = INTEGER: 15
ASTERISK-MIB::astIndIndex.16 = INTEGER: 16
ASTERISK-MIB::astIndIndex.17 = INTEGER: 17

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 5
ASTERISK-MIB::astIndIndex.18 = INTEGER: 18
ASTERISK-MIB::astIndIndex.19 = INTEGER: 19
ASTERISK-MIB::astIndIndex.20 = INTEGER: 20

ASTERISK-MIB::astIndIndex.21 = INTEGER: 21
ASTERISK-MIB::astIndIndex.22 = INTEGER: 22
ASTERISK-MIB::astIndIndex.23 = INTEGER: 23
ASTERISK-MIB::astIndIndex.24 = INTEGER: 24
ASTERISK-MIB::astIndIndex.25 = INTEGER: 25
ASTERISK-MIB::astIndIndex.26 = INTEGER: 26
ASTERISK-MIB::astIndIndex.27 = INTEGER: 27
ASTERISK-MIB::astIndIndex.28 = INTEGER: 28
ASTERISK-MIB::astIndIndex.29 = INTEGER: 29
ASTERISK-MIB::astIndIndex.30 = INTEGER: 30
ASTERISK-MIB::astIndIndex.31 = INTEGER: 31
ASTERISK-MIB::astIndIndex.32 = INTEGER: 32
ASTERISK-MIB::astIndIndex.33 = INTEGER: 33
ASTERISK-MIB::astIndIndex.34 = INTEGER: 34
ASTERISK-MIB::astIndIndex.35 = INTEGER: 35
ASTERISK-MIB::astIndIndex.36 = INTEGER: 36
ASTERISK-MIB::astIndIndex.37 = INTEGER: 37
ASTERISK-MIB::astIndIndex.38 = INTEGER: 38
ASTERISK-MIB::astIndIndex.39 = INTEGER: 39
ASTERISK-MIB::astIndIndex.40 = INTEGER: 40
ASTERISK-MIB::astIndCountry.1 = STRING: be
ASTERISK-MIB::astIndCountry.2 = STRING: de
ASTERISK-MIB::astIndCountry.3 = STRING: pt
ASTERISK-MIB::astIndCountry.4 = STRING: za
ASTERISK-MIB::astIndCountry.5 = STRING: us-o
ASTERISK-MIB::astIndCountry.6 = STRING: th
ASTERISK-MIB::astIndCountry.7 = STRING: cz
ASTERISK-MIB::astIndCountry.8 = STRING: dk
ASTERISK-MIB::astIndCountry.9 = STRING: it
ASTERISK-MIB::astIndCountry.10 = STRING: at
ASTERISK-MIB::astIndCountry.11 = STRING: us

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 6
ASTERISK-MIB::astIndCountry.12 = STRING: au
ASTERISK-MIB::astIndCountry.13 = STRING: lt
ASTERISK-MIB::astIndCountry.14 = STRING: br
ASTERISK-MIB::astIndCountry.15 = STRING: jp

ASTERISK-MIB::astIndCountry.16 = STRING: gr
ASTERISK-MIB::astIndCountry.17 = STRING: no
ASTERISK-MIB::astIndCountry.18 = STRING: pl
ASTERISK-MIB::astIndCountry.19 = STRING: nl
ASTERISK-MIB::astIndCountry.20 = STRING: ph
ASTERISK-MIB::astIndCountry.21 = STRING: sg
ASTERISK-MIB::astIndCountry.22 = STRING: se
ASTERISK-MIB::astIndCountry.23 = STRING: ee
ASTERISK-MIB::astIndCountry.24 = STRING: hu
ASTERISK-MIB::astIndCountry.25 = STRING: ve
ASTERISK-MIB::astIndCountry.26 = STRING: mx
ASTERISK-MIB::astIndCountry.27 = STRING: ru
ASTERISK-MIB::astIndCountry.28 = STRING: my
ASTERISK-MIB::astIndCountry.29 = STRING: nz
ASTERISK-MIB::astIndCountry.30 = STRING: uk
ASTERISK-MIB::astIndCountry.31 = STRING: tw
ASTERISK-MIB::astIndCountry.32 = STRING: cn
ASTERISK-MIB::astIndCountry.33 = STRING: fi
ASTERISK-MIB::astIndCountry.34 = STRING: cl
ASTERISK-MIB::astIndCountry.35 = STRING: il
ASTERISK-MIB::astIndCountry.36 = STRING: in
ASTERISK-MIB::astIndCountry.37 = STRING: ch
ASTERISK-MIB::astIndCountry.38 = STRING: fr
ASTERISK-MIB::astIndCountry.39 = STRING: es
ASTERISK-MIB::astIndCountry.40 = STRING: bg
ASTERISK-MIB::astIndDescription.1 = STRING: Belgium
ASTERISK-MIB::astIndDescription.2 = STRING: Germany
ASTERISK-MIB::astIndDescription.3 = STRING: Portugal
ASTERISK-MIB::astIndDescription.4 = STRING: South Africa
ASTERISK-MIB::astIndDescription.5 = STRING: United States Circa 1950/ North America

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 7
ASTERISK-MIB::astIndDescription.6 = STRING: Thailand
ASTERISK-MIB::astIndDescription.7 = STRING: Czech Republic
ASTERISK-MIB::astIndDescription.8 = STRING: Denmark
ASTERISK-MIB::astIndDescription.9 = STRING: Italy
ASTERISK-MIB::astIndDescription.10 = STRING: Austria

ASTERISK-MIB::astIndDescription.11 = STRING: United States / North America


ASTERISK-MIB::astIndDescription.12 = STRING: Australia
ASTERISK-MIB::astIndDescription.13 = STRING: Lithuania
ASTERISK-MIB::astIndDescription.14 = STRING: Brazil
ASTERISK-MIB::astIndDescription.15 = STRING: Japan
ASTERISK-MIB::astIndDescription.16 = STRING: Greece
ASTERISK-MIB::astIndDescription.17 = STRING: Norway
ASTERISK-MIB::astIndDescription.18 = STRING: Poland
ASTERISK-MIB::astIndDescription.19 = STRING: Netherlands
ASTERISK-MIB::astIndDescription.20 = STRING: Philippines
ASTERISK-MIB::astIndDescription.21 = STRING: Singapore
ASTERISK-MIB::astIndDescription.22 = STRING: Sweden
ASTERISK-MIB::astIndDescription.23 = STRING: Estonia
ASTERISK-MIB::astIndDescription.24 = STRING: Hungary
ASTERISK-MIB::astIndDescription.25 = STRING: Venezuela / South America
ASTERISK-MIB::astIndDescription.26 = STRING: Mexico
ASTERISK-MIB::astIndDescription.27 = STRING: Russian Federation / ex Soviet Union
ASTERISK-MIB::astIndDescription.28 = STRING: Malaysia
ASTERISK-MIB::astIndDescription.29 = STRING: New Zealand
ASTERISK-MIB::astIndDescription.30 = STRING: United Kingdom
ASTERISK-MIB::astIndDescription.31 = STRING: Taiwan
ASTERISK-MIB::astIndDescription.32 = STRING: China
ASTERISK-MIB::astIndDescription.33 = STRING: Finland
ASTERISK-MIB::astIndDescription.34 = STRING: Chile
ASTERISK-MIB::astIndDescription.35 = STRING: Israel
ASTERISK-MIB::astIndDescription.36 = STRING: India
ASTERISK-MIB::astIndDescription.37 = STRING: Switzerland
ASTERISK-MIB::astIndDescription.38 = STRING: France
ASTERISK-MIB::astIndDescription.39 = STRING: Spain

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 8
ASTERISK-MIB::astIndDescription.40 = STRING: Bulgaria
ASTERISK-MIB::astNumChannels.0 = Gauge32: 0
ASTERISK-MIB::astNumChanTypes.0 = INTEGER: 8
ASTERISK-MIB::astChanTypeIndex.1 = INTEGER: 1
ASTERISK-MIB::astChanTypeIndex.2 = INTEGER: 2
ASTERISK-MIB::astChanTypeIndex.3 = INTEGER: 3

ASTERISK-MIB::astChanTypeIndex.4 = INTEGER: 4
ASTERISK-MIB::astChanTypeIndex.5 = INTEGER: 5
ASTERISK-MIB::astChanTypeIndex.6 = INTEGER: 6
ASTERISK-MIB::astChanTypeIndex.7 = INTEGER: 7
ASTERISK-MIB::astChanTypeIndex.8 = INTEGER: 8
ASTERISK-MIB::astChanTypeName.1 = STRING: Agent
ASTERISK-MIB::astChanTypeName.2 = STRING: Phone
ASTERISK-MIB::astChanTypeName.3 = STRING: Console
ASTERISK-MIB::astChanTypeName.4 = STRING: Local
ASTERISK-MIB::astChanTypeName.5 = STRING: USTM
ASTERISK-MIB::astChanTypeName.6 = STRING: IAX2
ASTERISK-MIB::astChanTypeName.7 = STRING: Bridge
ASTERISK-MIB::astChanTypeName.8 = STRING: SIP
ASTERISK-MIB::astChanTypeDesc.1 = STRING: Call Agent Proxy Channel
ASTERISK-MIB::astChanTypeDesc.2 = STRING: Standard Linux Telephony API Driver
ASTERISK-MIB::astChanTypeDesc.3 = STRING: OSS Console Channel Driver
ASTERISK-MIB::astChanTypeDesc.4 = STRING: Local Proxy Channel Driver
ASTERISK-MIB::astChanTypeDesc.5 = STRING: UNISTIM Channel Driver
ASTERISK-MIB::astChanTypeDesc.6 = STRING: Inter Asterisk eXchange Driver (Ver 2)
ASTERISK-MIB::astChanTypeDesc.7 = STRING: Bridge Interaction Channel
ASTERISK-MIB::astChanTypeDesc.8 = STRING: Session Initiation Protocol (SIP)
ASTERISK-MIB::astChanTypeDeviceState.1 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeDeviceState.2 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeDeviceState.3 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeDeviceState.4 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeDeviceState.5 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeDeviceState.6 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeDeviceState.7 = INTEGER: false(2)

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 9
ASTERISK-MIB::astChanTypeDeviceState.8 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeIndications.1 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeIndications.2 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeIndications.3 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeIndications.4 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeIndications.5 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeIndications.6 = INTEGER: true(1)

ASTERISK-MIB::astChanTypeIndications.7 = INTEGER: false(2)


ASTERISK-MIB::astChanTypeIndications.8 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeTransfer.1 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeTransfer.2 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeTransfer.3 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeTransfer.4 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeTransfer.5 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeTransfer.6 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeTransfer.7 = INTEGER: false(2)
ASTERISK-MIB::astChanTypeTransfer.8 = INTEGER: true(1)
ASTERISK-MIB::astChanTypeChannels.1 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.2 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.3 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.4 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.5 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.6 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.7 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.8 = Gauge32: 0
ASTERISK-MIB::astNumChanBridge.0 = Gauge32: 0

ซึ่งข้อมูลที่ได้นี้เราสามารถนาไปสร้างกราฟเพื่อแสดงข้อมูลที่ต้องการได้ครับ เช่น

ASTERISK-MIB::astConfigCallsActive.0 = Gauge32: 0 ซึ่งแสดงจานวน Call ที่กาลังเกิดขึ้น


ASTERISK-MIB::astConfigCallsProcessed.0 = Counter32: 0 แสดงจานวน Call ที่กาลังเรียกอยู่ ปลายทางยังไม่รับสาย

1. สร้างไฟล์สคริปต์เพื่อดึงข้อมูลจาก Asterisk ด้วย SNMP

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 10
vi /usr/sbin/cacti_snmp_poller.sh

ใส่ข้อมูลดังนี้ คนละบรรทัดนะครับ (ไม่รวมเครื่องหมาย '')


MIBS=+ASTERISK-MIB
export MIBS
/var/www/html/cacti/poller.php

2. ทาให้สั่งรันไฟล์ cacti_snmp_poller.sh ได้


chmod 755 /usr/sbin/cacti_snmp_poller.sh
chmod 755 /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

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 11
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" แล้วป้อนข้อมูลดังตัวอย่าง

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 12

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 ดังรูป

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 13

5.1.7 ทดสอบโดยการโทรระหว่างเบอร์ Extension 2 เบอร์แล้วปล่อยสายทิ้งไว้ รอสักพัก (ประมาณ 5 นาทีหรือมากกว่า) คลิ๊กที่ Localhost -


Asterisk Channels Used ใน Graph Managent ก็จะเห็นจานวน Active Call บนกราฟ ดังรูป

กราฟในรูปนี้เกิดจากผมเอาเบอร์ Extension 2 เบอร์โทรเข้าหากัน กราฟจะแสดงเป็น 2 Channels เพราะว่ามี 2 Calls เกิดขึ้นคือระหว่าง

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 14
Asterisk กับเบอร์ Extension ต้นทาง และระหว่าง Asterisk กับเบอร์ Extension ปลายทาง

สังเกตุดูที่กราฟนะครับว่า Maximum มันขาดไป สาเหตุเกิดจากเราใส่ข้อความใน "Legend Text" ยาวเกินไป ผมลองลดเหลือ "Channels"


ปรากฏว่าโชว์ครบครับ ดังรูป

ตอนที่ 3 นี้เป็นการสร้างกราฟอื่นๆบ้างครับ เนื่องจากถ้าผมเขียนไว้ในตอนที่ 2 มันจะยาวเกินไป ก็เลยขออนุญาตยกมาเขียนเป็นตอนที่ 3

1 สร้างกราฟ Asterisk Bridged Channels

1.1 คลิ๊ก "Data Sources" แล้วคลิ๊ก "Add"


1.2 ป้อนข้อมูล

Asterisk Bridged Channels


cacti-asterisk-bridged-00-small.png (20.9 KiB) เปิดดู 66 ครั้ง

Selected Data Template = SNMP - Generic OID Template


Host = Localhost (127.0.0.1)
คลิ๊ก "Create"

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 15

Name = |host_description| - Asterisk Bridged Channels


Data Source Path = ใช้ค่าที่ Cacti เลือกให้
Maximum Value = 100
Data Source Type = GUAGE
OID = .1.3.6.1.4.1.22736.1.5.5.1.0
คลิ๊ก "Save"

5.2.3 คลิ๊ก "Graph Management" แล้วคลิ๊ก "Add"


5.2.4 ป้อนข้อมูล

Selected Graph Template = SNMP - Generic OID Template


Host = Localhost (127.0.0.1)
คลิ๊ก "Create"

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 16

Title (--title) = |host_description| - Asterisk Bridged Channels


Vertical Label (--vertical-label) = Current Bridged Channels
Legend Color = เลือกสีตามใจชอบ
Data Source [snmp_oid] = Localhost - Asterisk Bridged Channels (snmp_oid)
Legend Text = Channels
คลิ๊ก "Save"

Asterisk Bridged Channels


cacti-asterisk-bridged-04-small.png (14.25 KiB) เปิดดู 66 ครั้ง

ลองโทรระหว่างเบอร์ Extension ดูครับ ทิ้งสายไว้สักพัก แล้วคลิ๊กเมนู "Graph Management" แล้วคลิ๊กที่ "Asterisk Bridged Channels" จะ
ได้กราฟดังรูป

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 17

Asterisk Bridged Channels


cacti-asterisk-bridged-05-small.png (105.53 KiB) เปิดดู 66 ครั้ง

2. สร้างกราฟ Asterisk Active Calls


ขอแบบย่อๆนะครับ เพราะจากตัวอย่างที่ผ่านๆมาเราน่าจะทาเป็นแล้ว

2.1 Data Source

Selected Data Template = SNMP - Generic OID Template

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 18
Host = Localhost (127.0.0.1)
Name = |host_description| - Asterisk Active Calls
Data Source Path =
Maximum Value = 300
Data Source Type = Guage
OID = .1.3.6.1.4.1.22736.1.2.5.0

2.2 Graph Management

Selected Data Template = SNMP - Generic OID Template


Host = Localhost (127.0.0.1)
Title (--title) = |host_description| - Asterisk Active Calls
Vertical Label (--vertical-label) = Current Active Calls
Legend Color =
Data Source [snmp_oid] = Localhost - Asterisk Active Calls (snmp_oid)
Legend Text = Calls

2.3 Graph

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 19

3. สร้างกราฟ Asterisk Calls Processed


ขอแบบย่อๆนะครับ
3.1 Data Source

OID = .1.3.6.1.4.1.22736.1.2.6.0

3.2 Graph Management

3.3 Graph

4. สร้างกราฟ Asterisk SIP Channels


มอนิเตอร์ SIP Channels บน Asterisk ครับ จะแสดงจานวน SIP Calls ที่กาลังเกิดขึ้นบน Asterisk
4.1 Data Source

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 20

OID = .1.3.6.1.4.1.22736.1.5.4.1.7.8

4.2 Graph Management

4.3 Graph

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 21
5. สร้างกราฟ IAX Channels
5.1 Data Source

OID = .1.3.6.1.4.1.22736.1.5.4.1.7.6

5.2 Graph Management

5.3 Graph

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 22

6. สร้างกราฟ DAHDI Channels


6.1 Data Source

OID = .1.3.6.1.4.1.22736.1.5.4.1.7.3
6.2 Graph Managemnt

ตอนที่ 4 เป็นตอนสุดท้ายนะครับ ผมจะแนะนาการสร้างกราฟรวม คือเอาทุกกราฟมารวมไว้ในที่ๆเดียว เมื่อต้องการจะดูก็คลิ๊กเข้ามา แล้วก็จะ


เห็นทุกกราฟเลย สะดวกดีครับ มีขั้นตอนดังต่อไปนี้ครับ

1. สร้างกราฟรวม
1.1 คลิ๊กที่เมนู "Graph Trees" ด้านซ้ายมือ

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 23

Name = Localhost - Asterisk หรือจะตั้งชื่อเป็นอะไรก็ได้ที่สื่อความหมายหน่อย


Sorting Type = Manual Ordering (No Sorting)
คลิ๊ก "Create"

1.2คลิ๊ก "Add"

1.3 เลือกกราฟที่จะให้มาแสดง

Parent Item = [root]


Tree Item Type = Graph
Graph = เลือกกราฟที่จะให้มาแสดง (เลือกทีละกราฟนะครับ)
Round Robin Archive = Hourly (1 Minute Average)
คลิ๊ก "Create"

1.4 คลิ๊ก "Add" เลือกกราฟอีก ทาจนได้ครบทุกกราฟ

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 24

คลิ๊ก "Save" เพื่อบันทึก

1.5 จะได้ "Localhost - Asterisk" อยู่ในรายชื่อ Graph Trees

เป็นอันว่าเสร็จเรียบร้อยครับ

2. ดูกราฟรวม
2.1 คลิ๊กที่แท๊ป "graphs"

2.2 คลิ๊กที่ "Localhost - Asterisk"


จะเห็นกราฟรวมดังรูปครับ

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 25

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com


Monitoring Asterisk 1.6 With SNMP And Cacti 26

2.3 ดูกราฟย้อนหลัง
ลองคลิ๊กที่รูปกราฟแต่ละรูปดูครับ มันจะเข้าไปดู History ได้

ขอเชิญแวะมาเยี่ยมเว็บบอร์ด http://www.voip4share.com นะครับ

บทความโดย คุณหนุ่ย แห่งเว็บ www.voip4share.com