[root@bbuwoo etc]$ cat /etc/mrtg2/mrtg.cfg
###################################################################################
# MRTG Configuration file
# created by JoungKyun Kim in OOPS Development Organizationo
# 2000.2.15 http://oops.org
###################################################################################
WorkDir: /home/httpd/html/MRTG-data
Language: korean
IconDir: /MRTG-data/img/
위의 부분은 변경을 할 필요가 없다. 그냥 그대로 두도록 하자. 만약 apaceh를 rpm으로
설치를 하지 않았을 경우에는 이 부분을 조금 손을 봐줘야 한다. 간단히 설명을 하자면
WorkDir 은 mrtg 가 변환한 data file 을 위치 시킬 곳이다. mrtg 의 경우 html 문서로
data를 변환하기 때문에 웹루트의 경로에 지정을 해야 한다. source compile을 했을 경
우 보통 /usr/local/apache/htdocs 가 web root 가 되므로
WorkDir: /usr/local/apache/htdocs/MRTG-data
Language: korean
IconDir: /MRTG-data/img/
정도로 지정을 하면 된다. IconDir 은 web root 를 기준으로 path 를 지정한다. 만약
WorkDir 을 변경했을 경우에는 /usr/sbin/mrtg 에서도 동일하게 변경해 줘야 한다.
### % of Cpu Usage
#
Target[PUTHOSTNAME_cpu]: `/usr/bin/mrtg2/cpuinfo`
Title[PUTHOSTNAME_cpu]: PUTHOSTNAME : % OF CPU USAGE
MaxBytes[PUTHOSTNAME_cpu]: 100
Options[PUTHOSTNAME_cpu]: gauge, integer, nopercent
Unscaled[PUTHOSTNAME_cpu]: dwym
WithPeak[PUTHOSTNAME_cpu]: my
YLegend[PUTHOSTNAME_cpu]: % Of CPU used
ShortLegend[PUTHOSTNAME_cpu]: %
LegendO[PUTHOSTNAME_cpu]: CPU System:
LegendI[PUTHOSTNAME_cpu]: CPU User:
Legend1[PUTHOSTNAME_cpu]: 5분간 평균 CPU User Percentage
Legend2[PUTHOSTNAME_cpu]: 5분간 평균 CPU System Percentage
Legend3[PUTHOSTNAME_cpu]: 5분간 최대 CPU User Percentage
Legend4[PUTHOSTNAME_cpu]: 5분간 최대 CPU System Percentage
PageTop[PUTHOSTNAME_cpu]: <H1>CPU usage for PUTHOSTNAME</H1>
<TABLE><TR><TD>System:</TD><TD>PUTHOSTNAME</TD></TR></TABLE>
이 부분은 CPU 사용량을 측정한다. 건드리지 말고 그대로 사용하면 된다. 이 설정 파
일의 경우 각 resource설정 부분 아래에서 수정할 필요가있는 부분만 설명을 붙일 것
이며 그대로 사용할수 있는 부분에 대해서는 아무런 언급을 하지 않을테니 수정치 말
고 그대로 사용하기 바란다.
이 부분은 설정의 처음 부분이니 간략하게 설명을 넣을 것이다. 일단 설정에서
PUTHOSTNAME 이라는 문자열은 설치시 rpm script 가 system 의 hostname 을 얻어와서
PUTHOSTNAME 대신 hostname으로 대체를 할것이다. 즉 나의 hostname이 oops.org 라면
Target[oops.org_cpu]: `/usr/bin/mrtg2/cpuinfo`
와 같은 형식으로 설정이 되어 있을 것이다. 그럼 간단하게 각 지시자에 대해서 언급
을 하도록 하겠다.
설정의 형식은 Directive[mrtg_tag]: value 의 형식을 취한다. 즉 위의 Target 지시
자를 예로 들면 Directive 는 Target, mrtg_tag 는 PUTHOSTNAME_cpu 그리고 value 는
`/usr/bin/mrtg2/cpuinfo` 이 된다. 주의 할 것은 mrtg_tag 는 중복이 되면 안된다는
점이다.
그럼 각 지시자에 대해서 간단하게 설명을 해 보자.
Target[mrtg_tag] -> mrtg가 data를 얻어올 target을 지정한다. 주로 snmp 를 이용하
지만 여기서는 shell script로 얻어온다. snmp를 이용하지 않을
경우 즉, shell script 나 perl 또는 다른 C 로 만든 binary 를
사용할 경우에는 `` 문자열로 해당 명령어를 감싸주면 된다. ``
는 작은 따옴표(single quote) 가 아니라 tab key 바로 위에 있
는 `를 의미한다.
Title[mrtg_tag] -> 별 의미가 없다. 다만 이 mrtg_tag의 설정이 무엇인가를 구분하
기 위한 tag 정도라고 여기면 되겠다.
MaxBytes[mrtg_tag] -> 원래의 의미는 network전송량의 최대값을 의미 하지만 여기서
는 조금씩 틀리다. 이 부분에 대해서 지정을 할 필요가 있는 부
분에 대해서는 각각의 설정에서 이값을 어떻게 구하는지 설명을
붙여 놓을 것이다.
Options[mrtg_tag] -> Options 에는 여러가지 옵션이 있지만 보통 많이 사용 하는 것
은 3가지 즉, gauge, integer, nopercent 정도이다. gauge는 얻
어진 값을 절대값으로 평가를 하며, 주로 network 과 상관이 없
는 system 의 resouce 즉 disk, process 같은 것들을 측정할 때
많이 사용이 되어진다. integer 는 측정 graph에 들어가는 수치
와 측정 graph 하단의 수치를 정수로 보여주는 것을 의미한다.
지정치 않을 경우 소숫점 1자리로 표현이 된다. nopercent는 위
에서 지정한 MaxBytes 의 값을 기준으로 몇 % 를 사용하고 있다
고 나타내는 것을 출력하지 않게 한다.
Unscaled[mrtg_tag] -> mrtg는 기본적으로 Y축은 측정값의 최대 수치에 맞추어서 Y축
의 최대값을 보여준다. 즉 Y 축의 좌표가 유동적으로 표현이 된
다는 의미이다. 하지만 이 지시자를 설정을 하면 Y 축의 좌표의
최대값은 MaxBytes 에서 설정한 값으로 고정이 된다. 이 지시자
의 value는 d,w,m,y 4개의 값을 가지며 이들은 각각 day graph,
week graph, month graph, year graph (mrtg는 기본적으로 이 4
개의 graph로 구성이 된다.) 를 의미한다.
WithPeak[mrtg_tag] -> WithPeak 는 5분간의 최대 수치를 graph로 나타내게 된다. 이
것 역시 d,w,m,y 의 값을 가지며 month graph와 year graph 에서
만 Peak 값을 graph로 그리려면 m,y 로 지정을 하면 된다.
YLegend[mrtg_tag] -> YLegend 는 graph 의 Y 축의 tag 를 지정한다. 즉 Y 축의 이름
을 지정한다고 생각하라.
ShortLegend[mrtg_tag] -> X 축 아래의 평균 수치를 나타내는 단위를 적는다. 이 부
분은 상당히 유동적이기 때문에 운영 하면서 어떻게 사용되는지
판단해 보기 바란다.
LegendO[mrtg_tag] -> Output data 의 tag 이다. 그래프에서 파란색 문자열에 해당
한다.
LegendI[mrtg_tag] -> Input data 의 tag 이다. 그래프에서 초록색 문자열에 해당한
다.
Legend1,2,3,4[mrtg_tag] -> year graph 하단의 그래프 설명을 지정한다. 차례대로
1,2,3,4 가 되며, 지정을 하지 않으면 나타나지 않는다.
PageTop[mrtg_tag] -> html 로 변환할때 가장 상단의 title을 지정한다. 이 부분은
꼭 <H1> tag 로 감싸줘야 한다. PageTop지시자의 아래에
는 필요한 문자열 같은 것을을 html 양식으로 지정할수도 있다.
### EtherNET 0 Usage
#
Target[PUTHOSTNAME_eth0]: `/usr/bin/mrtg2/ethernet eth0`
MaxBytes[PUTHOSTNAME_eth0]: 13107200
kilo[PUTHOSTNAME_eth0]: 1024
Title[PUTHOSTNAME_eth0]: PUTHOSTNAME : EtherNet 0 transfer usage
PageTop[PUTHOSTNAME_eth0]: <H1>EtherNet 0 transfer usage for PUTHOSTNAME</H1>
<TABLE><TR><TD>System:</TD><TD>PUTHOSTNAME</TD></TR></TABLE>
네트워크 카드의 전송량을 측정한다. MaxBytes 만 자신의 네트워크 속도로
수정을 하고 그대로 사용을 하면 되겠다.
### Load Average
#
Target[PUTHOSTNAME_load]: `/usr/bin/mrtg2/loadaverage`
Title[PUTHOSTNAME_load]: PUTHOSTNAME : Load Average
MaxBytes[PUTHOSTNAME_load]: 100
AbsMax[PUTHOSTNAME_load]: 10000
Options[PUTHOSTNAME_load]: gauge, integer, nopercent
WithPeak[PUTHOSTNAME_load]: my
YLegend[PUTHOSTNAME_load]: Load Average
ShortLegend[PUTHOSTNAME_load]:
LegendI[PUTHOSTNAME_load]: 5 min:
LegendO[PUTHOSTNAME_load]: 15 min:
Legend1[PUTHOSTNAME_load]: 5분간 평균 Load AVG.
Legend2[PUTHOSTNAME_load]: 15분간 평균 Load AVG.
Legend3[PUTHOSTNAME_load]: 5분간 최대 Load AVG.
Legend4[PUTHOSTNAME_load]: 15분간 최대 Load AVG.
#YTicsFactor[PUTHOSTNAME_load]: 0.01
YTicsFactor[PUTHOSTNAME_load]: 1
PageTop[PUTHOSTNAME_load]: <H1>Load Average for PUTHOSTNAME</H1>
<TABLE><TR><TD>System:</TD><TD>PUTHOSTNAME</TD></TR></TABLE>
System의 Load Average 를 측정을 한다. 그대로 사용을 한다.
### httpd process no and session no
#
# web daemon의 프로세스 수와 열려진 세션 수를 구함.
# Target 에서 noprocess daemon_name 의 형식으로 다른 프로세스와
# 세션수를 구할수도 있음. 현재는 httpd와 ftpd, mysql 만 지원함.
#
# noprocess 를 이용하여 MySQL 을 설정할 경우에는 /etc/my.cnf 에서
# client 설정의 패스워드 설정이 되어 있어야만 가능하다. 또한
# LegendO[PUTHOSTNAME_httpd]: Session: 은
# LegendO[PUTHOSTNAME_httpd]: Connection: 으로 설정을 해야
# 한다.
#
#Target[PUTHOSTNAME_httpd]: `/usr/bin/mrtg2/noprocess httpd`
#Title[PUTHOSTNAME_httpd]: PUTHOSTNAME : HTTPd Information
#MaxBytes[PUTHOSTNAME_httpd]: 1000
#AbsMax[PUTHOSTNAME_httpd]: 10000
#Options[PUTHOSTNAME_httpd]: gauge,integer, nopercent
#WithPeak[PUTHOSTNAME_httpd]: my
#YLegend[PUTHOSTNAME_httpd]: Number of HTTPd
#ShortLegend[PUTHOSTNAME_httpd]: EA
#LegendI[PUTHOSTNAME_httpd]: Process:
#LegendO[PUTHOSTNAME_httpd]: Session:
#Legend1[PUTHOSTNAME_httpd]: 5분간 평균 Process 수
#Legend2[PUTHOSTNAME_httpd]: 5분간 평균 Session 수
#Legend3[PUTHOSTNAME_httpd]: 5분간 최대 Process 수
#Legend4[PUTHOSTNAME_httpd]: 5분간 최대 Session 수
#YTicsFactor[PUTHOSTNAME_httpd]: 1
#PageTop[PUTHOSTNAME_httpd]: <H1>HTTPd for PUTHOSTNAME</H1>
# <TABLE><TR><TD>System:</TD><TD>PUTHOSTNAME</TD></TR></TABLE>
이 부분은 http daemon의 process 수와 열려진 session 의 수를 측정을 한다. 현재
는 주석 처리가 되어 있으므로 그래프를 생성을 하려면 제일 앞열의 # 표시를 제거
를 해 주도록 한다.
또한 이 설정을 응용하면 다른 daemon 들의 프로세스와 열려진 세션을 구할수도 있
다. 다만 다른 daemon 들 까지 체크를 하려면 Target 에서 지정된 script들을 약간
수정해 줘야 한다.
수정을 하지 않고 사용할 수 있는 데몬으로는 httpd 와 ftpd가 있다. 만약 MySQL을
tcp/ip 로 접근을 하고 있다면 MySQL 역시 사용을 할수가 있다.
ftpd 를 측정을 하기 위해서는 httpd 의 설정을 그대로 복사를 한뒤에 mrtg tag 를
일단 수정을 해 주고 Target, Title, YLegend만 수정을 하여 사용을 하면 된다. 다
음과 같이 수정을 해주면 무난 할 것이다.
Target[host_ftpd] = `/usr/bin/mrtg2/noprocess ftpd`
Title[host_ftpd] = hostname : FTPd Information
YLegend[host_ftpd] = Number of FTPd
정도로만 변경을 해 주면 ftpd 의 graph는 바로 사용을 할수가 있다. MySQL 은 예제
설정 바로위의 주의 사항을 잘 읽어 보기 바란다.
## Disk Usage
#
# 총 디스크 양과 현재 사용량을 출력해줌.
# Target 에서 disk device_name 의 형식으로 여러개를 지정할수도 있음
# MaxBytes 의 값은 df | grep devicename (옵션없이) 명령으로 알수가 있다.
#
#Target[PUTHOSTNAME_disk]: `/usr/bin/mrtg2/disk hda4`
#Title[PUTHOSTNAME_disk]: PUTHOSTNAME: DISK USAGE
#kilo[PUTHOSTNAME_disk]: 1024
#Unscaled[PUTHOSTNAME_disk]: dwym
#Options[PUTHOSTNAME_disk]: gauge
#LegendI[PUTHOSTNAME_disk]: home:
#LegendO[PUTHOSTNAME_disk]: total:
#Legend1[PUTHOSTNAME_disk]: /home
#Legend2[PUTHOSTNAME_disk]: total
#MaxBytes[PUTHOSTNAME_disk]: 15068496
#ShortLegend[PUTHOSTNAME_disk]: B
#kMG[PUTHOSTNAME_disk]: K,M,G,T,P
#PageTop[PUTHOSTNAME_disk]: <H1>PUTHOSTNAME: DISK USAGE</H1>
# <TABLE><TR><TD>System:</TD><TD>PUTHOSTNAME</TD></TR></TABLE>
이 부분은 HDD 의 용량을 체크하는 설정이다. 이 부분은 각 system 마다 또는 각
관리자마다 측정을 원하는 device 가 틀리기 때문에 기본적으로 주석처리를 해서
배포가 된다. 일단 사용을 하기 위해서는 가장 앞열의 #표시를 제거해 줘야 한다.
# 표시는 주석을 의미한다. 일단 HDD 용량 체크에서 설정을 해 줘야 할 부분은
Target 과 MaxBytes 만 설정을 해 주면 된다. 일단 target에서는 예제와 같이 원
하는 device 명을 제일 마지막에 적으면 된다. 만약 /home partition 을 측정 하
고 싶은데 /home 이 /dev/hdd4 에 mount되어 있다면
Target[mrtg_tag]: `/usr/bin/mrtg2/disk hdd4`
와 같이 지정을 하면 된다. 그리고 MaxBytes 의 값은 df 명령으로 해당 device의
1k-blocks 값을 적어 주면 된다. human readable 기능을 사용하여 보면 안된다.
순수하게 df 의 아무런 옵션 없이 실행시킨 값을 받아야 한다. 즉 hdd 의 용량을
kilobyte로 측정한 값을 넣어준다.
이것을 응용하여 이 설정에서 mrtg tag 와 Target, MaxBytes 값만 조정하여 몇개
의 partition을 측정할수 있다.
만약 커널 2.4 의 DevFS 를 사용하는 경우에는 df의 파티션 이름이 바뀌게 된다.
이때에는 만약 hda2 와 같은 파티션 이름를 안다면 위와같이 그대로 사용해도 무
방하나 만약 모르겠다면 마운트 포지션의 가장 마지막 디렉토리를 지정해 주면된
다. 아래의 예를 참고하라.
shell> df -Ph
Filesystem Size Used Avail Use% Mounted on
/dev/ide/host0/bus0/target0/lun0/part3 3.4G 908M 2.4G 28% /
/dev/ide/host0/bus0/target0/lun0/part2 61M 11M 48M 18% /boot
/dev/ide/host0/bus0/target0/lun0/part5 16G 282M 16G 2% /var
/dev/ide/host0/bus0/target0/lun0/part6 24G 19G 5.1G 79% /home
/dev/ide/host0/bus0/target1/lun0/part2 38G 25G 14G 66% /home/ftproot
tmpfs 251M 0 251M 0% /dev/shm
이경우 /dev/ide/host0/bus0/target1/lun0/part2 는 hdb2를 의미한다. 하지만 이
걸 모르겠다면 위의 설정에서
Target[PUTHOSTNAME_disk]: `/usr/bin/mrtg2/disk devfs ftproot$`
와 같이 지정하여 사용할수 있다.
## Memory Usage
#
# memory의 MaxBytes 는 free -b 로 알수가 있다.
#
Target[PUTHOSTNAME_mem]: `/usr/bin/mrtg2/memory`
MaxBytes[PUTHOSTNAME_mem]: 529661952
Title[PUTHOSTNAME_mem]: PUTHOSTNAME: MEMORY USAGE
Unscaled[PUTHOSTNAME_mem]: dwym
kilo[PUTHOSTNAME_mem]: 1024
WithPeak[PUTHOSTNAME_mem]: my
Options[PUTHOSTNAME_mem]: gauge
YLegend[PUTHOSTNAME_mem]: Memory Usage
LegendI[PUTHOSTNAME_mem]: Used:
LegendO[PUTHOSTNAME_mem]: Cached:
Legend1[PUTHOSTNAME_mem]: 5분간 평균 Used Memory Size
Legend2[PUTHOSTNAME_mem]: 5분간 평균 Cached Memory Size
Legend3[PUTHOSTNAME_mem]: 5분간 최대 Used Memory Size
Legend4[PUTHOSTNAME_mem]: 5분간 최대 Cached Memory Size
ShortLegend[PUTHOSTNAME_mem]: B
PageTop[PUTHOSTNAME_mem]: <H1>PUTHOSTNAME: MEMORY USAGE (512MB)</H1>
<TABLE><TR><TD>System:</TD><TD>PUTHOSTNAME</TD></TR></TABLE>
Memory 사용량을 측정한다. 이 graph에서 free 명령에서의 used값은 이 graph 상
의 used + bufferd+cached 값이 합쳐진 값이다. 실제로 buffer와 cache값은 used
에서 빠져야 실제 메모리 사용량을 알 수가 있는 것이다. 즉 이 graph 에 나오는
used 값이 실제 메모리 사용량이라고 보면 된다. 혹시 free 명령으로 보았을때의
값과 틀리다고 생각하는 사람이 있을것을 대비해 미리 주석을 달아 놓는다.
### Swap Usage
#
# swap의 TotalBytes 는 free (옵션없이) 명령으로 알수가 있다.
#
Target[PUTHOSTNAME_swap]: `/usr/bin/mrtg2/swap`
Title[PUTHOSTNAME_swap]: PUTHOSTNAME : Swap In VS Swap Out
kilo[PUTHOSTNAME_swap]: 1024
MaxBytes[PUTHOSTNAME_swap]: 213815296
Options[PUTHOSTNAME_swap]: gauge, integer
Unscaled[PUTHOSTNAME_swap]: dwym
WithPeak[PUTHOSTNAME_swap]: my
YLegend[PUTHOSTNAME_swap]: Swap Count
ShortLegend[PUTHOSTNAME_swap]: B
kMG[PUTHOSTNAME_swap]: K,M,G,T,P
LegendI[PUTHOSTNAME_swap]: Swap In:
LegendO[PUTHOSTNAME_swap]: Swap Out:
Legend1[PUTHOSTNAME_swap]: 5분간 평균 Swap In
Legend2[PUTHOSTNAME_swap]: 5분간 평균 Swap Out
Legend3[PUTHOSTNAME_swap]: 5분간 최대 Swap In
Legend4[PUTHOSTNAME_swap]: 5분간 최대 Swap Out
PageTop[PUTHOSTNAME_swap]: <H1>Swap usage for PUTHOSTNAME</H1>
<TABLE><TR><TD>System:</TD><TD>PUTHOSTNAME</TD></TR></TABLE>
Swap in 과 out 을 측정한다. SWAP의 MaxBytes 는 free -b 명령으로 Swap의 값을
구할수 있으며 나머지는 수정 없이 그대로 사용을 하면 된다.
### % of I/O Usage
#
Target[PUTHOSTNAME_io]: `/usr/bin/mrtg2/io`
Title[PUTHOSTNAME_io]: WORK.OOPS.ORG : Block In VS Block Out
MaxBytes[PUTHOSTNAME_io]: 1000
Options[PUTHOSTNAME_io]: gauge, integer
Unscaled[PUTHOSTNAME_io]: dwym
WithPeak[PUTHOSTNAME_io]: my
ShortLegend[PUTHOSTNAME_io]: Blocks/s
YLegend[PUTHOSTNAME_io]: Block Count
LegendO[PUTHOSTNAME_io]: Block In:
LegendI[PUTHOSTNAME_io]: Block Out:
Legend1[PUTHOSTNAME_io]: 5분간 평균 Block In
Legend2[PUTHOSTNAME_io]: 5분간 평균 Block Out
Legend3[PUTHOSTNAME_io]: 5분간 최대 Block In
Legend4[PUTHOSTNAME_io]: 5분간 최대 Block Out
Colours[PUTHOSTNAME_io]: 청색#BBBBFF, 적색#FFAAAA, 짙은청색#6666EE, 짙은적색#EE6666
PageTop[PUTHOSTNAME_io]: <H1>I/O usage for PUTHOSTNAME</H1>
<TABLE><TR><TD>System:</TD><TD>PUTHOSTNAME</TD></TR></TABLE>
I/O 의 Block in 과 out 을 측정한다. 수정 없이 그대로 사용을 하면 된다.
[root@bbuwoo etc]$
|