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 제한을 걸거나, 암호 제한을 설정해도 좋다.
트래픽 모니터링 페이지 완성!
안녕하세요~
좋은 강의 감사드립니다.
에러가 나는데 이거 정상인가요?
# cfgmaker public@localhost > /etc/mrtg.cfg
–base: Get Device Info on public@localhost:
–base: Vendor Id: Unknown Vendor – 1.3.6.1.4.1.8072.3.2.10
–base: Populating confcache
–base: Get Interface Info
–base: Walking ifIndex
–snpd: public@localhost: -> 1 -> ifIndex = 1
–snpd: public@localhost: -> 2 -> ifIndex = 2
–base: Walking ifType
–snpd: public@localhost: -> 1 -> ifType = 24
–snpd: public@localhost: -> 2 -> ifType = 6
–base: Walking ifAdminStatus
–snpd: public@localhost: -> 1 -> ifAdminStatus = 1
–snpd: public@localhost: -> 2 -> ifAdminStatus = 1
–base: Walking ifOperStatus
–snpd: public@localhost: -> 1 -> ifOperStatus = 1
–snpd: public@localhost: -> 2 -> ifOperStatus = 1
–base: Walking ifMtu
–snpd: public@localhost: -> 1 -> ifMtu = 65536
–snpd: public@localhost: -> 2 -> ifMtu = 1500
–base: Walking ifSpeed
–snpd: public@localhost: -> 1 -> ifSpeed = 10000000
–snpd: public@localhost: -> 2 -> ifSpeed = 4294967295
You have new mail in /var/mail/root
# indexmaker /etc/mrtg.cfg > /var/www/html/mrtg/index.html
bash: /var/www/html/mrtg/index.html: No such file or directory
글 내용이 보강 수정되었습니다.
다시 살펴봐주세요!
성공했습니다
감사합니다!
리눅스 모니터링 툴 추천해주실만한거 있을까요?
Nginx, php , mariadb, redis, 이정도 사용하고
대역폭, 트래픽, cpu, ram 사용량등도 확인할 수 있으면 좋겠는데…
netdata는 실시간(약1시간~) 만 보여주고, 한달 치 통계는 못보는거 같구..
무민은 실시간 통계되나요??
아무튼 몇개 추천 부탁드립니다
가비아 서버 모니터링 서비스 사용해보세요. 무료입니다.
windows, linux 설치가능.
현재 계속 테스트중이고, 4달정도 썼는데, 괜찮더라구요.
https://xms.gabia.com/
가비아에서 근무하시는구나..
들어가려면 멀 준비하조 서버쪽?
가비아에서 근무하고 있지 않습니다.
다만 모니터링 툴은 가비아제품이 쓸만합니다.