โปรโตคอลการจัดการเครือข่ายอย่างง่าย (SNMP
) ใช้เพื่อรับข้อมูลเกี่ยวกับสถานะปัจจุบันของเซิร์ฟเวอร์ อุปกรณ์เครือข่าย เครื่องพิมพ์ หรืออุปกรณ์ IP อื่นๆ คุณสามารถรับเมตริกต่างๆ ผ่าน SNMP:การใช้ CPU, จำนวนกระบวนการ, สถานะของบริการ ฯลฯ ข้อได้เปรียบที่สำคัญของ SNMP คือมีการสนับสนุนโดยอุปกรณ์เกือบทุกชนิด และไม่จำเป็นต้องติดตั้งเอเจนต์ระบบตรวจสอบแยกต่างหาก ในบทความนี้เราจะแสดงวิธีการติดตั้งและกำหนดค่า SNMP (และ SNMP v3) ตัวแทน บน Linux โฮสต์ที่ใช้ CentOS, RHEL หรือ Fedora
การติดตั้ง SNMP Agent และเครื่องมือวินิจฉัยบน Linux
ก่อนที่คุณจะติดตั้งแพ็คเกจ SNMP ให้ติดตั้งการอัปเดตล่าสุดบนเซิร์ฟเวอร์ของคุณโดยใช้ dnf (yum):
# dnf update -y
จากนั้นติดตั้งเอเจนต์ SNMP และเครื่องมือเพิ่มเติมจากที่เก็บฐาน:
# dnf install net-snmp net-snmp-utils -y
จะเปิดใช้งานและกำหนดค่า SNMP Agent บน Linux ได้อย่างไร
ก่อนกำหนดค่า SNMP ให้สร้างสำเนาของไฟล์ปรับแต่งดั้งเดิม:
# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
จากนั้นแก้ไขการตั้งค่าตัวแทน SNMP:
# nano /etc/snmp/snmpd.conf
เพิ่มบรรทัดต่อไปนี้:
rocommunity public syslocation GE-DC2 syscontact [email protected]นี่คือพารามิเตอร์ SNMP พื้นฐานสามตัว มีตัวเลือกอื่นๆ มากมายสำหรับการกำหนดค่า Net-SNMP agent แต่เราไม่สามารถครอบคลุมทุกอย่างในบทความเดียว
บันทึกไฟล์ (ขอแนะนำให้ป้อนตำแหน่งที่ถูกต้องและที่อยู่อีเมลที่ถูกต้อง) จากนั้นเปิดใช้งานบริการ snmpd และเริ่มต้น:
# systemctl enable snmpd.service
# systemctl start snmpd
ตรวจสอบให้แน่ใจว่าบริการกำลังทำงาน:
# systemctl status snmpd
หากคุณกำลังใช้ไฟร์วอลล์บนเซิร์ฟเวอร์ของคุณ ให้อนุญาตการเชื่อมต่อกับพอร์ต TCP/UDP 161 และ 162 ใช้คำสั่งต่อไปนี้เพื่อเปิดพอร์ต SNMP ในไฟร์วอลล์:
# firewall-cmd --zone=public --add-port=161/udp --permanent
# firewall-cmd --zone=public --add-port=161/tcp –permanent
# firewall-cmd --zone=public --add-port=162/udp --permanent
# firewall-cmd --zone=public --add-port=162/tcp --permanent
# firewall-cmd --reload
สำรวจตัวแทน SNMP โดยใช้ Snmpwalk
คุณสามารถสำรวจตัวแทน SNMP โดยใช้ snmpwalk เครื่องมือ. ในการตรวจสอบบริการภายในเครื่องโดยใช้โปรโตคอล SMMPv2 ให้ใช้คำสั่ง:
# snmpwalk -v 2c -c public -O e 127.0.0.1
หากกำหนดค่า SNMP อย่างถูกต้อง คุณจะได้รับชุดข้อมูล SNMP จากเอเจนต์
หลังจากตั้งค่าไฟล์การกำหนดค่าและรันคำสั่งทดสอบ ฉันได้รับข้อผิดพลาดด้านล่าง:Timeout: No Response from localhost
ฉันแก้ไขโดยล้างไฟล์การกำหนดค่าและเพิ่มเฉพาะบรรทัดที่ฉันระบุไว้ข้างต้น หากคุณต้องการการตั้งค่าเฉพาะ ให้ตรวจสอบทุกอย่างอย่างละเอียด เนื่องจากบริการเริ่มทำงานโดยไม่มีปัญหาใดๆ แต่ใช้งานไม่ได้
คุณยังสามารถสืบค้นเซิร์ฟเวอร์ของคุณภายในเครื่องได้โดยใช้คำสั่งนี้:
# snmpwalk -v2c -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux server1.test.com 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (106564) 0:17:45.64 SNMPv2-MIB::sysContact.0 = STRING: [email protected] SNMPv2-MIB::sysName.0 = STRING: server1.test.com SNMPv2-MIB::sysLocation.0 = STRING: GE-DC2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.7 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.8 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.9 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.10 = Timeticks: (0) 0:00:00.00
จากนั้นตรวจสอบให้แน่ใจว่าตัวแทน SNMP ของคุณพร้อมใช้งานจากระยะไกล เรียกใช้คำสั่งนี้บนเซิร์ฟเวอร์อื่น (ติดตั้งเครื่องมือ snmp ก่อนดำเนินการ):
# snmpwalk -v2c -c public 192.168.21.205 system
อย่างที่คุณเห็น เซิร์ฟเวอร์ระยะไกลได้รับข้อมูลจากเซิร์ฟเวอร์ผ่าน SNMP . ตอนนี้คุณสามารถเพิ่มเซิร์ฟเวอร์ในระบบการตรวจสอบ SNMP ใดๆ (เช่น Zabbix หรือ Cacti) .
นี่คือบทความเกี่ยวกับ “วิธีกำหนดค่า SNMP บนโฮสต์ VMWare ESXi?”กำหนดค่า SNMPv3 บน Linux CentOS/RHEL/Fedora
ในตอนต้นของบทความ เราได้แสดงวิธีกำหนดค่าเอเจนต์ SNMP ที่ใช้ SNMP v1 และ v2 SNMPv3 เป็นโปรโตคอลเวอร์ชันใหม่และปลอดภัยยิ่งขึ้นพร้อมรองรับการตรวจสอบสิทธิ์และการเข้ารหัส ในการกำหนดค่า SNMPv3 ให้สร้างผู้ใช้ด้วยรหัสผ่าน ตั้งรหัสผ่านการเข้ารหัส สิทธิ์การเข้าถึง และอัลกอริธึมการเข้ารหัส (MD5 หรือ SHA)
ในการสร้างผู้ใช้สำหรับ SNMPv3 ให้หยุด snmpd daemon:
# systemctl stop snmpd
จากนั้นคุณสามารถสร้างผู้ใช้:
# net-snmp-create-v3-user -ro -A o2ps2w0dD -a SHA -X r30svV33 -x AES snmpuser
net-snmp-create-v3-user [-ro] [-A authpass] [-a MD5|SHA] [-X privpass][-x DES|AES] [username]
- -ro – หมายความว่าผู้ใช้มีสิทธิ์อ่านอย่างเดียว
- Authpass – รหัสผ่านการตรวจสอบ
- Privpass – คีย์ส่วนตัว
หลังจากรันคำสั่งแล้ว ระบบจะสร้างผู้ใช้ที่มีรหัสผ่านและคีย์ที่ระบุ:
เริ่มบริการ:
# systemctl start snmpd
ลองสำรวจตัวแทน SNMP โดยใช้ snmpwalk โปรดทราบว่าหากต้องการสำรวจผ่าน SNMPv3 คุณต้องระบุชื่อผู้ใช้ รหัสผ่าน และคีย์
# snmpwalk -v3 -a SHA -A o2ps2w0dD -x AES -X r30svV33 -l authPriv -u snmpuser 192.168.21.205 | head