Back to writing
미분류 3 min read HYEONG HWAN, MUN

Ubuntu Linux 에서 MRTG 설치 구성하기

Ubuntu Linux 16.04 및 Ubuntu Linux 18.04 에서 테스트 되었습니다.

물리 서버, 가상 서버, 클라우드 서버 모두 설치 이용 가능합니다.

 

MRTG 는 전세계에서 가장 널리 사용되는 트래픽 그래프 프로그램입니다.

Multi Router Traffic Grapher 의 약자입니다. PC(서버)에 장착된 랜카드 단위로 트래픽 그래프를 표시해 줍니다.
MRTG 공식 사이트 : https://oss.oetiker.ch/mrtg/
프로그램 라이센스 : GPL (공개/무료)

 

트래픽 그래프를 봐야하는 이유

- 내 서버의 트래픽 패턴 및 트래픽 사용량을 확인할 수 있다.
- 서버의 장애 유무를 알 수 있다.
- 서버의 이상을 파악할 수 있다. 작은 디도스나 기타 악성 트래픽 확인.

요약하자면 "지금 내 서버가 멀쩡한 상태이군" 을 판단하는데 도움이 되기 때문에 MRTG 를 이용해야 합니다.

서버호스팅 업체에서 별도로 MRTG 를 제공해 준다면 굳이 이것을 설치할 필요는 없습니다.

 


MRTG 동작의 원리

서버에 root 계정으로 접속 후, 랜카드 네트워크 상태를 보는 명령어인 ifconfig 를 실행해보자.

# ifconfig

별도의 설정을 하지 않아도, 각 랜카드는 보내고(TX) 받은(RX) 데이터양을 자동으로 기록합니다. (재부팅 또는 일정한 조건이 되면 초기화됨)

이 기록을 주기적으로 확인하고 변화량 을 측정하면 속도가 계산된다.

이 속도 값을 그래프로 표시한 것이 MRTG 이다.

예시의 위 그래프의 서비스는 서비스의 주요 사용시간이 10시 ~  새벽 2시 라는 것을 알 수 있다.

주간이나, 월간, 연간 그래프를 보고 "내 서비스의 이용자 수 변화"도 시각적으로 볼 수 있다.

 


MRTG 설치 및 세팅

MRTG 는 주기적으로 측정 프로그램을 실행하고, 측정 결과를 계산해서 그래프를 그려주는 프로그램이다.
SNMP 는 네트워크 장치 및 관련 정보를 읽어와 표시하는 프로그램입니다.

SNMP 를 설치하지 않으면  MRTG 가 데이터를 읽어올 수 없어서 그래프가 그려지지 않습니다.
SNMP 는 Simple Network Management Protocol 의 약자입니다.

 

SNMP 설치
# apt-get install snmp snmpd
MRTG 설치
# apt-get install mrtg

/etc/mrtg.cfg 파일의 권한을 root:root 의 640 퍼미션으로 설정하라는 경고메세지가 나온다. 엔터 입력하면 자동 설정됨. 혹시나 실수로 파일 권한을 바꾸지 말라는 메세지가 출력된다.
SNMP 명령어가 노출되기 때문에 보안문제가 발생할 수 있다는 것이다. 이상한 것을 하지 않는 이상 문제가 발생하지 않는다.

 

 

SNMP 의 로컬 권한 허용 설정
# vi /etc/snmp/snmpd.conf

다 쓰여있고, 주석(#)만 풀어주면 된다. 수정 후 저장.

public@localhost 에게 네트워크 정보를 확인할 권한이 부여된다.
이 부분을 잘 설정하면 다른 서버에서 이 서버의 SNMP 정보를 읽어올 수 있게 수정할 수 있다.

적용을 위해 SNMP 서비스 재시작
# service snmpd restart

 

cfgmaker 및 indexmaker 는 mrtg 패키지에 포함된 명령어 이다.

 

SNMP 를 이용해서 mrtg 환경설정 생성
# cfgmaker public@localhost > /etc/mrtg.cfg

 

페이지를 볼 도메인, 사이트 준비하기.

웹사이트를 세팅할 줄 안다고 가정하겠다.
로컬 디렉토리는 /home/myuser1/www/mymrtg
도메인 주소는 mrtg-example.lael.be 로 정했다.

여러분의 상황에 맞게 경로, 도메인을 입력하세요. (적당히 잘 설정해주세요)
제 예제는 아무튼 이렇습니다.

 

MRTG 출력 경로 설정
# vi /etc/mrtg.cfg

 

MRTG 인덱스 페이지 만들기
# indexmaker /etc/mrtg.cfg > /home/myuser1/www/mymrtg/index.html

랜카드 목록 페이지를 생성합니다. index.html 페이지 하나가 생성됩니다.
페이지를 꾸미고 싶으면 열어서 수정하시면 됩니다.

 

MRTG 한번 실행 (테스트)
# env LANG=C /usr/bin/mrtg /etc/mrtg.cfg

초기 1회 실행시 경고메세지가 표시될 수도 있다. 그래프 파일이 생성된 것을 확인 할 수 있다.

 

그래프 확인

http://mrtg-example.lael.be/mymrtg/ (데모링크 종료)

일반 웹 사이트 확인하듯이 열어보면 된다.

 

자동 생성 페이지의 템플릿을 바꾸려면 /etc/mrtg.cfg 파일을 열어서 수정한다.
각종 설정 구문 설명은 https://oss.oetiker.ch/mrtg/doc/mrtg-reference.en.html 에서 볼 수 있다.

mrtg 프로그램은 /etc/mrtg.cfg 파일을 기준으로 자동으로 5분마다 실행된다.

자동 실행 명령어의 위치는 /etc/cron.d/mrtg 이다.  (파일을 삭제하면 자동실행이 안된다. 자동 실행 시간 주기나 명령어를 바꾸고 싶으면 수정하면 된다.)

 

자동실행 정보 확인
# cat /etc/cron.d/mrtg

 

취향에 따라서 확인 HTML 페이지에 IP 제한을 걸거나, 암호 제한을 설정해도 좋다.

 

트래픽 모니터링 페이지 완성!

Filed under