운영하기서버

블로그에도 썼지만 여기에도 공유합니다 : https://blog.lael.be/post/6983 

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 인덱스 페이지 만들기
# indexmaker /etc/mrtg.cfg > /home/myuser1/www/mymrtg/index.html

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

 

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

 

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

그래프 파일이 생성된 것을 확인 할 수 있다.

 

그래프 확인

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 제한을 걸거나, 암호 제한을 설정해도 좋다.

 

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

  • profile
    기진곰 2018.05.28 14:40:10
    저는 munin도 많이 씁니다. 트래픽뿐 아니라 CPU 사용량, RAM 사용량, 디스크 사용량 등을 한눈에 볼 수 있어서 편리하더군요. 그냥 MRTG만 쓰는 것보다 서버 자원을 많이 소비하긴 하지만, 아주 저사양 서버가 아닌 이상 큰 부담이 되지는 않으니까요.

    제일 중요한 그래프만 따로 모아보는 페이지를 만들어서 아침에 일어나면 새로고침 한 번 해줍니다. 관리하는 서버들이 밤 사이 어떻게 지냈는지 확인하는 거죠. 비상사태가 아니더라도 특이사항이 있으면 바로 눈에 띄니 편리합니다 ㅎㅎ
  • profile
    라엘 2018.05.28 22:48:39
    역시 좋은 툴을 쓰시는군요!
  • ?
    뚜방 2018.05.29 00:00:16
    nagios, cacti, zabbix 등 많네요

    둘러보고 맘에 드는거 써봐야겟네요

서버에 요청 중입니다. 잠시만 기다려 주십시오...