2012-09-16

Network] mrtg를 이용한 다양한 자원 관리


1. 다양한 자원분석 사용량분석 개론
MRTG로 분석가능한 자원은 많이 있다.
그중 가장 대표적인 것이 네트웍트래픽분석이다.
앞장에서 설명드린 내용은 이런 트래픽을 웹화면에서 모니터링하는 방법에 대한 것을 다루었다.
이번장에서는 네트웍장비의다양한 자원의 사용량을 분석하는 방법을 CPU사용량을 웹에서 모니터링하는 방법에 대해서 설명할 것이다.
먼저, mrtg로 트래픽뿐아니라 cpu, memory, disk등의 다양한 자원에 대한 분석을 하려면 ucd-snmp를 업그레이드해야한다.
사용중인 ucd-snmp의 버전이 4.1대라면 4.2대로 업그레이드하기 바란다.
CPU사용량 모니터링을 하는 방법또한 앞장과 많이 유사하다.
단지, cfg파일(Configuration file)이 조금 다를 뿐이다.
따라서 이장과 다음장에 나오는 MEMORY사용량분석에서는 앞장에서 설명한 트래픽분석부분과의 중복되는 부분은 생략하고 주로 cfg파일을 위주로 설명이 될 것이다.
우선, ucd-snmp에 대해서 좀 알아보자.
현재 필자가 MRTG서버로 구축하는 서버는 레드햇리눅스이다.
아마도 최신버전의 리눅스라면 ucd-snmp 4.2.X가 깔려 있을 것이다.
여러분의 서버에 설치되어 있는 ucd-snmp가 4.1.X라면 4.2.X로 업그레이드하기를 권한다.
우선 현재 사용중인 snmp의 버전을 확인해 보자.
확인하는 방법은 "snmpd -v"를 하면 다음과 같이 현재 사용중인 snmp의 버전을 확인할 수 있다. 
확인한 바와 같이 현재 snmp의 버전은 ucd-snmp 4.1.2이다.
ucd-snmp의 최신버전은 4.2.1로서 다운을 받으려면 net-snmp.sourceforge.net에 방문해 보기 바란다.
잠깐만 언급한다면 ucd-snmp는 현재 그 이름이 net-snmp로 불리우고 있다.
최신번전은 2001년 4월달에 발표된 것으로 현재 트래픽분석뿐아니라 다양한 자원분석을 위해 많이 사용되고 있는 프로토콜이다.
4.2.X로 버전업 하는 구체적인 방법에 대해서는 "UCD-SNMP 버전업하기"편에 자세히 설명이 되어있다. 을 참조하기 바란다.
이를 참조하여 버전을 하였다면 다음과 같이 snmp의 버전을 다시한번 확인해 보도록 할 것이다.
2. 관련 MIB 확인하기
우선 트래픽외의 다양한 자원을 분석하기위해서는 대상 MIB정보를 확인해야한다.
ucd-snmp 4.2.1버전의 SNMP를 정상적으로 설치하였다면 이런 MIB값에 대한 정보를 제공하는 파일들이 /usr/local/share/snmp/mibs/디렉토리에 txt파일로 존재한다.
분석코자하는 대상자원의 MIB정보를 가진 txt 파일을 이 디렉토리에서 확인하여 cfg파일내에 LoadMIBs라는 옵션으로 참조하게만 하면된다.
이 디렉토리에 존재하는 파일들중에 CPU라는 자원을 MRTG로 분석하기 위해서는 UCD-SNMP-MIB.txt라는 파일이 필요하다.
따라서 다음절에 나올 cfg파일분석편에 보시면 LoadMIBs로 이 파일을 읽어들이는 것을 확인할 수 있을 것이다.
, cpu라는 자원에 대한 MIB정보는 어떤 것들이 있을까?
UCD-SNMP-MIB.txt파일내에 cpu와 관련된 MIB정보를 확인해 보자.
다음표는 UCD-SNMP-MIB.txt파일내용중 CPU와 관련된 MIB값들이다.
. CPU관련 MIB값
객체
구문
접근권한
Status
설명
비고
ssCpuUser
Integer32
read-only
Current
사용자 CPU time 퍼센트
::= { systemStats 9 }
ssCpuSystem
Integer32
read-only
Current
시스템 CPU time 퍼센트
::= { systemStats 10 }
ssCpuIdle
Integer32
read-only
Current
CPU idle time 퍼센트
::= { systemStats 11 }
ssCpuRawUser
Counter32
read-only
Current
사용자 CPU 시간
::= { systemStats 50 }
ssCpuRawNice
Counter32
read-only
Current
nice CPU 시간
::= { systemStats 51 }
ssCpuRawSystem
Counter32
read-only
Current
시스템 CPU 시간
::= { systemStats 52 }
ssCpuRawIdle
Counter32
read-only
Current
idle CPU 시간
::= { systemStats 53 }
ssCpuRawWait
Counter32
read-only
Current
iowait CPU 시간
::= { systemStats 54 }
ssCpuRawKernel
Counter32
read-only
Current
커널 CPU 시간
::= { systemStats 55 }
ssCpuRawInterrupt
Counter32
read-only
Current
interruptlevel CPU 시간
::= { systemStats 56 }
위의 표를 보면 대충 어떤 MIB값을 사용해야하는 가를 알 수 있을 것이다.
위의 표 "설명"부분을 참조하여 CPU의 어떤사용률에 대한 분석을 하거픈가를 확인하면 된다.
참고로 이책에서 실습대상으로 하는 MIB값은 위의 표중에서 "ssCpuRawUser"와 ssCpuRawIdle"이다.
, 사용자 프로세스가 사용한 CPU사용시간과 CPU가 한가하게 놀았던 시간(idle time)에 대한 분석이될 것이다.

다음표는 UCD-SNMP-MIB.txt파일내용중 MEMORY와 관련된 MIB값들이다.
. MEMORY관련 MIB값
객체
구문
접근권한
Status
설명
비고
memIndex
Integer32
read-only
current
Bogus Index, 항상 0 리턴
::= { memory 1 }
memErrorName
DisplayString
read-only
current
Bogus Name, 항상 'swap'문자리턴
::= { memory 2 }
memTotalSwap
Integer32
read-only
current
전체 swap공간
::= { memory 3 }
memAvailSwap
Integer32
read-only
current
사용가능한 swap 공간
::= { memory 4 }
memTotalReal
Integer32
read-only
current
전체 물리적인(RAM) 공간
::= { memory 5 }
memAvailReal
Integer32
read-only
current
사용가능한 물리적인 공간
::= { memory 6 }
memTotalSwapTXT
Integer32
read-only
current
사용된 가상메모리공간
::= { memory 7 }
memAvailSwapTXT
Integer32
read-only
current
사용중인 가상메모리공간
::= { memory 8 }
memTotalRealTXT
Integer32
read-only
current
사용된 전체 물리적인 메모리공간
::= { memory 9 }
memAvailRealTXT
Integer32
read-only
current
사용중인 실제메모리공간
::= { memory 10 }
memTotalFree
Integer32
read-only
current
전체사용가능한 메모리
::= { memory 11 }
memMinimumSwap
Integer32
read-only
current
비워질 수 있는 swap공간의 최소크기를 리턴하거나 memErrorSwap이 1로 셋팅되어 있을 경우 memSwapErrorMsg에 에러문자리턴
::= { memory 12 }
memShared
Integer32
read-only
current
전체공유메모리 크기
::= { memory 13 }
memBuffer
Integer32
read-only
current
버퍼링된 메모리크기
::= { memory 14 }
memCached
Integer32
read-only
current
캐싱된 메모리크기
::= { memory 15 }
memSwapError
Integer32
read-only
current
Error Flag 리턴. Flag가 1일 경우 여유swap공간이 거의 없음을 의미함.
::= { memory 100 }
memSwapErrorMsg
DisplayString
read-only
current
Error Flag상태를 알리는 에러메시지리턴
::= { memory 101 }
   
다음표는 UCD-SNMP-MIB.txt파일내용중 DISK와 관련된 MIB값들이다.
. DISK관련 MIB값
객체
구문
접근권한
Status
설명
비고
dskTable
SEQUENCE OF DskEntry
not-accessible
current
SNMP Agent의 snmpd.conf에 의해 설정되어 watching된 부분. 디스크의 watching정보.
::= { ucdavis 9 }
dskEntry
DskEntry
not-accessible
current
디스크나 디스크 통계치를 포함한 엔트리(Entry)
::= { dskTable  1 }
dskIndex
 Integer32 (0..65535)
read-only
current
디스크 mib를 참조한 (행)수
::= { dskEntry 1 }
dskPath
DisplayString
read-only
current
마운트된 디스크의 패스정보
::= { dskEntry 2 }
dskDevice
DisplayString
read-only
current
파티션된 디바이스 패스정보
::= { dskEntry 3 }
dskMinimum
Integer32
read-only
current
에러발생전의 최소디스크요구공간의 크기(단 위 : kBytes)
::= { dskEntry 4 }
dskMinPercent
Integer32
read-only
current
에러발생전의 최소디스크요구공간의 퍼센티지
::= { dskEntry 5 }
dskTotal
Integer32
read-only
current
디스크파티션의 총크기
(단위 : kBytes)
::= { dskEntry 6 }
dskAvail
Integer32
read-only
current
사용가능한 디스크공간크기
::= { dskEntry 7 }
dskUsed
Integer32
read-only
current
사용중인 디스크공간의 크기
::= { dskEntry 8 }
dskPercent
Integer32
read-only
current
사용중인디스크공간의 퍼센티지
::= { dskEntry 9 }
dskPercentNode
Integer32
read-only
current
사용중인 inode의 퍼센티지
::= { dskEntry 10 }
dskErrorFlag
 Integer32
read-only
current
에러를 위해 설정된 최소공간의 디스크(파 티션) 에러 Flag 시그널
::= { dskEntry 100 }
dskErrorMsg
DisplayString
read-only
current
여유공간과 경고(warning) 메시지
::= { dskEntry 101 }

이제 이들 MIB값들을 이용하면 MRTG를 통해서 이와 관련된 정보를 모니터링해볼 수 있다.
다음장에서는 이런 MIB값을 가지고 MRTG의 트래픽분석을 위한 Configuration File을 만들어 보도록 할 것이다.

3. Configuration file 만들기
아래와 같은 cfg파일을 만들어 보았다.
분석하려는 구체적인 객체를 /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt 파일에서 확인한 다음 Target에 아래 예와 같이 설정해 주면 된다.
물론,  LoadMIBs 옵션에 UCD-SNMP-MIB.txt 파일의 위치를 지정해 주는 것도 잊지 말아야 할 것이다.
  • CPU 모니터링을 위한 Configuration file
물론 아래와 같은 cfg파일이 아니더라도 cpu분석은 가능하다.
  • MEMORY 모니터링을 위한 Configuration file
  • DISK 모니터링을 위한 Configuration file
다른 Configuration File들과는 조금 다른 것이라면 디스크의 사용량분석을 위해 대상파티션을 지정해줘야한다는 것이다.
, dskPercent.1 과 dskPercent.2는 각각 루트파티션(/) 과 usr파티션(/usr)에 해당하며, 이들의 설정을 Legend1과 Legend2, 그리고 LegendI와 LegendO에 각각 설정하였다.
그리고, 무엇보다 중요한 것은 디스크의 모니터링을 위한 대상 파티션의 설정을 /usr/local/share/snmp/snmpd.con 파일내에서 다음과 같은 설정을 해야한다.
, 모니터링의 대상이 되는 파티션의 설정을 위와 같이 한후에 snmpd를 다시 띄워야한다.
 cfg 파일에서 설정한 각 options들에 대한 설명은 다음장에서 설명된다.
참고로, 이런 cfg파일 작성 및 구성에 대한 예제파일들은 아래의 URL에서 찾아볼 수 있으려 이를 그대로 적용하기보다는 좀더 다양한 방법으로 수정해서 사용해보는 것이 발전이 지름길이 될 것이다.
4. cfg파일 분석
여기서 설명되는 옵션들은 앞장에서 설명된 것과 "MRTG Configuration File Format"편에 자세히 설명되었으므로 여기서는 CPU사용량분석이라는 초점에 맞추어서 설명됨을 유의하기바란다.
Language
웹페이지에 한글을 사용하기위한 설정.
WorkDir
mrtg의 실행결과 생성되는 웹페이지들이 저장될 디렉토리경로 설정
LoadMIBs
CPU과련 MIB값을 저장하고 있는 파일  Include 설정
Target
CPU자원을 분석하기위한 MIB값의 설정.
  • kebia_2_cpu : 대상자원의 이름이며, 생성되는 웹파일들의 이름또한 여기서 설정된 이름이 사용된다.
  • ssCpuRawUser.0 : 사용자프로세스가 차지하는 CPU사용량의 MIB객체지정.
  • ssCpuRawIdle.0 : CPU의 idle time 값의 MIB객체 지정.
  • public : SNMP로 통신하기위한 community name.
  • 192.168.0.5 : 대상객체의 IP Address 또는 도메인명
위의 표를 참조하여 CPU관련된 다른 MIB값들을 참조하여 다양한 분석이 가능하다는 것을 인지하기 바란다.
Options
growright : 오른쪽에서부터 그래프가 생성이됨.
nopercent : 결과로 생성되는 웹페이지내의 그래프에서 퍼센트표시를 나타내지않음.
MaxBytes
CPU의 전체사용량을 100으로 설정.
Title
생성되는 웹(html)파일에 <title>제목</title>에 들어갈 제목부분 설정.
웹브라우즈로 결과를 보았을 때 웹브라우즈의 최상단 바(bar)에 나타나는 제목으로 확인하거나 "소스보기"등으로 확인가능.
RouterUptime
이설정은 동일한 라우터를 사용하여 동일한 분석을 여러개 동시에 분석할 경우에 community name과 address를 여러번 반복하여 사용하지 않도록 하기위한 설정이다.
Unscaled
4개의 그래프 즉, day, week, month, year 그래프에서 Y축그래프가 MaxBytes에서 지정한 수치에 미치지 못하는 부분을 축약(생략)하여 표현하기위한 설정이다.
, 불필요한 부분을 보지 않기위한 설정이라는 것을 의미한다.
YLegend
Y축 그래프에 대한 설명표를 "CPU Utilization"이라고 나타낸다.
Legend1
결과 웹페이지의 하단에 표시되는 그래프의 색깔에 대한 설명을 붙인 것이다
, 첫 번째 그래프(여기서는 녹색)색깔에 대한 설명을 "User CPU in % (Load)"로 하겠다라는 설정임.
Legend2
Legend1과 마찬가지로 그래프(여기서는 청색)색깔에 대한 설명을 "Idel CPU in % (Load)"로 하겠다라는 설정임.
LegendI
4개의 그래프(일,주,월,년) 각각의 하단에 INPUT표시의 설명을 "User"로 하겠다라는 설정임.
, 각각의 그래프에서 INPUT에 해당하는 것이 무엇을 뜻하는 것인가를 설명하기 위한 것이며, 여기서는 사용자프로세스에 대한 그래프의 색깔이므로 "User"로 설정한 것임.
LegendO
LegendI와 마찬가지로 OUTPUT에 해당하는 그래프의 색깔 설명을 "Idle"로 설정한 것임.
PageTop
mrtg 실행결과 생성되는 웹페이지의 최상단에 나타낼 내용임.
5. mrtg 초기실행과 웹페이지 생성확인
이제 cfg파일의 생성과 이에대한 설명까지 끝났다.
이제 남은 것은 이 cfg파일로 mrtg를 실행하고 그 결과 지정한 디렉토리에 웹페이지들이 생성이 되는가를 확인한 다음 웹브라우즈로 확인을 해보도록 할 것이다.
아래와 같이 mrtg를 실행시켜보자.
mrtg를 처음실행시킬 때에는 mrtg 실행파일의 경로를 절대경로로 해서 실행하는 것이 습관이 되면 좋을 것이다.
mrtg를 처음실행시키면 트래픽분석에서 보았던 것 처럼 동일한 에러가 발생한다.
동일한 실행은 몇회 계속하게되면 이런 에러는 발생하지 않는다.
이제 cfg파일의 WorkDir에서 지정한 디렉토리로 가서 웹파일들이 생성이 되었는가를 확인해 보자.
앞에서는 볼 수 없었던 파일종류가 하나 있을 것이다
*.png, *.html, *.log, *.old 파일들은 트래픽분석에서도 볼 수 있었던 것이나 *.txt파일은 여기서 처음 생성된 것이다.
이것은 cfg파일에서 LoadMIBs를 사용하였기 때문에 생성된 파일로서 LoadMIBs에서 지정한 UCD-SNMP-MIB.txt파일내의 모든 MIB값들이 필요한 것이 아니기 때문에 다음에 실행할 때에 사용하기위한 것으로 필요한 MIB값을 oid형태의 파일로 보관한 것이다.
아래는 이 파일의 내용이다.
보시는 바와 같이 UCD-SNMP-MIB.txt내의 많은 MIB값들중 두 개(ssCpuRawUser, ssCpuRawIdle)만을 사용했으므로 이 두 개의 oid값만이 들어가 있는 것이다.
6. 웹브라우즈로 결과확인
자 이제 모든 실행이 끝나고 그 결과를 웹브라우즈로 확인해 보도록 하자.
cfg파일 설명부분에서 설명했던 것을 참조하여 결과 웹페이지가 어떻게 나타났는지 확인하기 바란다.
cfg파일을 수정함으로써 원하는 결과를 다르게 나타내는 것을 각자 해보기바란다.
  • CPU 사용량 모니터링 분석 결과확인
  • MEMORY 사용량 모니터링 분석 결과확인
  • DISK 사용량 모니터링 분석 결과확인
7. 마무리 작업
웹브라우즈로 결과까지 확인을 했다.
이제 트래픽분석의 마지막에 했던 것과 마찬가지로 결과 웹페이지를 로딩할 때에 ID와 패스워드를 입력받도록 하기위한 설정과  주기적인 mrtg실행을 위하여 cron파일에 등록하는 것을 잊지 말자

Network] mrtg nt installation guide - 원문


NAME

mrtg-nt-guide - The Windows Guide to MRTG 2.12.2

SYNOPSIS

Installing MRTG on a Windows box is not quite as ``click and point'' as some might want it to be. But then again, it is not all that difficult if you follow the instructions below.

PREREQUISITS

To get MRTG to work on Windows you need the following:

INSTALLATION

I suggest you do the following from the machine that will be running MRTG, which, in this case, is also a web server. All examples are for doing things to a LOCAL machine.
First
Unzip MRTG to C:\mrtg-2.12.2 on the Windowsmachine of your choice.
Next
Install Perl on the same Windows machine. You might want to make sure that the Perl binary directory is listed in your system path.
           C:\Perl\bin;%SystemRoot%\system32;%SystemRoot%;...
          
You can manually check this by going to [Control Panel]->[System]->[Environment]
To see if everything is installed properly you can open a Command Shell and go into c:\mrtg-2.12.2\bin. Type:
           perl mrtg
          
This should give you a friendly error message complaining about the missing mrtg configuration file. Now, you have successfully installed mrtg and perl.

CONFIGURING MRTG

Now it is time to create a configuration for mrtg. But before we begin you need to know a few things. Take an opportunity to gather the following information:
  • The IP address or hostname and the snmp port number, (if non standard), of the device you want to monitor.
  • If you want to monitor something other than bytes in and out, you must also know the SNMPOID of what you want to monitor.
  • Finally you need to know the read-only SNMP community string for your device. If you don't know it, try public, that is the default.
For the rest of this document we will be using device 10.10.10.1 ( a CISCO Catalyst 5000) with Community string public. We are interested in monitoring traffic, and the CPU load. Let's begin.
The first thing we do in setting up mrtg is making a default config file. Get to a cmd prompt and change to the c:\mrtg-2.12.2\bin directory. Type the following command:
           perl cfgmaker public@10.10.10.1 --global "WorkDir: c:\www\mrtg" --output mrtg.cfg
          
This creates an initial MRTG config file for you. Note that in this file all interfaces of your router will be stored by number. Unfortunately, these numbers are likely to change whenever you reconfigure your router. In order to work around this you can get cfgmaker to produce a configuration which is based on Ip numbers, or even Interface Descriptions. Check the cfgmaker manpage
If you get an error message complaining about no such name or no response, your community name is probably wrong.
Now, let's take a look at the mrtg.cfg file that was created.
In Perl, a # is a comment, synonymous with REM in DOS.
Add the following to the top of the mrtg.cfg file:
           WorkDir: D:\InetPub\wwwroot\MRTG
          
This is where the web pages are created, usually a web root.
           ######################################################################

           # Description: LCP SUWGB

           # Contact: Administrator

           # System Name: LC-Bridge

           # Location: Here

           #.....................................................................
          
TargetDevice's IP Address:Interface Number:Community:IP Address
           Target[10.10.10.1.1]: 1:public@10.10.10.1
          
This is the interface speed (Default is 10 megabits; for 100Mbit devices use 12500000 and so on...)
           MaxBytes[10.10.10.1.1]: 1250000
          
           Title[10.10.10.1.1]: LC-Bridge (sample.device): ether0
          
This section determines how the web page headers will look
           PageTop[10.10.10.1.1]: <H1>Traffic Analysis for ether0</H1>

            <TABLE>

            <TR><TD>System:</TD><TD>LC-Bridge inAndover</TD></TR>

            <TR><TD>Maintainer:</TD><TD>Administrator</TD></TR>

            <TR><TD>Interface:</TD><TD>ether0(1)</TD></TR>

            <TR><TD>IP:</TD><TD>sample.device(10.10.10.1)</TD></TR>

            <TR><TD>Max Speed:</TD>

            <TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>

            </TABLE>
          
            Target[10.10.10.1.2]: 2:public@10.10.10.1

            MaxBytes[10.10.10.1.2]: 1250000

            Title[10.10.10.1.2]: LC-Bridge (): ulink0

            PageTop[10.10.10.1.2]: <H1>Traffic Analysis for ulink0</H1>

             <TABLE>

             <TR><TD>System:</TD><TD>LC-Bridge inAndover</TD></TR>

             <TR><TD>Maintainer:</TD><TD>Administrator</TD></TR>

             <TR><TD>Interface:</TD><TD>ulink0(2)</TD></TR>

             <TR><TD>IP:</TD><TD>()</TD></TR>

             <TR><TD>Max Speed:</TD>

             <TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>

             </TABLE>
          
            #---------------------------------------------------------------
          
And that's a very basic mrtg config file. You can run this and see your results by going into the c:\mrtg-2.12.2\bindirectory and typing:
           perl mrtg mrtg.cfg
          
It is normal to get errors for the first two times you run this command. The errors will alert you about the fact that there have not been any log files in existence before.
If you take a look at those web pages they are not very exciting (yet). You need to have the mrtg files run every five minutes to produce the desired results. Just run it again after a few minutes. You should now be able to see the first lines in your graphs.

MAKE MRTG RUN ALL THE TIME

Starting mrtg by hand every time you want to run it is not going to make you happy I guess.
There is a special option you can set in the mrtg configuration file so so that mrtg will not terminate after it was started. Instead it will wait for 5 minutes and then run again.
Add the option
           RunAsDaemon: yes
          
to your mrtg.cfg file and start it with:
           start /Dc:\mrtg-2.12.2\bin wperl mrtg --logging=eventlog mrtg.cfg
          
If you use wperl instead of perl, no console window will show. MRTG is now running in the background. If it runs into problems it will tell you so over the EventLog. To stop MRTG, open the Task Manager and terminate the wperl.exeprocess. If mrtg has anything to tell you these messages can be found in the event log.
If you put a shortcut with
           Target:    wperl mrtg --logging=eventlog mrtg.cfg

           Start in:  c:\mrtg-2.12.2\bin
          
into your startup folder, mrtg will now start whever you login to your NT box.
If you do not want to log into your box just to start mrtg. Have a look at http://www.firedaemon.com/mrtg-howto.htmlwhich describes a free tool to start any program as a Service. The pages gives specific instructions for mrtg users.

HOW TO SETUP MRTG AS A WINDOWS SERVICE

Additional Prerequisites

Preparation

Please complete the following steps before starting the installation:
  • Copy srvany.exe and instsrv.exe to c:\mrtg\bin\ (your MRTG bin directory).
  • Create a file called mrtg.reg anywhere on your system and paste the following content into it:
               Windows Registry Editor Version 5.00
              
               [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters]
    
               "Application"="c:\\perl\\bin\\wperl.exe"
    
               "AppParameters"="c:\\mrtg\\bin\\mrtg --logging=eventlog c:\\mrtg\\bin\\mrtg.cfg"
    
               "AppDirectory"="c:\\mrtg\\bin\\"
              

Installation

Once again, assuming that MRTG is already fully installed and configured on the target system under c:\mrtg\ the following steps are necessary to setup MRTG as a service.
Using the command prompt go into the temporary directory where you unzipped the package. When there type the following command to create a service named ``MRTG'' in the Windows Services management console:
           instsrv MRTG c:\mrtg\bin\srvany.exe
          
Now you need to create the App* entries required for the new service. You can do this by either right-clicking on the mrtg.reg file and selecting 'merge' or by running the following command:
           regedit /s mrtg.reg
          
After setting up the registry entry it is time to point it to your MRTG installation. If you have installed MRTG underc:\mrtg\, you can skip this step. Open your registry editor (Start -> Run -> regedt32), and locate the[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG] key. Make sure that theImagePath variable is correctly pointing to srvany.exe located in your MRTG bin directory (for example c:\mrtg\bin\srvany.exe). Next you have to expand the MRTG tree, and go to the[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters] key. Under Parameters make sure that all the Application variables are setup propperly.
At this point you are ready to run the service. The only thing left to do is to start the MRTG service in the Services management console. After you do this, you should see two new processes running on your system: srvany.exe and wperl.exe. Make sure to stop any previously running MRTG processes to avoid confict.
Note that it is imperative to set the RunAsDaemon: yes option or the service will stop after just one single run!

EXAMPLE

Now lets look at a config file to monitor what we wanted to on our mythical Cisco Cat 5000 -- utilization on ports 3, 5, 10, and 24, and the CPU Load, which will show us nonstandard mrtg configurations as well as more options..
           WorkDir: D:\InetPub\wwwroot\MRTG

           RunAsDaemon: yes
          
           ######################################################################

           # Description: LCP SUWGB

           # Contact: Administrator

           # System Name: LC-Bridge

           # Location: Here

           #.....................................................................
          
           Target[10.10.10.1.1]: 3:public@10.10.10.1

           MaxBytes[10.10.10.1.1]: 1250000

           Title[10.10.10.1.1]: LC-Bridge (sample-device): ether0

           PageTop[10.10.10.1.1]: <H1>Traffic Analysis for ether0</H1>

            <TABLE>

           <TR><TD>System:</TD><TD>LC-Bridge inAndover</TD></TR>

           <TR><TD>Maintainer:</TD><TD>Administrator</TD></TR>

           <TR><TD>Interface:</TD><TD>ether0(3)</TD></TR>

           <TR><TD>IP:</TD><TD>sample-device(10.10.10.1)</TD></TR>

           <TR><TD>Max Speed:</TD>

           <TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>

           </TABLE>
          
           #---------------------------------------------------------------
          
           Target[10.10.10.1.2]: 5:public@10.10.10.1

           MaxBytes[10.10.10.1.2]: 1250000

           Title[10.10.10.1.2]: LC-Bridge (): ulink0

           PageTop[10.10.10.1.2]: <H1>Traffic Analysis for ulink0</H1>

            <TABLE>

            <TR><TD>System:</TD><TD>LC-Bridge inAndover</TD></TR>

            <TR><TD>Maintainer:</TD><TD>Administrator</TD></TR>

            <TR><TD>Interface:</TD><TD>ulink0(5)</TD></TR>

            <TR><TD>IP:</TD><TD>()</TD></TR>

            <TR><TD>Max Speed:</TD>

            <TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>

            </TABLE>
          
           #---------------------------------------------------------------
          
           Target[10.10.10.1.1]: 10:public@10.10.10.1

           MaxBytes[10.10.10.1.1]: 1250000

           Title[10.10.10.1.1]: LC-Bridge (sample-device): ether0

           PageTop[10.10.10.1.1]: <H1>Traffic Analysis for ether0</H1>

            <TABLE>

            <TR><TD>System:</TD><TD>LC-Bridge inAndover</TD></TR>

            <TR><TD>Maintainer:</TD><TD>Administrator</TD></TR>

            <TR><TD>Interface:</TD><TD>ether0(10)</TD></TR>

            <TR><TD>IP:</TD><TD>sample-device(10.10.10.1)</TD></TR>

            <TR><TD>Max Speed:</TD>

            <TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>

            </TABLE>
          
           #---------------------------------------------------------------
          
           Target[10.10.10.1.2]: 24:public@10.10.10.1

           MaxBytes[10.10.10.1.2]: 1250000

           Title[10.10.10.1.2]: LC-Bridge (): ulink0

           PageTop[10.10.10.1.2]: <H1>Traffic Analysis for ulink0</H1>

            <TABLE>

            <TR><TD>System:</TD><TD>LC-Bridge inAndover</TD></TR>

            <TR><TD>Maintainer:</TD><TD>Administrator</TD></TR>

            <TR><TD>Interface:</TD><TD>ulink0(24)</TD></TR>

            <TR><TD>IP:</TD><TD>()</TD></TR>

            <TR><TD>Max Speed:</TD>

            <TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>

            </TABLE>
          
           #---------------------------------------------------------------
          
           # Router CPU load %

           Target[cpu.1]:1.3.6.1.4.1.9.2.1.58.0&1.3.6.1.4.1.9.2.1.58.0:public@10.10.10.1

           RouterUptime[cpu.1]: public@10.10.10.1

           MaxBytes[cpu.1]: 100

           Title[cpu.1]: CPU LOAD

           PageTop[cpu.1]: <H1>CPU Load %</H1>

           Unscaled[cpu.1]: ymwd

           ShortLegend[cpu.1]: %

           XSize[cpu.1]: 380

           YSize[cpu.1]: 100

           YLegend[cpu.1]: CPU Utilization

           Legend1[cpu.1]: CPU Utilization in % (Load)

           Legend2[cpu.1]: CPU Utilization in % (Load)

           Legend3[cpu.1]:

           Legend4[cpu.1]:

           LegendI[cpu.1]:

           LegendO[cpu.1]: &nbsp;Usage

           Options[cpu.1]: gauge
          
This is a nice example of how to monitor any SNMP device if you know what OID you want to use. Once again, For an explanation of the more advance features of mrtg, please see Tobias's documentation.

AUTHORS

Tobi Oetiker <oetiker@ee.ethz.ch>, David S. Divins <ddivins@moon.jic.com>, Steve Pierce <MRTG@HDL.com>, Artyom Adjemov <one.bofh@gmail.com>, Ilja Ivanov <ivanov@bseu.by> Karel Fajkus <karel@fajkus.cz>
출처 : http://people.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg-nt-guide.html

Linux]suse linux qmail 설치하기


 SuSE Linux 9.2 Professional 상에서 qmail+mysql+vpopmail+qmailadmin+qmail-scanner+spamassassin+courier-imap+squirrelmail 설치하기


 목적 :

   1. 사용자 계정을 mysql 을 이용함으로써 추가나 삭제를 할수 있다.
   2. vpopmail 을 설치함으로써 가상 도메인에 대한 관리를 손쉽게 할수 있다.
   3. qmail-scanner 을 설치함으로써 바이러스에 대한 필터링을 한다.
   4. squirrelmail로 웹상에서 메일을 사용할 수 있게 한다.
   5. qmailadmin으로 웹상에서 메일계정을 쉽게 관리할 수 있게 한다.
   6. qmailMrtg로 웹상에서 메일서버의 트래픽을 쉽게 관찰할 수 있게 한다.


 아래의 파일은 2005.05.09 현재 최신 버전을 다운 받은 리스트이며, 위와 같은 조합의 메일 시스템을 구축하기 위한 모듈들입니다.



 qmail 관련

   http://qmail.kldp.org/src       : qmail-1.03,
   http://inter7.com               : vpopmail, qmailadmin, autoresponder
   http://www.ezmlm.org/           : ezmlm, ezmlm-idx
   http://qmail.org/netqmail/      : netqmail 패치
   autorespond-2.0.4.tar.gz        // 자동응답담당하는 모듈
   daemontools-0.76.tar.gz         // qmail 자동화 관리툴
   ezmlm-0.53.tar.gz               // qmail 지원하는 메일링리스트
   ezmlm-idx-0.440.tar.gz          //            
   maildrop-1.8.0.tar.bz2          // qmail-scanner에 연동되는 모듈
   netqmail-1.05.tar.gz            // qmail 패치
   qmail-1.03.tar.gz              
   qmailadmin-1.2.7.tar.gz         // 웹상에서 메일계정관리
   ucspi-tcp-0.88.tar.gz
   vpopmail-5.4.2.tar.gz           // 가상 메일지원모듈
   qmailmrtg7-4.2.tar.gz           // qmail 트래픽 모니터링
   qmail-scanner-1.25.tgz          // qmail-scanner (바이러스 필터링)
   Mail-SpamAssassin-3.0.3.tar.gz  // spamAssassin         http://spamassassin.apache.org
   Time-HiRes-1.67.tar.gz          // qmail-scanner설치시 필요
   clamav-0.84.tar.gz              // qmail-scanner 애드온
 
  mysql
   mysql-4.x.x.tar.gz              // http://www.mysql.com



  imapd
   (http://inter7.com/
        courier-imap-4.0.2.20050403.tar.bz2     // 웹메일을 지원하기 위한 모듈


  web

  httpd-2.0.54.tar.gz                     // http://www.apache.org
  php-5.0.4.tar.gz                        // http://www.php.net
  squirrelmail-1.4.4.tar.gz               // 웹메일 클라이언트    http://www.squirrelmail.org



 기타

  텍스트상에서 웹서핑하기 위한 도구
     lynx-2.8.5-26.i586.rpm          // http://www.rpmfind.net,  http://www.lynx.org

 

 패치
  qmail-1_03-mysql-0_6_6.patch
           -> 사용자 여부를 시스템 계정이 아닌 mysql 에서 하기 위한 패치.

  qmail-103.patch
           -> oversize dns 을 위한 패치

  checkpassword-0.81--mysql-0.6.6.patch
          -> pop3 사용시 사용자에 대한 패스워드 확인을  mysql 에서 하기 위한 패치. vpopmail 을 설치한다면 필요없습니다.

  qmailqueue-patch          
          -> qmail-scanner 를 위한 queue 패치입니다.

  qmail-smtp-auth.tar.gz
          -> 이것은 smtp 사용시 팝계정을 가진 사용자에 한해 smtp 를 사용하게 하자는 패치입니다. 좋더군요.

  relaymailfrom.patch
            -> 옵션으로 보내는 사람의 메일 주소로 smtp 릴레이를 막자는 패치입니다.



   패치가 많다고 해서 한번에 다 적용하려고 하지 말고. 하나씩 설치할때마다 필요한 패치를 그때 그때 적용하고 qmail 을 재 빌드하고 컴파일 하면 됩니다.
    ** 위의 netqmail을 이용해서 패치를 해도 됩니다.



 설치 순서



 * qmail 압축 풀기


 # tar -xvzf qmail-1.03.tar.gz
 # cd qmail-1.03


 * qmail 설치를 위한 디렉토리 생성

 # mkdir  /var/qmail


 * qmail 운영을 위한 유저, 그룹을 만들어 주기 위해 운영체제에 따라 INSTALL.ids를 편집한다. 리눅스상에서는 다음과 같다.
   INSTALL.ids 는 qmail-1.03 디렉토리에 존재한다.


   groupadd nofiles

   useradd -g nofiles -d /var/qmail/alias alias

   useradd -g nofiles -d /var/qmail qmaild

   useradd -g nofiles -d /var/qmail qmaill

   useradd -g nofiles -d /var/qmail qmailp

   groupadd qmail

   useradd -g qmail -d /var/qmail qmailq

   useradd -g qmail -d /var/qmail qmailr

   useradd -g qmail -d /var/qmail qmails



 * qmail과 부수적인 패키지 설치

squirrelmail guide 문서


웹메일 사용에 대한 안내


본 서버에서 사용하는 웹메일은 여러분들이 전세계 어느 곳에 있던지 사용할 수 있습니다. 그리고 사용한 컴퓨터에 아무런 정보가 남지 않기 때문에 다른 곳에서 메일을 확인하시고 간단히 보내는 경우 사용할 수 있습니다.
일반적인 웹브라저인 인터넷 익스플로러를 실행한 화면은 다음과 같습니다. 그러면 주소칸에http://mail.pettree.co.kr/squirrelmail/ 을 넣습니다.
다음과 같은 다람쥐가 여러분들을 반길겁니다. 본 서버에서 사용하는 웹 메일 프로그램은 다람쥐 메일이라는 프로그램입니다.
자신의 아이디와 패스워드를 입력하고 로그인을 하십시오.
아무런 설정없이 로그인을 하는 경우 다음과 같은 화면을 볼 수 있습니다. 이 화면에서도 기본적인 것을 사용할 수 있지만 좀더 나은 환경을 만들기 위해서는 조금 수정을 해야 합니다. 현재 왼쪽편에 보이는 화면은 여러분의 유일한 폴더인 받은 편지함입니다. 여기서 여러분이 보낸 메일이나 지운 편지함을 만들어야 합니다.첫번째왼쪽 위의 Folders라는 부분을 클릭합니다.
그러면 다음과 같은 화면이 나오는데 폴더 만들기에서 Trash라고 입력을 하고 만들기를 합니다.
그 다음 Sent라는 폴더를 만듭니다.
두 폴더를 만들고 난 후에는 다음과 같이 폴더 리스트를 갱신한다.
이제 폴더리스트를 보면 좀 전과는 다르게 세 개의 폴더가 생겼다. 이렇게 세 개의 폴더가 생겼지만 아직 보낸 편지함과 지운 편지함으로 사용할 수 없다. 그렇게 사용하기 위해서는 옵션에서 설정을 해 줘야 한다.
다시 오른쪽 위에 옵션 부분을 클릭을 해라.
옵션을 클릭하면 다음과 같은 화면이 나온다. 이 가운데 일단 폴더 설정부분을 클릭을 해라.
폴더 설정에서 지운 편지함과 보낸 편지함을 좀 전에 만든 폴더에 연결을 해야 한다.
다음과 같이 지운편지함과 보낸 편지함을 서로 연결해라.
다음은 화면을 좀더 편하게 보는 옵션에 대해 설명을 한다. 그리고 화면 설정에서 한글 부분은 영어를 매번 사용하지 않는다면 꼭 설정을 해야된다. 다음과 같이 화면 설정부분을 클릭해라
화면설정 부분에서 보면 언어를 설정하는 부분이 있다. 이 부분에서 Korean을 설정하고 폴더 리스트의 폭을 결정하는 부분에서 200 pixels에서 120pixel이나 아니면 여러분이 원하는 크기로 바꾸면 된다.
언어와 폴더 리스트의 폭을 결정하고 난 후 맨 마지막에 있는 HTML로 온 메일은 HTML로 기본으로 보여주기 부분을 체크하기 바란다. 왜냐면 요즘은 외부에서 메일을 보내는 경우나 또는 다른 사람들이 메일을 보낼 때 HTML로 보낸 메일이 많이 있는데 그런 경우 알아서 다람쥐 메일이 보여준다.
위에서 얘기한 모든 것을 다 한 후 제출버튼을 누르고 난 후 페이지 갱신 부분을 다음과 같이 클릭하면 됩니다.