หน้า 1 จากทั้งหมด 1

ทำให้ CentOS รองรับ SNMP

โพสต์โพสต์แล้ว: 30 ม.ค. 2010 15:12
โดย voip4share
บทความนี้ผมจะพูดถึงวิธีการทำให้ CentOS รองรับ SNMP นะครับ

net-snmp เป็นโปรแกรมที่จะทำให้ CentOS น้อยๆของเรารองรับโปรโตคอล SNMP (Simple Network Management Protocol) ซึ่งเมื่อรองรับ SNMP แล้วเราก็สามารถใช้โปรแกรมประเภท SNMP Manager เช่น Nagios, Cacti, OpenSNMP มามอนิเตอร์สถานะการทำงานของเครื่องได้

ผมขออนุญาตพูดถึง SNMP แบบสั้นๆเอาพอให้รู้คร่าวๆนะครับ SNMP ย่อมาจาก Simple Network Management Protocol เป็นโปรโตคอลที่ใช้คิวรี่และอัพเดทสถานะการทำงานของอุปกรณ์ที่รองรับ โดยจะมี SNMP Server (เป็นโปรแกรม) คอยคิวรี่ข้อมูลที่มันต้องการ และ SNMP Client (เป็นโปรแกรมที่ติดตั้งลงไปในตัวอุปกรณ์เน็ตเวอร์คหรือเซอร์เวอร์) ก็จะคอยส่งข้อมูลที่ถูกคิวรี่ไปให้ ตัวอย่างของข้อมูลก็ได้แก่ สถานะของพอร์ตอัพ/ดาวน์ จำนวนพอร์ตที่ใช้งาน ซีพียูโหลด หน่วยความจำในเครื่อง ฮาร์ดดิสก์ จำนวนยูสเซอร์ที่ล๊อกอิน แบนวิดธ์ อุณหภูมิในเครื่อง เป็นต้น ตัวอุปกรณ์ที่รองรับ SNMP เรามักจะเรียกว่า SNMP Agent

นอกจากจะใช้ SNMP เพื่อคิวรี่ข้อมูลแล้วนะครับ มันยังใช้ในการอัพเดทสถานะโดยที่ไม่ต้องคอยคิวรี่จาก SNMP Manager ก็ได้ เรียกว่า SNMP Trap โดยเมื่อมีเหตุการณ์อะไรเกิดขึ้นกับ SNMP Agent เช่นพอร์ตอัพ/ดาวน์ ทรัพยากรณ์ในเครื่องเหลือน้อย เป็นต้น มันก็จะส่ง Trap ไปยัง SNMP Server และแจ้งให้ผู้ดูแลระบบทราบต่อไปเพื่อหาทางแก้ไขปัญหา

โปรแกรม net-snmp จะทำให้ CentOS กลายเป็น SNMP Agent และสามารถส่ง SNMP Trap ได้ด้วย เมื่อเราติดตั้งโปรแกรม SNMP Server เช่นที่บอกไว้ตอนต้น โดยอาจจะลงบนเครื่องเดียวกันหรือคนละเครื่องก็ได้ ก็จะมอนิเตอร์สภาพของเครื่อง CentOS ได้

1 ติดตั้ง net-snmp
แบบ 64 บิตใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install net-snmp.x86_64 net-snmp-libs.x86_64 net-snmp-devel.x86_64 net-snmp-utils.x86_64 net-snmp-perl.x86_64

แบบ 32 บิตใช้คำสั่ง
โค้ด: เลือกทั้งหมด
yum -y install net-snmp net-snmp-libs net-snmp-devel net-snmp-utils net-snmp-perl


ซึ่ง CentOS จะรู้จัก net-snmp ในชื่อ snmpd และ snmptrapd นะครับ และไฟล์คอนฟิกคือ /etc/snmp/snmpd.conf

2 ทำให้ net-snmp กลายเป็น Service หนึ่งบน CentOS
โค้ด: เลือกทั้งหมด
chkconfig --level 35 snmpd on

หรืออาจจะอินาเบิล snmptrapd ด้วยก็ได้
โค้ด: เลือกทั้งหมด
chkconfig --level 35 snmptrapd on


3 แก้ไขไฟล์คอนฟิก
ที่จริง net-snmp มีทูลที่จะใช้สร้างไฟล์คอนฟิก snmpd.conf ด้วยนะครับ ชื่อว่า snmpconf แต่ผมนิยมแก้ไขไฟล์คอนฟิกเองมากกว่า แก้ไขไม่กี่บรรทัด
โค้ด: เลือกทั้งหมด
vi /etc/snmp/snmp.conf

เพิ่ม 3 บรรทัดนี้เข้าไป
syslocation Bangkok
syscontact info@voip4share.com
rocommunity voip4share

บันทึกไฟล์
บรรทัด rocommunity เปรียบเสมือนพาสเวอร์ด ต้องเอาค่านี้ใส่เข้าไปใน SNMP Server ด้วยนะคับ ต้องตรงกัน ส่วนบรรทัดที่เหลือก็ปล่อยไว้ก่อนครับ

4 สตาร์ท snmpd
โค้ด: เลือกทั้งหมด
service snmpd start


ส่วน snmptrapd จะสตาร์ทหรือไม่ก็ได้นะครับ ตอนนี้ยังไม่จำเป็นต้องใช้

5 พอร์ตขณะทำงาน
snmpd เวลามันทำงานจะทำงานที่พอร์ต 161 แบบ UDP นะครับ ส่วน snmptrapd จะทำงานที่พอร์ต 162 เป็น UPD เช่นเดียวกัน ถ้ามีไฟร์วอลล์เช่น iptables ก็ต้องเปิด 2 พอร์ตนี้ด้วย โดยเพิ่มบรรทัดนี้เข้าไปในไฟล์ /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 161:162 -j ACCEPT