FreeBSD에 mrtg를 설치하여 윈도우 서버의 cpu사용량을 모니터해보자..
일단 Freebsd 서버에서 작업하자..
1. snmp설치..(실제로를 설치하지않아도 상관없으나 snmpwalk를 실행해서 윈도우 서버에 접속이 잘되나 확인하려면 필요함.)
cd /usr/ports/net-mgmt/net-snmp
make install clean
2. mrtg 설치
cd /usr/ports/net-mgmt/mrtg/
make install clean
3. 윈도우 서버 snmp설치
제어판 >> 프로그램 추가 삭제 >> 윈도우 컴포넌트 >> 네트웍메니지먼트 뭐시기...
snmp를 클릭하고 선택한다..아마도 cd가 필요할것임.
설치되엇으면 comunity를 세팅해줘야한다.
제어판 > administrator 관리 >> service 에서 snmp선택후 오른쪽버튼 클릭 프로퍼티
커뮤니티를 public으로 만들자..그 아래부분도 선택을 모든 호스트에서 물어보기 가능으로 바꾼다.
(보안상의 문제는 나중에 다된다음에 개인적으로수정할것)
이제 됫다..
4. snmpwalk 으로 snmp값을 가져오는지 확인한다.
snmpwalk -Os -c public -v 1 10.1.5.101(아이피)
무슨 값들으 쭉나오면 일단 성공..
이제 cpu 인스턴스를 찾아보자.
snmpwalk -Os -c public -v 1 10.1.5.101 .1.3.6.1.2.1.25.3.3.1.2
hrProcessorLoad.2 = INTEGER: 87
hrProcessorLoad.3 = INTEGER: 87
hrProcessorLoad.4 = INTEGER: 87
hrProcessorLoad.5 = INTEGER: 86
hrProcessorLoad.6 = INTEGER: 87
hrProcessorLoad.7 = INTEGER: 86
hrProcessorLoad.8 = INTEGER: 86
hrProcessorLoad.9 = INTEGER: 84
이런 비슷한 값이 나온다..
필자는 코어가 8개이므로 8개가 나온다..hrProcessorLoad 다음에 나오는 숫자가 인스턴트 숫자이다..
5. 이제 mrtg config만들자.
cd /usr/local/etc/mrtg/
vi mrtg.cfg
다음 내용을 넣는다.
Workdir:/usr/local/www/apache22/data/mrtg
IconDir: /usr/local/share/mrtg
Options[_]: bits,growright
language:korean
Target[R-21]:.1.3.6.1.2.1.25.3.3.1.2.2&.1.3.6.1.2.1.25.3.3.1.2.3:public@10.1.5.196
MaxBytes[R-21]: 100
Title[R-21]: R-56 CPU LOAD
Unscaled[R-21]: ymwd
ShortLegend[R-21]:%
YLegend[R-21]: CPU Utilization
Legend1[R-21]: CPU #1 in % (Load)
Legend2[R-21]:CPU#2 in % (Load)
LegendI[R-21]: CPU #1
LegendO[R-21]:CPU#2
Options[R-21]: gauge,integer,nopercent
PageTop[R-21]: <H1> R-21 CPU Load % </H1>
<div>
<TABLE>
<TR><TD>Node Name</TD><TD>R-21</TD></TR>
</TABLE>
</div>
제일 중요한건 Target부분이다..이 설정은 2번core 하고 3번 코어의 사용량을 그래프로 나타내준다.
mrtg 는 꼭 그런지 므로겟으나 in 과 out 이 있으므로 저렇게 & 표시로 연결해줘야한다..
public은 커뮤니티이름 그뒤에 아이피 이렇게 써주면된다..
일단 cpu가 두개인분들은 이러면 끝이다..
그런데 난 cpu가 8개이므로 그래프를 8 or 4개를 그려도 되나..전체합친 cpu 사용량을 찾아보기로 결정..다음처럼 수정한다..
target 부분만 수정한다.
Target[R-21]:.1.3.6.1.2.1.25.3.3.1.2.2&.1.3.6.1.2.1.25.3.3.1.2.3:public@10.1.5.196 + .1.3.6.1.2.1.25.3.3.1.2.4&.1.3.6.1.2.1.25.3.3.1.2.5:public@10.1.5.196
+ .1.3.6.1.2.1.25.3.3.1.2.6&.1.3.6.1.2.1.25.3.3.1.2.7:public@10.1.5.196 + .1.3.6.1.2.1.25.3.3.1.2.8&.1.3.6.1.2.1.25.3.3.1.2.9:public@10.1.5.196
설명을 하면 그래프는 두개인다 인과 아웃 그러므로 인의 값에 2 4 6 8 번 코어값을 더해서 나타낸다..아웃의 경우는 3 5 7 9 core의 값을 더해서 나타낸다..
꼭 이해해야하는부분이 맨마지막의 인스턴스넘버이다..필자와 다를수잇으므로 꼭 snmpwalk으로 확인하기 바람.
이렇게 하면 최대 100까지 나오는것들을 4개를 합쳤으므로 max값을 400으로 바꾼다..(나중에 뭐 4로 나눠도됨.)
총 정리된 설정이다.
MaxBytes[R-21]: 400
Title[R-21]: R-56 CPU LOAD
Unscaled[R-21]: ymwd
ShortLegend[R-21]:%
YLegend[R-21]: CPU Utilization
Legend1[R-21]: CPU #1 in % (Load)
Legend2[R-21]:CPU#2 in % (Load)
LegendI[R-21]: CPU #1
LegendO[R-21]:CPU#2
Options[R-21]: gauge,integer,nopercent
PageTop[R-21]: <H1> R-21 CPU Load % </H1>
<div>
<TABLE>
<TR><TD>Node Name</TD><TD>R-21</TD></TR>
</TABLE>
</div>
이제 mrtg를 실행해보자
mrtg /usr/local/etc/mrtg/mrtg.cfg
처음 3번은 에러가 나온다..기존 데이터가 없어서..무시한다..
이제 웹사이트를 띄워서 mrtg폴더를 본다...
cd /usr/local/www/apache22/data/mrtg
ls
html이랑 이미지 파일이 생성되있으면 성공..
이제 그러면 웹사이트를 열고 /mrtg/하면 결과값을볼수잇다..
이제 5분마다 mrtg를 실행해서 결과값을 계속 업데이트하는과정을 해야한다.
vi /etc/crontab
*/5 * * * * root /usr/local/etc/mrtg/mrtg.sh
이부분을 추가한다..5분마다 프로그램을 실행해라라는 뜻..
이제 mrtg.sh를 만들자
cd /usr/local/etc/mrtg
vi mrtg.sh
#!/bin/sh
/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
저장하고 실행권한 준다
chmod +x mrtg.sh
리부팅해주면 5분마다 크론탭이 mrtg를 실행시켜주며 컴퓨터 cpu사용량을 업데이트해준다..
이제 웹사이트로 보면 된다...
이제 서버가 여러개의 경우를 생각해보자..
쉽다.. cfg파일만 여러개 만든후 mrtg.sh파일에 추가해주면된다.
여러개의 cfg파일이 잇으면 html 이 너무 많아서 지저분해진다.
5분간격으로 나타난 그래프만 모아서 한 페이지로 만들어보자..
indexmaker --output=/usr/local/www/apache22/data/mrtg/index.html /usr/local/etc/mrtg/mrtg.cfg