Centos 6 MRTG설치 및 설정

| 2019년 11월 3일 | 0 Comments

안녕하세요 기술지원팀 오장욱입니다. MRTG 설치를 통해 서버 트래픽,CPU 사용률 . HDD 사용용량, 메모리 사용용량을 그래프로 나타내는 것을 알아보도록 하겠습니다.

설치에 앞서 MRTG에 대해 간단히 설명하면

MRTG는 Multi Router Traffic Grapher 의 약자로써
snmp 프로토콜을 통해 자료를 그래픽으로 보여주는 모니터링 프로그램이며
traffic량을 그래프로 나타내 html로 만들어 WEB상에서도 볼 수 있습니다.

설치 환경으로는 MRTG server 와  MRTG client로 나누어 서버에서 클라이언트의 상태를 모니터링 하는 것으로 설정하였습니다.

설치 사양은 다음과 같습니다.

– MRTG Server
     Centos 6
    APM 설치
    필수 라이브러리 설치
    (freetype-devel gd-devel libjpeg-devel libpng-devel)
    MRTG ,SNMP 설치

– MRTG Client
   Centos 6
   SNMP 설치

1.snmp 설치

MRTG를 설치 하기 앞서 server와 client 모두에 snmp 를 설치하여줍니다.

yum -y install snmp* net-snmp*

설치 하였다면 설정을 하여야 하는데

설정파일은 /etc/snmp/snmpd.conf에 있습니다.

설정은 client에만 설정하면 되며 아래 내용과 같이 설정 하면 됩니다

vi /etc/snmp/snmpd/conf

# First, map the community name “public” into a “security name”
# sec.name source community
#com2sec notConfigUser default public
com2sec local 클라이언트IP mrtgtest                // SNMP 허용 아이피와 community name 입력
com2sec mrtgserver 서버IP  mrtgtest       // mrtg 서버에 대한 정보
####
# Second, map the security name into a group name:
# groupName securityModel securityName
#group notConfigGroup v1 notConfigUser
#group notConfigGroup v2c notConfigUser
–> 위 두줄 주석 처리
group GRlocal v1 local
group GRlcoal v2c local
group GRlocal usm local
group GRmrtg v1 mrtgserver
group GRmrtg v2c mrtgserver
group GRmrtg usm mrtgserver
–> 그룹설정으로 각 계정에 대한 보안 모델 지정
# Third, create a view for us to let the group have rights to:
# Make at least snmpwalk -v 1 localhost -c public system fast again.
#
name incl/excl subtree mask(optional)
#view systemview included .1.3.6.1.2.1.1
#view systemview included .1.3.6.1.2.1.25.1.1
view all included .1 80
→ mib 트리에서 보여줄 정보 설정
# Finally, grant the group read-only access to the systemview view.
#
group
context sec.model sec.level prefix read write notif
→ 그룹 별 상세설정
#access notConfigGroup “”  any noauth exact systemview none none
#access MyROGroup “” any noauth 0 all none none
#access MyRWGroup “” any noauth 0 all all all

access GRlocal “” any any noauth exact all all all

access GRmrtg “” any any noauth exact all none none

# 하드 용량체크 파티션 지정
disk / 25785660
// 334 번쨰 줄 주석해제후 용량 수정
→ 디스크 용량 확인 snmpwalk -v2c -c mrtgtest 대상IP .1.3.6.1.4.1.2021.9.1.6 (디스크oid 값)

저장후  snmp 재시작을 해주고 161번  UDP/TCP 포트를 방화벽에 등록해줘야 합니다

2.MRTG 설치 

이제 MRTG 서버에  다음과 같이 yum 설치를 해줍니다

yum -y install mrtg*

mrtg생성을 위해 cfgmaker명령을 통해 cfg명령을 생성합니다

cfgmaker –global ‘WorkDir:/usr/local/apache/htdocs/website/mrtg/’ –global ‘Language: korean’ –global ‘Options[_]: bits,growright’ –output /etc/mrtg/mrtg2.cfg mrtgtest@client_IP

간략히 설명 하면

workdir -> MRTG그래프가 생성되는 경로

output-> cfg파일 생성 경로 mrtgtest@client_IP(coummuny name@ 클라이언트 IP)

다음은 cfg파일에 그래프로 보여질 내용을 설정하는 부분입니다.

저는 /etc/mrtg/mrtg.cfg에 생성하였고 트래픽,CPU,메모리 ,디스크용량에 대해 설정하였습니다.

vi /etc/mrtg/mrtg.cfg 들어가서 

EnableIPv6: no

WorkDir: /usr/local/apache/htdocs/website/mrtg/ ->웹 소스 경로

Language: korean //언어 지정

Options[_]: bits,growright

##### TRAFFIC #####

Target[traffic]: 2:mrtgtest@115.68.207.228: // community name@대상IP

MaxBytes[traffic]: 125000000 //최대 전송가능한 바이트값 만약 지정된수를 넘기면 무시

ThreshMaxI[traffic]: 125000000 //인바운드 트래픽 바이트 값

ThreshMaxO[traffic]: 125000000 //아웃바운드 트래픽 바이트 값

Title[traffic]: >>115.68.222.195 Traffic<<

SetEnv[traffic]: MRTG_INT_IP=”클라이언트IP” MRTG_INT_DESCR=”eth0″ //대상 IP 및 네트워크 장치 명 

#####CPU ######

Target[cpu]: 1.3.6.1.4.1.2021.4.6.0&1.3.6.1.4.1.2021.4.5.0:mrtgtest@해당IP // CPU 사용률에 대한 OID 지정

Options[cpu]: gauge,nopercent,growright

MaxBytes[cpu]: 100 //cpu 최대값

Title[cpu]: >>(클라이언트 IP)CPU Load<<

Unscaled[cpu]: ywmd //그래프를 년 월 주 일 을 그리도록 설정합니다.

ShortLegend[cpu]: %

YLegend[cpu]:CPU Utilization

Legend1[cpu]: User CPU in % (Load) // 그래프 색에 대한 설명

Legend2[cpu]: Idle CPU in % (Load) // 그래프색에 대한 설명

Legend3[cpu]:

Legend4[cpu]:

LegendI[cpu]: User //해당 input에 해당되는 것이 무엇인지 알려줌

LegendO[cpu]: Idle //해당 output에 해당되는 것이 무엇인지 알려줌

##### memory #####

 Target[memory]: 1.3.6.1.4.1.2021.4.6.0&1.3.6.1.4.1.2021.4.5.0:mrtgtest@해당IP //메모리 용량에 대한 OID값

Title[memory]: >>(클라이언트IP) Memory<<

MaxBytes[memory]: 1000000

ShortLegend[memory]: B

YLegend[memory]: Bytes

LegendI[memory]: Free

LegendO[memory]: Total

Legend1[memory]: Free memory, not including swap, in bytes

Legend2[memory]: Total memory

Options[memory]: gauge,growright,nopercent

#####DISK #####

Target[hdd]: .1.3.6.1.4.1.2021.9.1.7.1&.1.3.6.1.4.1.2021.9.1.7.1:mrtgtest@해당IP // 디스크 용량에 대한 OID값

Title[hdd]:>>(클라이언트 IP) Disk <<

MaxBytes[hdd]: 25785660 //disk 최대용량 값

ShortLegend[disk]: B

kMG[disk]: k,M,G,T,P

Unscaled[disk]:dwmy

#kilo[disk]: 1024

YLegend[disk]: DISK FREE

Legend1[disk]: Root disk size

Legend2[disk]:

Legend3[disk]:

Legend4[disk]:

LegendI[disk]: Root disk size

LegendO[disk]:

Options[disk]: growright,gauge,nopercent,absolute

설정이 다되었다면 indexmaker명령을 통해 그래프이미지 와 index페이지를 설정합니다.

indexmaker –title “MRTG” –output /usr/local/apache/htdocs/website/mrtg/index.html /etc/mrtg/mrtg.cfg

  –title -> 메인 페이지제목   -output –> html 생성될 경로

추가적으로 cfg에 나온 OID 값에 대해서 설명하면 각 객체들이 가진 식별 값으로 snmpwalk로 조회가 가능합니다.

snmpwalk -v2c -c comunityname 대상IP 조회대상(ifDescr , dsk,mem..)

indexmaker로  생성했다면 vhost로 등록하여줍니다

vi /usr/local/apache/conf/extra/httpd-vhost.conf

<VirtualHost *:80>

DocumentRoot “/usr/local/apache/htdocs/website/mrtg/”    –>이전에 workDir 경로

ServerName 클라이언트(IP) or 도메인

ErrorLog “logs/mrtg-error_log”

CustomLog “logs/mrtg-access_log” common

</Virtualhost>

등록 후 IP or domain/index.html 하면 그래프가 나오는 것을 볼 수 있습니다

감사합니다.

Category: 솔루션/IT기타

About the Author ()