SNMP เป็นเครื่องมือหนึ่งที่สามารถใช้ดูการทำงานของเครื่อง เก็บประวัติการใช้ resource ต่างๆ ของเครื่อง ไม่ว่าจะเป็น CPU, Memory, Disk, Network แล้วสามารถนำมาใช้สร้างเป็นกราฟ รายงาน เพื่อวางแผนการเพิ่ม hardware เมื่อจำเป็นได้
ในบทความนี้จะอธิบายวิธีการคอนฟิกและรัน SNMP Server บน Solaris 10 เพื่อให้สามารถใช้โปรแกรม SNMP เช่น MRTG, Cacti, NMS มาเก็บค่าต่างๆ ได้
ระบบทดสอบ
บทความนี้ทดสอบบน Solaris 10 (x86) 10/09
# cat /etc/release Solaris 10 10/09 s10x_u8wos_08a X86 Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 16 September 2009
รันเซอร์วิส sma
โปรแกรมชุด SNMP หรือ System Management Agent ใน Solaris 10 ได้มาจาก Net-SNMP ซึ่งเป็น freeware โดยจะถูกติดตั้งใน path ที่ชื่อ /usr/sfw/ ดังนี้น เวลารันคำสั่ง อาจต้องมีการระบุ PATH เพิ่มเติม
System Management Agent บน Solaris 10 ถูกควบคุมด้วยเซอร์วิสที่ชื่อ sma
ใช้คำสั่ง svcs เพื่อตรวจสอบว่ารันเซอร์วิส sma อยู่หรือไม่
# svcs -a | grep sma disabled 13:50:30 svc:/application/management/sma:default
หมายเหตุ ต้องระบุออปชั่น ‘-a’ เพื่อดูชื่อเซอร์วิสทั้งหมด ทั้งที่ enable และ disable ไว้
ไฟล์คอนฟิกของ SNMP Server คือ /etc/sma/snmp/snmpd.conf
# cat /etc/sma/snmp/snmpd.conf ... ########################################################################### # # SECTION: Access Control Setup # # This section defines who is allowed to talk to your running # snmp agent.
# rocommunity: a SNMPv1/SNMPv2c read-only access community name # arguments: community [default|hostname|network/bits] [oid]
rocommunity public ...
ดีฟอลต์ SNMP Community String แบบ read-only คือ “public” แนะนำให้เปลี่ยน เช่นเปลี่ยนเป็น “test_public_read”
# cat /etc/sma/snmp/snmpd.conf ... rocommunity test_public_read ...
ใช้คำสั่ง svcadm เพื่อรันเซอร์วิส sma
# svcadm enable svc:/application/management/sma:default
# svcs -a | grep sma online 14:18:37 svc:/application/management/sma:default
ใช้คำสั่ง ps เพื่อตรวจสอบ process ของ snmpd (SNMP Server)
# ps -ef | grep snmp root 1008 1 0 14:18:38 ? 0:00 /usr/sfw/sbin/snmpd
ทดลองใช้คำสั่ง snmpwalk เพื่อ walk ค่าต่างๆ ผ่านทาง SNMP
# /usr/sfw/bin/snmpwalk -v 1 -c test_public_read 127.0.0.1 system SNMPv2-MIB::sysDescr.0 = STRING: SunOS sol10u8-zfs64a 5.10 Generic_141445-09 i86pc SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.3 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (12062) 0:02:00.62 SNMPv2-MIB::sysContact.0 = STRING: "System administrator" SNMPv2-MIB::sysName.0 = STRING: sol10u8-zfs64a SNMPv2-MIB::sysLocation.0 = STRING: "System administrators office" SNMPv2-MIB::sysServices.0 = INTEGER: 72 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (64) 0:00:00.64 SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB ...