ทำไม SNMP ถึงแตก?


28

เวอร์ชันของ Ubuntu: Ubuntu 14.04.1 LTS

เวอร์ชัน SNMP: 5.7.2

ปัญหาสั้น: รายการจำนวนมากในไฟล์กำหนดค่า "เริ่มต้น" จะใช้งานไม่ได้ ซึ่งไม่สำคัญเพราะฉันไม่สามารถเริ่ม SNMP ได้

ผลลัพธ์ที่ต้องการ: ฉันต้องการอินสแตนซ์ SNMP ที่ใช้งานได้หนึ่งรายการที่มีค่าเริ่มต้นจำนวนมากซึ่งทำงานได้ดีที่สุด

หมายเหตุ: จากแหล่งข้อมูลมากมายรวมถึงเว็บไซต์ Ubuntu ที่ Canonical เป็นเจ้าของกล่าวกันว่าฉันต้องแก้ไขexportและSNMPDOPTSเพื่อให้มีฟังก์ชั่นพื้นฐาน

/etc/default/snmpd

export MIBS=UCD-SNMP-MIB
SNMPDRUN=yes
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
TRAPDRUN=no
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
SNMPDCOMPAT=yes

/etc/snmp/snmpd.conf

view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
rocommunity public
rwcommunity nanana
sysLocation    vm1-ryd-wlo
sysContact     Paul Adams <pauladams@nanana.com>
sysServices    72
disk       /     10000
disk       /var  5%
load   12 10 5
trapsink     localhost public
iquerySecName   internalUser
rouser          internalUser
master          agentx

/var/log/syslog

Oct  3 13:59:51 mdnsreflector-ryd-wlo snmpd[9120]: Server Exiting with code 1
Oct  3 14:00:09 mdnsreflector-ryd-wlo snmpd[9143]: Turning on AgentX master support.
Oct  3 14:00:09 mdnsreflector-ryd-wlo snmpd[9145]: NET-SNMP version 5.7.2

sudo service --status-all

[ + ]  snmpd

sudo service ufw status

Status: inactive
  1. แม้ว่าการกำหนดค่านี้จะโหลดและเห็นได้ชัดว่ากำลังทำงานอยู่ คุณไม่สามารถสอบถามอะไรจากอินสแตนซ์ SNMP นี้จากอุปกรณ์ระยะไกลได้ การเชื่อมต่อหมดเวลาในที่สุด

  2. การค้นหาจากเซิร์ฟเวอร์นั้นไม่มีผลอะไรเลย

snmpwalk -Os -c public -v 1 localhost ระบบ

system: Unknown Object Identifier (Sub-id not found: (top) -> system)
  1. ฉันต้องลบรายการ "agentAddress" เพราะซอฟต์แวร์ยังคงตื่นตระหนกทุกครั้งที่พยายามประมวลผลคำสั่งนั้น (แม้ว่าจะเป็นค่าเริ่มต้นและวิธีที่ควรจะแสดงในการกำหนดค่า)

/etc/var/syslog

Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Turning on AgentX master support.
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Turning on AgentX master support.
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Error opening specified endpoint "udp:161"
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Server Exiting with code 1

บริการ sudo - สถานะทั้งหมด

[ - ]  snmpd
  1. ฉันต้องลบหลายรายการเริ่มต้นในการกำหนดค่าเพราะพวกเขายังก่อให้เกิดข้อผิดพลาดเมื่อใช้พวกเขา

/etc/snmp/snmpd.conf

proc mount
proc ntalkd    4
proc sendmail    10 1
includeAllDisks 10%
extend    test1   /bin/echo  Hello, world!
extend-sh test2   echo Hello, world! ; echo Hi there ; exit 35

/ var / log / syslog

Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 90: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 92: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 94: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 106: Error: includeAllDisks already specified.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 106: Error: #011ignoring: includeAllDisks 10%
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 146: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: message repeated 6 times: [ /etc/snmp/snmpd.conf: line 146: Error: duplicate trigger name]
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 148: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 148: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: duplicate table data attempted to be entered. row exists
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: Failed to register extend entry 'test1' - possibly duplicate name.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: duplicate table data attempted to be entered. row exists
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: Failed to register extend entry 'test2' - possibly duplicate name.

คำแนะนำต่อไปนี้ได้รับการตรวจสอบเพื่อใช้กับ 14.04 askubuntu.com/a/223734/106495
Kevin Bowen

คำตอบ:


2

SNMP ไม่แตก กระบวนการที่จะทำให้มันใช้งานได้นั้นค่อนข้างซับซ้อน

ขั้นตอนต่อไปนี้ผ่านการตรวจสอบเพื่อใช้งานกับ 14.04:

หลังจากติดตั้ง SNMP และ daemon ( sudo apt-get install snmp snmpd) แล้วคุณจะต้องแก้ไขไฟล์/etc/snmp/snmp.confและใส่เครื่องหมายบรรทัดที่มี "mibs:"

ภายในไฟล์นี้ให้เปลี่ยนบรรทัด:

mibs :

ไปยัง

#mibs : 

ต่อไปสมมติว่าคุณยังไม่ได้ทำสิ่งนี้คุณจะต้องได้รับ IETF MIB แบบเต็ม ไฟล์เหล่านี้ไม่ได้จัดส่งตามค่าเริ่มต้นในระบบ Debian / Ubuntu เนื่องจากปัญหาการออกใบอนุญาต

จากเทอร์มินัล ( Ctrl- Alt- t) ให้ป้อนคำสั่งต่อไปนี้:

sudo apt-get install snmp-mibs-downloader

sudo download-mibs

/etc/snmp/snmpd.confจากนั้นคุณจะต้องแก้ไข

  1. ในการอนุญาตให้ SNMP ระบบได้รับข้อความค้นหาบนอินเตอร์เฟสนอกเหนือจากที่อยู่ลูปแบ็ค บรรทัดสำหรับสิ่งนี้ควรมีลักษณะดังนี้:

    #  Listen for connections from the local system only
    #  agentAddress  udp:127.0.0.1:161
    #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
    agentAddress udp:161,udp6:[::1]:161
    

    โปรดทราบว่าสิ่งนี้จะช่วยให้ระบบใด ๆ สอบถามเครื่องของคุณ คุณจะต้องปรับตัวเพื่อ จำกัด การเข้าถึง SNMP ของอุปกรณ์ของคุณ

  2. ตอนนี้คุณจะต้องการเปลี่ยนสตริง SNMP แบบอ่านอย่างเดียวจากpublicเป็นสตริงที่กำหนดเองที่คุณเลือกดังนี้:

    #rocommunity public  default    -V systemonly
    rocommunity <My$ecret$tr1nG> (don't use this example!)
    

    หมายเหตุ: การลบออก-V systemonlyจากบรรทัดจะทำให้สามารถเข้าถึงแผนผัง MIB ทั้งหมดและไม่ จำกัด เฉพาะส่วนของระบบของแผนผัง

  3. รีสตาร์ท SNMP daemon

    sudo service snmpd restart
    

ในที่สุดแบบสอบถาม SNMP ของคุณควรตอบสนองอย่างถูกต้อง

เช่น:

snmpwalk -v 2c -c <My$ecret$tr1nG> <MachineName> ipadd

IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntAddr.192.168.1.7 = IpAddress: 192.168.1.7
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.192.168.1.7 = INTEGER: 2
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntNetMask.192.168.1.7 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
IP-MIB::ipAdEntBcastAddr.192.168.1.7 = INTEGER: 1

ดูคำตอบต่อไปนี้สำหรับการอ้างอิงเพิ่มเติม:

วิธีรับหรือกำหนดค่า IP-MIB ใน Ubuntu 12.04

SNMP คืออะไร


0

ฉันจะเริ่มต้นด้วยการกำหนดค่าหุ้นด้วยมุมมองเป็น. 1 เปิดใช้งานการบันทึกการดีบักและลองรับการสืบค้นไปยัง OID ฉันไม่เคยได้รับ MIBs และเนื่องจากฉันใช้ SNMP สำหรับสิ่งต่าง ๆ เช่น MRTG และ cacti เท่านั้นฉันจึงไม่จำเป็นต้องรู้มากขึ้น ดูว่าคุณสามารถทำให้การกำหนดค่าที่ง่ายที่สุดเป็นไปได้หรือไม่จากนั้นเพิ่มองค์ประกอบทีละรายการในขณะที่ปรับแต่งไฟล์บันทึกที่เกี่ยวข้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.