การใช้คำสั่ง net-snmp

เรื่องทั่วไปที่ไม่รู้จะโพสต์หรือหาอ่านได้ในกระทู้ไหน หรือเรื่องที่อยากให้ผมเขียน

Moderator: jubjang

การใช้คำสั่ง net-snmp

โพสต์โดย aksk » 07 ก.ค. 2010 14:44

เรียน คุณหนุ่ย และทุกๆท่าน ครับ
ผมลง net -snmp บน windows7 ใน notebook เพื่อทดลอง scan mib ของอุปกรณ์ เช่น adsl router หรือ switch ที่ต่อเชื่อมกับ กับ notebook เพื่อนำค่า mib ของอุปกรณ์ดังกล่าว
มาเขียนคำสั่งให้กระทำการตามต้องการ เช่น เปิด ปิด port เมื่อทดลองใช้ net-snmp บน windows จนพอได้ความแล้ว ค่อยลง net-snmp บน Linux เช่น CentOS แล้วก็ใช้คำสั่งของ net-snmp เพื่อ scan mib แล้วนำค่า mib ดังกล่าวมาใช้งาน ตามที่ต้องการ แล้วลง asterisk และเขียน config ของ asterisk ผูกกับ mib ที่ได้โดยอาจใช้ สคลิปต์ จากภาษาต่างๆเขียนร่วมเพื่อควบคุมด้วย

เนื่องจากผมไม่มีความรู้เรื่องของ net snmp
ปัญหาคือ หลังจากติดตั้ง net-snmp บน windows แล้ว ผมจะเริ่มใช้งาน net-snmp อย่างไร
เช่นการใช้คำสั่ง net-snmp เพื่อดึงค่า mib หรือ อะไรก็แล้วแต่ที่ net-snmp สามารถทำได้
โดยผมจะเริ่มจากระบบง่ายๆก่อน เช่น เครื่อง notebook ที่ลง net-snmp บน windows แล้ว เชื่อมต่อกับ adsl router
อ่านใน net snmp.org แล้วไม่ค่อยรู้เรื่อง เนื่องจากภาษา E ไม่ค่อยแข็งแรง

เขียนมายืดยาว พอจะนึกภาพออกหรือเปล่าครับ
สรุปคือ ผมต้องการใช้ asterisk เพื่อควบคุมอุปกรณ์ต่างๆ น่ะครับ หรือใช้ asterisk management

รบกวนช่วยชี้แนะด้วยครับ ในการใช้งานคำสั่ง net-snmp และภาษาที่ใช้ในการเขียน script
ขอบคุณครับ
aksk
Silver Member
 
โพสต์: 21
ลงทะเบียนเมื่อ: 11 ก.พ. 2010 16:59

Re: การใช้คำสั่ง net-snmp

โพสต์โดย nuiz » 07 ก.ค. 2010 16:33

อืม...
ผมเข้าใจว่าอย่างนี้นะครับ Asterisk นี่มันเป็น VoIP/IPPBX Server เอาไว้ติดต่อสื่อสารกันผ่าน IP Network หรือ PSTN ทีนี้ถ้าจะเอา net-snmp มาใช้กับ Asterisk ก็ทำได้ครับ แต่เอาไว้มอนิเตอร์อย่างเดียว เช่น ใช้ net-snmp ดึงปริมาณ Call ที่ Asterisk กำลังโพรเซสอยู่หรือคอนเน็คอยู่ ตามบทความนี้นะครับ Asterisk SNMP จะเอา net-snmp ไปสั่งงาน Asterisk ไม่ได้ (เพราะ Asterisk มันไม่รองรับ snmp set)

net-snmp จะคุยกับอุปกรณ์ที่รองรับ SNMP โดยผ่านการสั่งงานจากคำสั่งที่ขึ้นต้นด้วย snmp* ต่างๆ เช่น
snmpbulkget, snmpdelta, snmpgetnext, snmpset, snmptest, snmpusm, snmpbulkwalk, snmpinform, snmpstatus, snmptranslate, snmpvacm, snmpconf, snmpget, snmpnetstat, snmptable, snmptrap, snmpwalk

ถ้าจะสั่งงานอุปกรณ์ ผมมีขั้นตอนที่ต้องดูต่อไปนี้นะครับ
- ต้องดูว่าอุปกรณ์นั้นรองรับ snmp set หรือเปล่า (รองรับ snmp write หรือเปล่า)
- สิ่งที่เราต้องการจะเซ็ตนั้น มันมี OID ว่ายังไง เช่น ต้องการรีเซ็ตอุปกรณ์ ใช้ OID ว่า 1.3.6.1.4.1.8 เซ็ตให้มีค่าเป็น 1 เป็นการรีเซ็ต เราก็สั่งงานว่า
snmpset -v 2c -c private 192.168.100.1 .1.3.6.1.4.1.8 1


และถ้าจะเอา net-snmp ไปดูหรือเช็คอุปกรณ์ มีขั้นตอนต่อไปนี้
- ดูว่าอุปกรณ์นั้นรองรับ snmp get หรือเปล่า (รองรับ snmp read หรือเปล่า - แน่นอนว่าถ้ามันรองรับ SNMP มันก็ต้องรองรับ snmp get)
- สิ่งที่เราต้องการดูนั้นมันมี OID ว่าอย่างไร เช่นอยากดูความเร็วของพอร์ต LAN ว่าตอนนี้เป็น 10 หรือ 100 Mbps มี OID คือ 1.3.6.1.4.6.555.1 แล้วดูค่าที่ส่งกลับมา
ก็ใช้คำสั่งว่า snmpget -v 2c -c public 192.168.100.1 .1.3.6.1.4.6.555.1

ข้างบนเป็นตัวอย่างครับ
ทีนี้เราจะรู้ได้ยังไงว่าต้องใช้ OID อะไร คำตอบคือ ต้องหาไฟล์ mib (หรือจะเรียกว่า มิบ ไฟล์) ของอุปกรณ์มาอ่ะครับ หาเอาใน Internet ก็ได้ เช่น เราจะเขียนสั่งงาน Linux ด้วย net-snmp ก็ไปหาไฟล์ mib ของ Linux มา ซึ่งถ้าเราติดตั้ง net-snmp บน Linux ไฟล์นี้จะอยู่ที่ไดเร็คตอรี่ /usr/share/snmp/mibs ชื่อไฟล์ UCD-SNMP-MIB.txt ครับ ถ้าติดตั้ง net-snmp บน Windows ก็น่าจะอยู่ในโฟลเดอร์ของ net-snmp อ่ะครับ

ในไฟล์ mib ก็จะมี OID เยอะแยะ ก็อ่านๆดูว่า OID ไหนทำอะไร ค่าผลลัพธ์เป็นอะไรได้บ้าง เสร็จแล้วก็เอามาทำงานต่อ

การเขียนโค๊ดเพื่อรับค่าหรือสั่งค่า ทำเป็นสคริปต์ก็ได้ครับ ใช้ php หรือ perl ก็ได้ หรือโปรแกรมอะไรก็ได้ ที่เรียกคำสั่ง net-snmp พร้อมด้วยออปชั่นต่างๆดังตัวอย่างด้านบน ได้ แล้วก็เอาผลลัพธ์ มาทำงานต่อไป

พอเป็นไอเดียครับ เสียดายผมเขียนโปรแกรมไม่เป็นสักกะแอะ ไม่งั้นงานนี้มีโชว์ ฮิฮิ
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7069
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33


ย้อนกลับไปยัง กระทู้ทั่วไป - ฝากคำถาม

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 0 ท่าน

cron