SNMP가 고장난 이유는 무엇입니까?


28

우분투 버전 : 우분투 14.04.1 LTS

SNMP 버전 : 5.7.2

짧은 문제 : "기본"구성 파일의 많은 항목이 손상되었습니다. 심지어 SNMP를 시작할 수 없기 때문에 중요하지 않습니다.

원하는 결과 : 가능한 많은 기본 기능을 갖춘 작동하는 SNMP 인스턴스를 원합니다.

참고 : Canonical 소유의 Ubuntu 웹 사이트를 포함하여 많은 출처에서 기본 기능을 사용하려면 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 서비스 --status-all

[ - ]  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 및 해당 데몬 ( 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 데몬을 다시 시작하십시오.

    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

추가 참조를 위해 다음 답변을 참조하십시오.

Ubuntu 12.04에서 IP-MIB를 가져 오거나 구성하는 방법은 무엇입니까?

SNMP 란 무엇입니까?


0

나는 .1을 볼 수있는 스톡 구성으로 시작하고 디버그 로깅을 활성화하며 OID에 쿼리를 시도합니다. 나는 솔직히 MIB를 얻지 못했으며 MRTG 및 선인장과 같은 것들에 SNMP 만 사용했기 때문에 더 이상 알 필요가 없었습니다. 가능한 가장 간단한 구성 작업을 수행 할 수 있는지 확인한 다음 관련 로그 파일을 마무리하면서 한 번에 하나의 요소를 추가하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.