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