ติดตั้งและกำหนดค่า SNMP บน RHEL/CentOS/Fedor
โปรโตคอลการจัดการเครือข่ายอย่างง่าย (
SNMP) ใช้เพื่อรับข้อมูลเกี่ยวกับสถานะปัจจุบันของเซิร์ฟเวอร์ อุปกรณ์เครือข่าย เครื่องพิมพ์ หรืออุปกรณ์ IP อื่นๆ คุณสามารถรับเมตริกต่างๆ ผ่าน SNMP: การใช้งาน CPU, จำนวนกระบวนการ, สถานะของบริการ ฯลฯ ข้อดีของ SNMP ที่สำคัญคือรองรับโดยอุปกรณ์เกือบทุกชนิด และไม่จำเป็นต้องติดตั้งเอเจนต์ระบบการตรวจสอบแยกต่างหาก ในบทความนี้ เราจะแสดงวิธีการติดตั้งและกำหนดค่า SNMP (และ SNMP v3) agent บนโฮสต์ Linux ที่ใช้ CentOS, RHEL หรือ เฟดอร่า
การติดตั้ง 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 gedc2-admins@a-d.siteนี่คือพารามิเตอร์ SNMP พื้นฐานสามตัว มีตัวเลือกอื่น ๆ อีกมากมายสำหรับการกำหนดค่าเอเจนต์ Net-SNMP แต่เราไม่สามารถครอบคลุมทุกอย่างในบทความเดียว
บันทึกไฟล์ (แนะนำให้ป้อนตำแหน่งที่ถูกต้องและที่อยู่อีเมลที่ถูกต้อง) จากนั้นเปิดใช้งานบริการ 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 systemSNMPv2-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: gedc2-admins@a-d.site
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:
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


