우분투 버전 : 우분투 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
-
이 구성이로드되어 분명히 실행되고 있습니다. 실제로이 SNMP 인스턴스에서 원격 장치로는 아무것도 쿼리 할 수 없습니다. 연결이 결국 시간 초과됩니다.
-
서버 자체에서 쿼리하면 아무것도 생성되지 않습니다.
snmpwalk -Os -c public -v 1 localhost 시스템
system: Unknown Object Identifier (Sub-id not found: (top) -> system)
- 소프트웨어가 해당 명령을 처리하려고 시도 할 때마다 계속 당황하기 때문에 “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
- 구성에서 기본 항목 중 몇 가지를 제거해야했는데, 실행시 오류가 발생했기 때문입니다.
/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.
답변
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
.
-
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 액세스를 제한하려면이를 조정해야합니다.
-
이제 다음과 같이 읽기 전용 SNMP 문자열
public
을 원하는 사용자 지정 문자열 로 변경하려고 합니다.#rocommunity public default -V systemonly rocommunity <My$ecret$tr1nG> (don't use this example!)
참고 :
-V systemonly
회선에서 제거 하면 전체 MIB 트리에 액세스 할 수 있으며 트리의 시스템 부분으로 제한되지 않습니다. -
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
추가 참조를 위해 다음 답변을 참조하십시오.
답변
나는 .1을 볼 수있는 스톡 구성으로 시작하고 디버그 로깅을 활성화하며 OID에 쿼리를 시도합니다. 나는 솔직히 MIB를 얻지 못했으며 MRTG 및 선인장과 같은 것들에 SNMP 만 사용했기 때문에 더 이상 알 필요가 없었습니다. 가능한 가장 간단한 구성 작업을 수행 할 수 있는지 확인한 다음 관련 로그 파일을 마무리하면서 한 번에 하나의 요소를 추가하십시오.