FreeBSD NET-SNMP SOURCE 설치

 

# 테스팅 환경.

- 가상화 : Windows 8.1 Pro에 설치된 Hyper-V

- NET-SNMP 설치할 OS : FreeBSD 7.2 - Release

- SNMP가 정상 작동하는지 확인해줄 OS : CactiEZ-v0.7 (CentOS 6.3 기반)

- Net-SNMP 5.7.2.1 (현재 2014-07-21 최신버전)

 

# 준비물.

- 원하는 버전의 Net-SNMP Source 파일(다운로드 - http://www.net-snmp.org/download.html)

- Ultra ISO 같이 파일들 묶어서 ISO 파일로 만들어주는 툴

 

# 시작하기 전.

 우선 위 링크로 들어가서 이 매뉴얼은 소스설치 메뉴얼이니 Net-SNMP Source 파일을 다운받아줍니다. 저는 FreeBSD 7.2에서 현재 Net-SNMP 최신버전인 5.7.2.1을 설치하면 제대로 작동이 될지 궁금하기도 하고 7.2에서 최신버전이 정상작동이 된다면 FreeBSD 7.2 이후 버전에서 무리 없이 최신버전이 정상작동 될 거라고 생각하고 최신버전을 사용했습니다.

 설치 파일을 다운 받았다면 울트라ISO 같은 툴로 소스파일을 ISO로 만들어줍니다. ISO를 만드는 이유는 테스팅 환경이 Hyper-V 내부네트워크라서 이런저런 방법보단 ISO로 만들어서 디스크 삽입해주는게 귀찮아도 편리하더라구요.  혹 다른 가상화 프로그램을 사용하시거나 게스트OS에 파일 넣는 방법을 따로 사용하신다면 그 방법으로 하시면 됩니다.

ISO를 만들었으면 설치할 게스트OS에 삽입하고 본격적으로 시작합니다.


 

 

# 시작.

 

 ISO 파일을 삽입을 했으면 위 사진처럼 mount 시키고 적당한 디렉토리에서 압축을 풀어줍니다.

 

 

 압축을 다 풀고 압축을 푼 디렉토리로 가서 ./configure 를 입력해줍니다.

 물론 소스 설치에 능숙한 분들이라면 이 글을 보시지도 않겠지만 원하는 옵션을 따로 입력하셔도 상관없습니다.

 

 

 ./configure를 입력했을 때 나오는 메시지입니다. 엔터를 눌러줍니다.

 

 

 첫 번째 화면에서 엔터를 치면 위와 같이 나오는데 SNMP 기본 버전 선택을 할 수 있습니다.

 그냥 엔터로 넘기면 기본값인 SNMP v3이 기본으로 잡히게 됩니다.

 저는 v2가 필요해서 ‘2’를 입력하고 엔터를 쳤습니다.

 이 후 나오는 화면들도 옵션을 설정하는 건데 저는 그냥 엔터치고 다 기본값으로 했습니다.

 원하시는 설정이 있으시면 간략한 영어 설명이 있으니 잘 보시고 맞게 설정해주시면 됩니다.

 

 

 엔터를 치다 보면 화면이 혼자 주르륵 올라가게 되는데 잠시 냅두면 위 화면 처럼 나옵니다.

 환경 설정이 끝이 났으니 makemake install을 해줍니다.

 make 먼저하고 make install을 후에 해줘도 상관은 없습니다.

 

 

 make install 까지 끝나고 나면 실질적으로 net-snmp 설치는 완료가 됬습니다.

 완료 직 후 snmpd 라고 입력을 해보면 위 처럼 찾을 수 없다고 메시지가 출력되는데 이 부분은 재부팅을 하거나

 Shell을 재시작하거나 재로그인을 하면 해결이 됩니다. 저는 그냥 절대경로를 이용해서 계속 했습니다.

 검색을 하다보면 net-snmp 기본 설치시 snmpd/usr/local/etc/rc.d/에 존재한다고 많이 나오는데 제가 했을 때는

 /usr/local/sbin/snmpd가 존재하고 있었습니다.

 아무튼 최초 설치 후 snmpd를 실행하고 sockstat을 실행해보면 *:161로 모든 UDP 161 패킷을 snmpd가 받겠다고 나오고 있습니다.

 하지만 이상하게도 이 상태에서는 아무리 해도 다른 호스트에서 이 OSsnmp 요청을 해도 타임아웃이 되 버립니다.

 Network를 재시작도 해봤고 재부팅도 해봤는데도 작동이 안됐습니다.

 해서 snmpconf를 이용해서 간단한 conf 파일을 만들어보기로 했습니다.

 아마 재부팅이나 shell 재시작을 안 했다면 snmpconf라고 입력해도 못 찾을 겁니다.

 /usr/local/bin/ snmpconf가 있습니다. 이를 이용해서 설정하는 방법은 이미 제 블로그에 있으니 참고하시면 되겠습니다.

 (FreeBSD SNMP 설치 및 설정 - http://thirdnsov.tistory.com/72)

 간단하게 설명하자면 snmpconf를 이용해서 snmp 커뮤니티 이름과 받아들일 IP주소 혹은 대역을 설정해주고

 포트는 기본포트 161로 잡아줬습니다. 제 설정파일 내용은 아래와 같습니다.

 

 

 rocommunity agentaddress 이 두가지만 설정해줬습니다.

 윈도우 환경에서 SNMP 설정하다가 알게 됬는데 커뮤니티 이름하고 IP, 포트만 맞으면 충분한듯 해서 유닉스/리눅스에서도

 테스팅할 때는 이렇게 설정하고 있습니다.

 꼭 snmpconf를 이용안해도 되고 직접 손으로 쓰실분은 쓰셔도 되고 다른 곳에서 퍼오실분은 퍼오셔도 상관은 없습니다.

 이제 간단하게나마 설정을 끝냈으니 snmpd를 다시 시작해줍니다.

 

 

 최초 설치 후 snmpd를 실행하고 아직 종료를 안 했으니 kill 혹은 killall로 종료시켜 줍니다.

 (다른 종료방법이 있을 텐데 .. 못 찾겠더라구요.. 아시는 분 피드백 좀 부탁 드립니다.)

 

 

 종료시킨 후 다시 snmpd를 실행시켜줍니다.

 그리고 이제 정상작동을 하는지 알기 위해 다른 OS에서 snmpwalk를 실행시켜줍니다.

 저는 앞서 설정할 때 넣었던 192.168.137.186을 이용했습니다.

 

 

이미지에서는 나오지 않았지만

snmpwalk –v2c –c public 192.168.137.223

라고 입력했을 때 위 화면과 같이 알 수 없는 문장들이 주르르륵 하고 올라가면 정상적으로

설치 및 설정이 완료된 것입니다.

 

 

# Tip.

 팁이라고 할 것 까지는 없지만 테스팅을 할 때 좀 애먹었던 걸 공유하고자 씁니다.

가상OS로 하다보니 재부팅을 할 때가 많았는데..그 때 겪은 일입니다.

net-snmp 설치 후 정상작동 확인을 다 했는대도 재부팅을 하고 나면 snmpd가 작동을 하고 있음에도 불구하고

다른 호스트에서 snmpwalk가 타임아웃이 됐었습니다.

문제를 찾고자 snmpwalk를 쉘 스크립트로 만들고 실행시키고 FreeBSD 7.2에서 재부팅을 몇 번 더 하기도 해보고

snmpd를 재시작도 해보고 했지만 여전히 정상작동을 하지 않았습니다.

안되는 건가.. 하고 포기하려는데 마지막으로 network만 재시작 해보자 하고

/etc/rc.d/netif restart를 입력했었습니다. 왠걸 .. snmpwalk가 정상작동이 되더라구요..

Snmpd가 정상적으로 떠있고 다른게 아무 문제가 없다고 판단되면 netif를 재시작해보세요.

깔끔하게 해결이 될 수도 있습니다.

 

# .

 좀 급하게 문서작성한거라 이상하게 느껴지긴 하는데 처음 문서 작성하겠다고 생각하고 캡쳐할 때는 작업 하나하나 모든걸

캡쳐했었내요.. 문서 만들면서 너무 불필요한 것들이라 통편집시켜버렸습니다.. 내 시간..

그리고 이번 소스 설치를 하면서 찾은건데 FreeBSD는 자체적으로 bsnmpd 라는 데몬을 가지고 있더라구요

따로 Net-SNMP 설치를 안해줘도 사용도 가능하고 설정도 Net-SNMP하고 비슷하고 나름 손쉽게 할 수 있는 것 같았습니다.

다만 제가 못하는 건지 특정 IP나 IP대역을 설정을 할 수 있는데 아무리 설정을 해줘도 먹통이 되서 실질적으로 사용하기엔

무리가 있어보이더라구요.. 구글링으로 설정값 이것저것 많이 찾아서 따라서 해보고 똑같이도 해보고 했는데

아무리해도 0.0.0.0이나 루프백 이외에는 작동을 하지 않더라구요 ..

해외 문서들 보면 특정 IP 콕 찍어서 설정해서 잘 쓴다는거 같던데.. FreeBSD를 사용하는데 Net-SNMP를 설치할 여건이 안되고

모든 네트워크에서 SNMP 패킷 받는게 상관없다 하면 bsnmp 써도 괜찮겠다 싶더라구요

물론 특정 IP 콕 찝어서 할 수 있을겁니다.. 아시는 분 피드백 좀 부탁드려요 ㅠㅠ

이 포스팅은 처음 워드로 작성했습니다.

 

_3_FreeBSD_NET-SNMP 설치.docx

 

+ Recent posts