'Nagios'에 해당되는 글 2건

  1. 2009.02.09 net-snmp 설치
  2. 2009.02.09 Windows에 MRTG설치 하기

net-snmp 설치

Nagios 2009. 2. 9. 12:06
// 제  목: ucd-snmp 설치
// 작성자: 김영대(
http://www.howto.pe.kr )  

0.설치환경
  O/S: Linux 2.4.18-3 (Redhat 7.3)
  
1.소개
   SNMP(Simple Network Management Protocol)는 네트웍 장비들로 부터 필요한 정보를 가져와 장비상태를
모니터링하거나 해당 장비의 관련 설정값을 변경하는 등의 작업을 하여 네트웍 장비의 전체상황을 관리
할수 있는 프로토콜이다. 관리대상이 되는 장비들에는 Agent 가 설치되어 있어야 하고 이들 Agent 로부터
정보를 받는 호스트를 Manager 라 한다. SNMP는 RFC-1157에 정의되어 있으며 네트웍 장비를 생산하는
대부분의 업체에서는 RFC-1157 을 따라 생산함으로써 다른 네트웍 장비와의 호환성을 유지하게 한다
SNMP의 RFC-1157 문서는 아래의 URL에서 볼수 있다
    
ftp://ftp.isi.edu/in-notes/rfc1157.txt
ucd-snmp 는 망관리 프로토콜인 SNMP 를 이용할수 있도록 해주는 공개 소프트웨어이다. ucd-snmp 는
현재 버전 5대로 올라가면서 프로젝트의 이름을 net-snmp 로 변경한 상태이다. 일반적으로 많이 사용되고
있는 ucd-snmp의 버전은 4대이다.

0.다운받기(소스)
최신버전 다운받는다 (
http://net-snmp.sourceforge.net )
  
1.설치하기
이전에 Redhat 설치시 RPM 형태로 설치된 snmp 가 있는지 확인하고 이를 제거한다.
또한 실행중인 snmpd 데몬도 종료시킨다
기본으로 설치된 ucd-snmp 는 전체 패키지가 설치된것이 아니므로 다시 설치해야 한다. 소스로 설치할 것이다
다운받은 파일을 임의의 디렉토리에서 압축을 풀고 생성된 디렉토리로 이동한다
  [root root]# tar xvfz ucd-snmp-4.2.6.tar.gz
  [root root]# cd ucd-snmp-4.2.6
  
configure 를 하게되면 몇가지 질문들이 나오는데 그냥 기본값을 사용할것이므로 엔터키를 치고 넘어간다
  [root ucd-snmp-4.2.6]# ./configure
  
configure 작업이 끝났으므로 이제 컴파일을 한다
  [root ucd-snmp-4.2.6]# make
  [root ucd-snmp-4.2.6]# make install
  
설치가 완료되면 아래의 위치에 파일들이 설치된다
  /usr/local/bin  일반적인 명령어들
  /usr/local/sbin  데몬들
  /usr/local/lib  라이브러리들
  /usr/local/include/ucd-snmp  헤더파일들

2.SNMP Agent(snmpd)를 위한 환경설정
/usr/local/share/snmp 에 snmpd.conf 파일을 만들어야 하는데 미리 만들어진것을 복사하여 사용하면 된다
  [root ucd-snmp-4.2.6]# cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf
  
/usr/local/share/snmp 로 이동하여 좀전에 복사한 파일을 일부 수정한다
  [root ucd-snmp-4.2.6]# cd /usr/local/share/snmp
  [root snmp] vi snmpd.conf
  ...
  com2sec local     localhost         private
  com2sec mynetwork 211.225.118.0/24  public
  ...
  group MyRWGroup v1         local
  group MyRWGroup v2c        local
  group MyRWGroup usm        local
  group MyROGroup v1         mynetwork
  group MyROGroup v2c        mynetwork
  group MyROGroup usm        mynetwork

위의 내용은 private 라는 그룹(community) 의 IP 는 localhost 이고 접근 권한은 Read/Write 이며,
public 이라는 그룹의 IP는 211.225.118.0/255.255.255.0 이고 접근 권한은 Read Only 를 의미한다
Agent 로 동작할 경우 아무데서나 접근하지 못하도록 하는것이다

3.테스트
snmpd 데몬을 아래와 같이 띄운다
  [root root]# /usr/local/sbin/snmpd
  
아래처럼 하여 private 그룹 권한으로 localhost를 system OID 의 정보를 읽을 수 있다
  [root root]# snmpwalk localhost private system
  
아래처럼 하여 public 그룹 권한으로 외부의 211.255.118.38 의 system OID 의 정보를 읽을 수 있다
물론 211.255.118.38 의 snmpd.conf 에 pubic 그룹이 위와 같이 같은 네트워크 대의 접근을 허용했어야 한다
  [root root]# snmpwalk 211.255.118.38 public system

4.유용한 OID 모음  
1.CPU
  1.1 정보
  [root root]# snmpwalk localhost private systemStats

  enterprises.ucdavis.systemStats.ssIndex.0 = 1
  enterprises.ucdavis.systemStats.ssErrorName.0 = systemStats
  enterprises.ucdavis.systemStats.ssSwapIn.0 = 0
  enterprises.ucdavis.systemStats.ssSwapOut.0 = 0
  enterprises.ucdavis.systemStats.ssIOSent.0 = 7
  enterprises.ucdavis.systemStats.ssIOReceive.0 = 8
  enterprises.ucdavis.systemStats.ssSysInterrupts.0 = 131
  enterprises.ucdavis.systemStats.ssSysContext.0 = 62
  enterprises.ucdavis.systemStats.ssCpuUser.0 = 0
  enterprises.ucdavis.systemStats.ssCpuSystem.0 = 0
  enterprises.ucdavis.systemStats.ssCpuIdle.0 = 98
  enterprises.ucdavis.systemStats.ssCpuRawUser.0 = Counter32: 31282
  enterprises.ucdavis.systemStats.ssCpuRawNice.0 = Counter32: 102
  enterprises.ucdavis.systemStats.ssCpuRawSystem.0 = Counter32: 10047
  enterprises.ucdavis.systemStats.ssCpuRawIdle.0 = Counter32: 3421252
  
  1.2 부하(1/5/15 분)
  [root root]# snmpwalk localhost private enterprises.ucdavis.laTable.laEntry
  [root root]# snmpwalk localhost private enterprises.ucdavis.laTable.laEntry.laLoad.1
  [root root]# snmpwalk localhost private enterprises.ucdavis.laTable.laEntry.laLoad.2
  [root root]# snmpwalk localhost private enterprises.ucdavis.laTable.laEntry.laLoad.3
  
2.Disk
  [root root]# snmpwalk localhost private dskEntry
  
  enterprises.ucdavis.dskTable.dskEntry.dskIndex.1 = 1
  enterprises.ucdavis.dskTable.dskEntry.dskPath.1 = /
  enterprises.ucdavis.dskTable.dskEntry.dskDevice.1 = /dev/hda2
  enterprises.ucdavis.dskTable.dskEntry.dskMinimum.1 = 10000
  enterprises.ucdavis.dskTable.dskEntry.dskMinPercent.1 = -1
  enterprises.ucdavis.dskTable.dskEntry.dskTotal.1 = 38574396
  enterprises.ucdavis.dskTable.dskEntry.dskAvail.1 = 33272604
  enterprises.ucdavis.dskTable.dskEntry.dskUsed.1 = 3342264
  enterprises.ucdavis.dskTable.dskEntry.dskPercent.1 = 9
  enterprises.ucdavis.dskTable.dskEntry.dskPercentNode.1 = 3
  enterprises.ucdavis.dskTable.dskEntry.dskErrorFlag.1 = 0
  enterprises.ucdavis.dskTable.dskEntry.dskErrorMsg.1 =
  
3.Memory
  [root root]# snmpwalk localhost private memory
  
  enterprises.ucdavis.memory.memIndex.0 = 0
  enterprises.ucdavis.memory.memErrorName.0 = swap
  enterprises.ucdavis.memory.memTotalSwap.0 = 779144
  enterprises.ucdavis.memory.memAvailSwap.0 = 779144
  enterprises.ucdavis.memory.memTotalReal.0 = 385112
  enterprises.ucdavis.memory.memAvailReal.0 = 19064
  enterprises.ucdavis.memory.memTotalFree.0 = 798208
  enterprises.ucdavis.memory.memMinimumSwap.0 = 16000
  enterprises.ucdavis.memory.memShared.0 = 0
  enterprises.ucdavis.memory.memBuffer.0 = 33460
  enterprises.ucdavis.memory.memCached.0 = 236116
  enterprises.ucdavis.memory.memSwapError.0 = 0
  enterprises.ucdavis.memory.memSwapErrorMsg.0 =  
  
5.Network
  5.1 bandwidth
  [root root]# snmpwalk localhost private interfaces.ifTable.ifEntry.ifSpeed
  interfaces.ifTable.ifEntry.ifSpeed.1 = Gauge32: 10000000  -> lo
  interfaces.ifTable.ifEntry.ifSpeed.2 = Gauge32: 10000000  -> eth0

  [root root]# snmpwalk localhost private  interfaces.ifTable.ifEntry.ifPhysAddress
  interfaces.ifTable.ifEntry.ifPhysAddress.1 =
  interfaces.ifTable.ifEntry.ifPhysAddress.2 = 0:1:2:fd:17:45
  
  5.2 traffic
  [root root]# snmpwalk localhost private interfaces.ifTable.ifEntry.ifInOctets
  interfaces.ifTable.ifEntry.ifInOctets.1 = Counter32: 39057       -> lo
  interfaces.ifTable.ifEntry.ifInOctets.2 = Counter32: 43247592  -> eth0

  [root root]# snmpwalk localhost private interfaces.ifTable.ifEntry.ifOutOctets
  interfaces.ifTable.ifEntry.ifOutOctets.1 = Counter32: 39509
  interfaces.ifTable.ifEntry.ifOutOctets.2 = Counter32: 2168525

  [root root]$ snmpwalk localhost private interfaces.ifTable.ifEntry.ifInUcastPkts  
  interfaces.ifTable.ifEntry.ifInUcastPkts.1 = Counter32: 574
  interfaces.ifTable.ifEntry.ifInUcastPkts.2 = Counter32: 592010

  [root root]$ snmpwalk localhost private interfaces.ifTable.ifEntry.ifOutUcastPkts
  interfaces.ifTable.ifEntry.ifOutUcastPkts.1 = Counter32: 580
  interfaces.ifTable.ifEntry.ifOutUcastPkts.2 = Counter32: 18896  
  
6.성능측정시 자주 사용되는 OID
  Network I/O:
    incoming network traffic: .1.3.6.1.2.1.2.2.1.10
    outgoing network traffic: .1.3.6.1.2.1.2.2.1.16

  Sysyem Load:
    Load5, Load10 and Load15:.1.3.6.1.4.1.2021.10.1.3

  CPU Usage:
    CPU_usr, CPU_nice, CPU_nice and CPU_idle:.1.3.6.1.4.1.2021.11

  Memory Usage:
    MEM_free, Swap_MEM_Free:.1.3.6.1.4.1.2021.4

  Disk Usage:
    FreeDSK, UsedDsk:.1.3.6.1.4.1.2021.9

[출처] net-snmp 설치|작성자 헬파이어


Posted by 시스템매니아
,

Windows 에 MRTG 를 설치 해봅시다.

MRTG 서비스를 하기 위한 설치 준비물 MRTG :: http://www.mrtg.org http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/mrtg-2.12.2.zip ActivePerl :: http://www.activeperl.com http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.7.813-MSWin32-x86-148120.msi MRTG Script :: http://www.apmsetup.com/files/mrtg_script.zip
준비물이 갖추어 졌으면 설치를 진행해 보도록 하겠습니다.

일단 ActivePerl 을 기본적으로 C:\Perl 디렉토리에 설치 합니다. 이제 MRTG를 설치 하기 위해서는 SNMP 서비스가 설치되어 있어야 합니다. 설치되어 있지 않다면

시작 -> 제어판 -> 프로그램 추가/제거 -> 구성 요소 추가/제거 를 실행하여 관리 및 모니터링 도구 -> 자세히 -> SNMP(단순 네트워크 관리 프로토콜) 을 체크 하고 확인을 클릭하여 SNMP 서비스를 설치 합니다. 설치가 완료 되면

시작 -> 제어판 -> 관리도구 -> 서비스 를 클릭하여 SNMP Service 의 속성을 살펴 봅니다.

SNMP Service 속성 -> 보안 에서 받아들인 커뮤니티 이름에 public 로 권한은 읽기 전용으로 추가 되어 있는지 확인해 주시고 만약 추가되어 있지 않다면 추가해 주시기 바랍니다. 이제 본격적으로 MRTG 를 설치해 보도록 하겠습니다.

다운로드 받은 MRTG압축 파일을 C:\MRTG 디렉토리로 압축을 해제해 주시기 바랍니다.

그런다음 MRTG 에서 생성된 htm 파일들을 저장하는 디렉토리를 C:\MRTG\output 으로 만들어 줍니다.

다운로드 받은 mrtg_script.zip 압축 파일을 해제 하여 모든 파일을 C:\MRTG\bin 디렉토리로 복사해 줍니다.

이제 스크립트 중에 cfgmaker.cmd 를 실행 시킵니다. 만약 위의 이미지 처럼 나타나지 않고 서버를 찾을 수 없다던지 관련 메세지가 나타나면 SNMP 서비스가 설치되어있지 않거나 커뮤니티를 잘못 설정한 경우이니 다시 한번 확인해 주시기 바랍니다. 위의 명령이 정상적으로 잘 되었다면 C:\MRTG\bin\mrtg.cfg 파일이 생성 되어 있을 것 입니다. 편집기로 열어 보면
위와 같은 설정을 보실 수 있습니다.
위의 설정중에서 주석들을 모두 삭제해 주시고 아래 처럼 작성해 주시기 바랍니다.

내용은 각각의 컴퓨터마다 다르므로 예를 동일하게 사용하시면 동작 되지 않습니다.
꼭 cfgmaker.cmd 로 생성된 파일을 수정해 주셔야 합니다.

WorkDir: C:\MRTG\output Options[_]: bits, growright Language: korean #RunAsDaemon: yes #Interval: 5 EnableIPv6: no Target[eth0]: \Marvell\ Yukon\ 88E8001/8003/8010\ PCI\ Gigabit\ Ethernet\ Controller:public@localhost: SetEnv[eth0]: MRTG_INT_IP="219.252.174.66" MRTG_INT_DESCR="Marvell-Yukon-88E8001/8003/8010-PCI-Gigabit-Ethernet-Controller" MaxBytes[eth0]: 12500000 Title[eth0]: eth0 PageTop[eth0]: <h1>eth0</h1> Extension[eth0]: htm
위와 같이 수정해 줍니다.

테스트를 하기 위해서 C:\MRTG\bin 디렉토리에 있는 mrtg.cmd 를 실행 합니다.

위처럼 에러 메세지가 나타난것 처럼 보이지만 여러번 mrtg.cmd 를 실행하면 메세지가 없어 지는것을 보실 수 있습니다. 위 처럼 나타난다면 정상적으로 동작 하는 것 입니다. 에러 메세지가 나타난다면 mrtg.cfg 설정이 잘못된 경우이므로 다시 한번 확인해 주시거나 cfgmaker.cmd 부터 다시 실시해 주시기 바랍니다.

C:\MRTG\output 디렉토리에 eth0.htm 이 생성되었는지 다시 확인 합니다. 이제 index.htm 을 작성해 보도록 하겠습니다.

C:\MRTG\bin 디렉토리에 있는 indexmaker.cmd 를 실행 합니다. 실행 한 다음 C:\MRTG\output 디렉토리에 index.htm 이 생성되었는지 다시 확인 합니다. 이제 모든 설치 설정이 마무리 되었습니다. 하지만 일일이 수동으로 실행할 수 없기 때문에 NT 서비스로 동작 될 수 있도록 설정해 보겠습니다. 일단 mrtg.cfg 를 편집기로 열으셔서
#RunAsDaemon: yes #Interval: 5
위 처럼 주석처리 해놓은 부분의 주석을 해제해 주시기 바랍니다.
RunAsDaemon: yes Interval: 5
이렇게 주석을 해제 하신 후 저장하여 주시고 C:\MRTG\bin 디렉토리에 있는 set_service.cmd 를 실행 합니다. C:\MRTG\bin 디렉토리에 있는 mrtg_service.reg 파일을 더블 클릭하여 레지스트리에 저장합니다.

시작 -> 제어판 -> 관리도구 -> 서비스 에서 MRTG 가 있는지 또 시작 -> 실행 -> regedit 를 실행시켜서
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG
가 있는지도 확인하여 주시기 바랍니다. 이제 모두 마쳤습니다. 시작 -> 제어판 -> 관리도구 -> 서비스 에서 MRTG 를 실행해 주시기 바랍니다.

작업관리자 -> 프로세스 에 wperl.exe 가 있는지 확인 합니다. 만약 서비스가 시작 되었는데 wperl.exe 프로세스가 없다면 mrtg.cfg 에서 위의 두가지 설정에 주석을 제거 하지 안은경우 입니다. 다시 한번 확인해 주시기 바랍니다.

이제 컴퓨터를 사용할때 MRTG 가 5분에 한번씩 갱신될 것 입니다. 감사 합니다.

출처 : Tong - heekae님의 윈도우통

Posted by 시스템매니아
,