우분투에서 mrtg 설치하기. 2011-09-03 03:10:54에 작성. 14,214번 읽힘.

이 글은 개인 메모용으로 적어두는 것이며 혹시나 필요한 사람이 있으면 도움이 될까 해서 공개로 걸어둔다.

테스트 서버 환경

- 홈서버, 허브가 걸린 회선(광랜), 우분투 서버에디션 10.04.2 LTS x64. (아이피 설정에 localhost 를 해줘도 됨)
- 홈서버, 직접 연결 회선(광랜), 우분투 서버에디션 10.10 x64 (아이피 설정에 localhost 를 해줘도 됨)
- VPS, 우분투 서버 10.10 (설정에 아이피를 적어줘야됨)

필요 패키지 설치

sudo apt-get -y install snmp snmpd mrtg

/etc/snmp/snmpd.conf 수정

com2sec public  localhost               public                                                                                         
com2sec public  127.0.0.1               public
# localhost로 되지 않을 경우 서버아이피를 직접 지정해야한다.
# com2sec public  서버아이피       public
 
group   public  v1                              public
group   public  v2c                             public
 
 
view    all             included                .1
 
access  public  ""      any     noauth  exact   all     none    none
syslocation     "서버위치"
syscontact      "컨텍트정보"
sudo /etc/init.d/snmpd restart

절차

아래를 .sh 파일로 만들어 저장 후 실행한다. chmod +x 로 권한 조절하는 것도 잊지 말자.

#!/bin/bash
 
MM_HOST="localhost" # localhost 로 안되면 아이피로 해야한다.
 
cd ~
mkdir mrtg
cd ~/mrtg
mkdir http
echo "cd /home/${USER}/mrtg;env LANG=C /usr/bin/mrtg /home/${USER}/mrtg/mrtg.cfg">mrtg.sh
echo "indexmaker /home/${USER}/mrtg/mrtg.cfg > /home/${USER}/mrtg/http/index.html">maker.sh
chmod +x maker.sh mrtg.sh
 
cfgmaker --global "WorkDir: /home/${USER}/mrtg/http/" --global 'Language: korean' --global 'Options[_]: bits,growright' --output mrtg.cfg public@${MM_HOST}

아마 ~/mrtg 디렉토리로 이동된 상태일것이다. 안돼있으면 cd ~/mrtg 를 한다.

그다음에는

vi mrtg.cfg

으로 mrtg.cfg 를 열어서 윗쪽의 자동생성된 WorkDir을 주석처리.

./maker.sh;
sudo ./mrtg.sh;

작동 된다면 설치 성공 (에러 나오면 씹고 sudo ./mrtg.sh 몇번 해보고 에러 안나면 정상)

crontab에 추가

sudo su 를 해서 root 권한으로 접속하여 crontab -e 에 추가

* * * * * /home/유저네임/mrtg/mrtg.sh

도움 주신 분

Lative Studio

이 포스트와 비슷한 포스트들

MRTG Perl and Shell Scripts | jehiah.cz 2011-09-03 02:35:32에 작성. 13,202번 읽힘.

MRTG Perl and Shell Scripts | jehiah.cz에는 mrtg 에서 쓸 수 있는 여러종류의 스크립트가 있다. loadavg를 mrtg 에 표현 할 수 있는 방법을 찾다가 알게 되었다. 스크립트 내용은 아래에 한번에 정리해둔다.

mrtg-filesize.sh – 메일 로그가 차지하는 용량을 보여준다.

#!/bin/sh
# Created by Jehiah Czebotar
# http://www.jehiah.com/
#
# This script is licensed under the GPL http://www.gnu.org/copyleft/gpl.html
#
# Date   : January 5, 2003
# File   : mrtg-filesize.sh
# Version: 1.0
#########################
 
###  Sample /etc/mrtg.cfg usage
 
#  Title[server-mail]: Server Mail log size
#  PageTop[server-mail]: Server Mail log size
#  Target[server-mail]: `scripts/mrtg-filesize.sh /var/log/maillog`
#  MaxBytes[server-mail]: 1208032
#  YLegend[server-mail]: Size
#  ShortLegend[server-mail]: Bytes
#  LegendO[server-mail]: Bytes
#  Options[server-mail]: perminute, growright
 
 
l=`ls -l $1 | awk '{print $5}'`
echo $l
echo $l
hostname;
echo "mailsize";

mrtg-loadavg.sh – 서버 로드율 (부하율)을 보여준다.

#!/bin/sh
# Created by Jehiah Czebotar
# http://www.jehiah.com/
#
# This script is licensed under the GPL http://www.gnu.org/copyleft/gpl.html
#
# Date   : January 5, 2003
# File   : mrtg-loadavg.sh
# Version: 1.0
#########################
 
 
#### Sample /etc/mrtg.cfg usage
 
#  Target[server-cpu]: `scripts/mrtg-loadavg.sh`
#  MaxBytes[server-cpu]: 500
#  Title[server-cpu]: server CPU Load (5 minute average)
#  YLegend[server-cpu]: Load*100
#  ShortLegend[server-cpu]: load
#  Legend1[server-cpu]: CPU Load (x 100)
#  Legend2[server-cpu]:
#  LegendI[server-cpu]: 1min load
#  LegendO[server-cpu]: 5min load
#  PageTop[server-cpu]: server 5-minute average CPU Load
#  Options[server-cpu]: gauge,nopercent,integer,growright
 
awk </proc/loadavg '{print (100*$1) "\n" (100*$2) }'
hostname;
echo "loadavg";

mrtg-numconns.sh – TCP커넥션 수를 보여준다.

#!/bin/sh
# Created by Jehiah Czebotar
# http://www.jehiah.com/
#
# This script is licensed under the GPL http://www.gnu.org/copyleft/gpl.html
#
# Date   : January 5, 2003
# File   : mrtg-numconns.sh
# Version: 1.0
#########################
 
### Sample /etc/mrtg/mrtg.cfg usage
#  Title[server-numconns]: Server TCP connections
#  Target[server-numconns]: `scripts/mrtg-numconns.sh`
#  PageTop[server-numconns]: TCP connections
#  MaxBytes[server-numconns]: 1000
#  YLegend[server-numconns]: Connections
#  ShortLegend[server-numconns]: connections
#  LegendO[server-numconns]: Connections
#  Options[server-numconns]: gauge, growright
 
 
if [ "$1" = "" ] ; then
	O=`/bin/netstat -nt | fgrep ESTABLISHED | wc -l`
	label='numconns'
else
	O=`/bin/netstat -nt | fgrep ESTABLISHED | fgrep "$1" | wc -l`
	label="$1"
fi
echo $O
echo $O
hostname
echo "$label"

mrtg-uptime.pl – 업타임을 보여준다.

#!/usr/bin/perl
# Created by Jehiah Czebotar
# http://www.jehiah.com/
#
# This script is licensed under the GPL http://www.gnu.org/copyleft/gpl.html
#
# Date   : January 5, 2003
# File   : mrtg-uptime.pl
# Version: 1.0
#########################
 
### Sample /etc/mrtg/mrtg.cfg file
 
#  Target[server-uptime]: `scripts/mrtg_uptime.pl`
#  Colours[server-uptime]: LIGHT BLUE#7AAFFF,BLUE#1000FF,DARK GREEN#006000,VIOLET#FF00FF
#  Options[server-uptime]: gauge,noinfo, nopercent, growright, unknaszero
#  MaxBytes[server-uptime]: 200
#  Title[server-uptime]: server uptime
#  YLegend[server-uptime]: Days
#  ShortLegend[server-uptime]: Days
#  Legend1[server-uptime]: Uptime
#  Legend2[server-uptime]:
#  LegendI[server-uptime]:
#  LegendO[server-uptime]: uptime :
#  PageTop[server-uptime]: Uptime in days
 
$uptime = `uptime`;
$uptime =~ /up (.*?) day/;
$up = int($1);
 
print "$up\n";
print "$up\n";
print "\n"; #hostname should be printed on 3rd line
print "uptime\n"; #