SNMP 서비스 컴파일 설치 하기

[Net-SNMP]에서 제공하는 SNMP를 컴파일 하여 직접 설치해 보도록 하겠습니다. 이 글을 작성하는 시점에서의 가장 최신 버젼은 5.5입니다. 시간이 지나서 이글을 보실 경우에는 홈페이지에 방문하여 나오는 가장 최신인 안정화 버젼을 사용하시면 됩니다.

컴파일 하여 설치하기
/usr/local/net-snmp에 설치한다는 조건하에 다음과 같은 옵션으로 설치합니다.

$ tar -zxvf net-snmp-5.5.tar.gz
$ cd net-snmp-5.5
$ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure --prefix=/usr/local/net-snmp \
  --disable-shared --with-mib-modules=mibII,host,mibII/ip,mibII/tcp,mibII/udp, \
  mibII/icmp,mibII/var_route,mibII/kernel_linux,ucd_snmp
$ make
$ make install

설정 파일 생성하기
EXAMPLE.conf 파일을 참고하셔서 설정파일을 생성하시면 됩니다. 기본적인 위치는 /usr/local/net-snmp/share/snmp/snmpd.conf 입니다.

rocommunity public
rocommunity public 127.0.0.1
rocommunity test 87.65.43.21
includeAllDisks

위와 같은 간단한 설정만으로도 CPU사용량, 로드에버리지, 네트워크, 메모리/스왑 사용량, 접속 사용자, 실행중인 프로세스 정보를 얻어올 수 있습니다. includeAllDisks옵션은 NFS를 포함한 마운트된 모든 파티션의 정보를 얻어올 수 있게 하는 옵션입니다.

서비스 실행
서비스는 다음의 명령으로 실행합니다. /etc/rc.d/rc.local 파일등에 넣어두면 자동 실행 시킬 수 있습니다.

/usr/local/net-snmp/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a

서비스가 정상적으로 수행중인지 정상적으로 161번 포트가 열려있는지 확인해 봅시다. 결과가 출력된다면 성공입니다.

$ netstat -ln | grep 161

참고 : http://forums.cacti.net/about15353.html

rrdtool 설치 하기

MRTG와 쌍벽을 이루는 그래프를 그리기 위한 툴인 rrdtool의 경우 yum등을 통해 손쉽게 설치가 가능합니다. 하지만 이번에는 수동으로 설치하는 방법을 알아볼까 합니다. 이 글은 [이것]을 참고하였습니다. 시간이 지나 새로운 버젼이 나오게 되면 과거버젼의 글이 되어버리므로 참고만 하시되 원본글을 보고 설치하시기 바랍니다.

설치 준비하기
최소한의 설치 준비를 위해 다음을 생각해 두어야 합니다.

1. 어느 디렉토리에서 설치를 위한 빌드를 준비할 것인가?
2. 어느 디렉토리에 설치할 것인가?

두가지를 결정하였다면 환경 변수로 등록해 둡니다.
[code]BUILD_DIR=/tmp/rrdbuild
INSTALL_DIR=/opt/rrdtool-1.4.2[/code]
빌드를 할 디렉토리를 만들어서 이동합니다.
[code]mkdir -p $BUILD_DIR
cd $BUILD_DIR[/code]
추가로 필요로 하는 라이브러리를 알아보기 위한 설치를 시도해 봅니다.
[code]wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.2.tar.gz
gunzip -c rrdtool-1.4.2.tar.gz | tar xf –
cd rrdtool-1.4.2
./configure –prefix=$INSTALL_DIR && make && make install[/code]
위의 결과가 정상적으로 끝난다면 필요한 라이브러리가 모두 있는것으로써 바로 사용이 가능해 집니다. 하지만 보통은 어떤 라이브러리들이 없는 쭉 나오게 됩니다. 그것을 적어두고 다음으로 넘어갑니다.

의존성 라이브러리 설치하기
설치를 하기에 앞서 라이브러리들이 서로 참조를 하기 때문에 다음을 수행하여 문제 없이 이루어 지도록 해줍니다.
[code]export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig
export PATH=$INSTALL_DIR/bin:$PATH
export LDFLAGS=”-Wl,–rpath -Wl,${INSTALL_DIR}/lib”
export MAKE=make[/code]
이후 다음의 라이브러리들중 필요로 하는 라이브러리만 선별적으로 순서대로 설치를 합니다.

– pkgconfig
[code]wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
gunzip -c pkg-config-0.23.tar.gz | tar xf –
cd pkg-config-0.23
./configure –prefix=$INSTALL_DIR CFLAGS=”-O3 -fPIC”
$MAKE
$MAKE install[/code]
– zlib
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz
gunzip -c zlib-1.2.3.tar.gz | tar xf –
cd zlib-1.2.3
./configure –prefix=$INSTALL_DIR CFLAGS=”-O3 -fPIC” –shared
$MAKE
$MAKE install[/code]
– libpng
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz
gunzip -c libpng-1.2.18.tar.gz | tar xf –
cd libpng-1.2.18
env CFLAGS=”-O3 -fPIC” ./configure –prefix=$INSTALL_DIR
$MAKE
$MAKE install[/code]
– freetype
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.gz
gunzip -c freetype-2.3.5.tar.gz | tar xf –
cd freetype-2.3.5
./configure –prefix=$INSTALL_DIR CFLAGS=”-O3 -fPIC”
$MAKE
$MAKE install[/code]
– libXML2
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/libxml2-2.6.32.tar.gz
gunzip -c libxml2-2.6.32.tar.gz | tar xf –
cd libxml2-2.6.32
./configure –prefix=$INSTALL_DIR CFLAGS=”-O3 -fPIC”
$MAKE
$MAKE install[/code]
– fontconfig
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/fontconfig-2.4.2.tar.gz
gunzip -c fontconfig-2.4.2.tar.gz   | tar xf –
cd fontconfig-2.4.2
./configure –prefix=$INSTALL_DIR CFLAGS=”-O3 -fPIC” \
  –with-freetype-config=$INSTALL_DIR/bin/freetype-config
$MAKE
$MAKE install[/code]
font-config의 경우, 설치중에 폰트캐시를 생성하게 됩니다. 하지만 시스템을 X를 제외하여 설치하였다면 폰트가 하나도 없게 되어 캐시를 생성해봤자 사용할 수 있는 폰트가 없기 때문에 모든 문자가 깨져 나오게 됩니다. 이때에는 사용하려는 트루타입 폰트(ttf)를 $INSTALL_DIR/etc/fonts(rpm 패키지로 설치되어있을 경우 /usr/share/fonts) 안에 설치하여 주신후에 fc-cache를 실행하여 주시면 됩니다.

– Pixman
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/pixman-0.10.0.tar.gz
gunzip -c pixman-0.10.0.tar.gz  | tar xf –
cd pixman-0.10.0
./configure –prefix=$INSTALL_DIR CFLAGS=”-O3 -fPIC”
$MAKE
$MAKE install[/code]
– Cairo
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/cairo-1.6.4.tar.gz
gunzip -c cairo-1.6.4.tar.gz   | tar xf –
cd cairo-1.6.4
./configure –prefix=$INSTALL_DIR \
   –enable-xlib=no \
   –enable-xlib-render=no \
   –enable-win32=no \
   CFLAGS=”-O3 -fPIC”
$MAKE
$MAKE install[/code]
– Glib
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/glib-2.15.4.tar.gz
gunzip -c glib-2.15.4.tar.gz  | tar xf –
cd glib-2.15.4
./configure –prefix=$INSTALL_DIR CFLAGS=”-O3 -fPIC”
$MAKE
$MAKE install[/code]
– Pango
[code]cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/pango-1.21.1.tar.bz2
bunzip2 -c pango-1.21.1.tar.bz2 | tar xf –
cd pango-1.21.1
./configure –prefix=$INSTALL_DIR CFLAGS=”-O3 -fPIC” –without-x
$MAKE
$MAKE install[/code]
다시 rrdtool 설치하기
필요한 의존 라이브러리를 설치하였다면 다시한번 설치를 시도해 봅시다.
[code]cd $BUILD_DIR/rrdtool-1.4.2
./configure –prefix=$INSTALL_DIR –disable-tcl –disable-python
$MAKE clean
$MAKE
$MAKE install[/code]
설치후에 $INSTALL_DIR/share/rrdtool/examples 안에 있는 예제를 실행하여 정상적으로 그래프가 그려지는지 확인하여 봅시다. 잘 된다면 설치 성공입니다.

사용자 삽입 이미지

위는 설치중에 나오는 시디 구매 장난;;