999.888.777.666 서버에 대한 snmpd를 통해 얻은 정보로 mrtg를 활성화하는 예시

 

snmpd의 community 값은 growingsaja 로 둔 환경이며, cfg 파일은 /etc/mrtg/ 아래에 생성할 것이고, cfg 파일을 통해 생성되는 png파일 등과 같은 데이터들은 모두 /apps/www/mrtg/logs/ 에 생성하도록 세팅함

 

아래 작업은 mrtg 그래프 정보를 조회하고자 하는 서버(클라이언트)가 아닌, MRTG 수집 서버(호스트)에서 진행함

 

 

 

1. snmpd 정상 작동 확인

snmpwalk -v 2c -c growingsaja 999.888.777.666

입력시 즉각적으로 대량의 내용이 출력되면 snmp가 정상 작동하는 것임

만약 되지 않는 경우, 방화벽이나 snmpd.conf 설정 파일 확인 등의 작업 필요

 

 

2. cfgmaker 커맨드를 통해 cfg 파일을 생성해줌

cfgmaker growingsaja@999.888.777.666 > /etc/mrtg/999.888.777.666.mrtg.cfg

아래와 같이 옵션을 주어 cfg 파일을 생성할 수 있다. 그럴 경우 3번 항목의 작업이 불필요하다

cfgmaker --snmp-options=:::::2 --global 'WorkDir: /apps/www/mrtg/log' --global 'Options[_]: bits,growright' --output /etc/mrtg/999.888.777.666.mrtg.cfg growingsaja@999.888.777.666

(2 옵션으로 snmp cfg 파일 생성 / log 파일 생성 위치 / 그래프 그려지는 방향 / 사용 cfg 파일 / community값@클라이언트IP)

필자는 위의 cfgmaker를 사용하였을 때 트래픽이 비정상적으로 그려지는 경우가 있음을 경험했다. 가능하면 아래 명령어를 통한 세팅을 권장한다.

 

 

3. 생성된 cfg파일 안에 추가 설정값 입력

============================================================

WorkDir: /apps/www/mrtg/log/                 # cfg 파일을 통해 생성되는 png, html, log 등의 파일 위치
Options[_]: bits,growright                         # bit 단위로 왼쪽부터 오른쪽으로 시간 흐르며 그래프 그려지도록 설정

============================================================

EnableIPv6: no

라는 설정 근처에 적어두시면 좋습니다. (유지보수하기에)

 

 

4. cfg 파일 실행

env LANG=C /usr/bin/mrtg /etc/mrtg/999.888.777.666.mrtg.cfg

입력을 통해 생성된 cfg 파일을 실행

해당 커맨드 입력시 에러 메시지가 출력되기도 하는데, 여러 차례 해당 커맨드를 입력하다보면 에러 메시지가 사라지며 이렇게해서 사라지는 경우 무시해도 문제 없는 에러 메시지임 (해당 메시지는 기존에 파일이 없어 신규로 생성한다 등의 내용입니다.)

 

 

5. 실행된 결과 파일이 정상적으로 생성되었는지 확인 진행

웹페이지에 띄우서 정상출력되는지 보는 것으로도 확인 가능 (httpd)

 

 

6. indexmaker를 통해 index 파일을 생성해줌

indexmaker --title "TEST_MRTG_FOR_SAJA" --output /apps/www/mrtg/logs/999.888.777.666-index.html /etc/mrtg/999.888.777.666.mrtg.cfg

 

 

7. indexmaker 정상 작동 확인

생성된 파일 정상 확인 진행, 웹으로 확인해보는 것을 추천함 (httpd)

 

 

8. log 파일 확인

log 파일명은 cfg 파일 실행으로 인해 생성된 디렉토리의 파일들 중 .log로 끝나는 파일임

서버 상태에 따라 해당 파일명이 달라지므로 직접 확인하여 진행할 것

( 예시로 999.888.777.666_2.log 와 같은 형태임 )

env LANG=C /usr/bin/mrtg /etc/mrtg/999.888.777.666.mrtg.cfg

입력시 log 파일의 데이터가 변경되는데, 정상적으로 수치가 변경되면 정상적으로 mrtg가 작동되고 있다고 판단

만약 세로로 보았을 경우 모든 숫자가 같게 출력된다면 비정상으로 판단, snmpd가 비정상 작동하거나 서버에 문제가 있는 것임

일반적으로 위와 같은 상황 발생시 snmpd가 비정상 작동하는 경우임 (웹페이지는 정상적으로 출력되니 mrtg 설정에는 문제가 없을 확률이 높음)

 

 

9. cfg 파일 실행 자동화

mrtg는 5분 이상의 간격으로 그래프를 다시 그려줌

이는 mrtg 설정상 최솟값이 5min 이기 때문이며, 그 이하의 수치로는 수정해도 적용되지 않음

그래서 필자는 cron 으로 5분에 1번씩 실행되도록 하였음

crontab -e

==============================================================

# MRTG Automation #

*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/999.888.777.666.mrtg.cfg

==============================================================

기입 후 저장

만약 다량의 cfg 파일을 실행시켜야하는 경우

cron_for_mrtg.sh 과 같은 파일을 생성하여

vim cron_for_mrtg.sh

==============================================================

# MRTG Automation #

env LANG=C /usr/bin/mrtg /etc/mrtg/999.888.777.666.mrtg.cfg

env LANG=C /usr/bin/mrtg /etc/mrtg/999.888.777.555.mrtg.cfg

env LANG=C /usr/bin/mrtg /etc/mrtg/999.888.777.444.mrtg.cfg

env LANG=C /usr/bin/mrtg /etc/mrtg/999.888.777.333.mrtg.cfg

env LANG=C /usr/bin/mrtg /etc/mrtg/999.888.777.222.mrtg.cfg

==============================================================

와 같이 입력 후 저장하여 해당 파일을 cron에 걸어줌

crontab -e

==============================================================

*/5 * * * * /bin/bash /etc/mrtg/cron_for_mrtg.sh

==============================================================

 

 

10. 최종 확인

클라이언트 서버에 iptraf를 설치하여 발생하는 실시간 트래픽과 mrtg 그래프상의 트래픽 또는 해당 웹페이지에 출력되어있는 수치를 비교하여 수치에 차이가 없이 정상적으로 작동하는지 확인

mrtg 가동 후 얼마 지나지 않은 경우에는 수치가 정확하지 않으므로 어느정도 그래프가 그려진 후에 확인해 볼 것을 권장 (30분 정도는 지나야하지 않나 싶습니다.)

 

 

11. MRTG에 대한 특징 추가 설명과 관련 알아두면 좋을 내용

 - MRTG는 그래프가 한 틱 그려지는 데에 최소 5분이나 걸리기 때문에 mrtg로는 미세한 트래픽 튐을 감지하지는 못합니다. 그래서 서버 상에서는 트래픽이 1G를 초과했다는 시스템로그가 여러차례 발생해도 mrtg 상에서는 700MB 수준의 꾸준한 트래픽이 발생하는 것으로 보일 수 있습니다. 또한 5분에 한 틱씩 그려서 사람 눈으로 확인할 수 있을 정도가 되기 위해서는 상당히 긴 시간을 기다린 후에 봐야한다는 단점이 있습니다.

 - 하지만 장점으로는 클라이언트 서버에 별도의 agent 프로그램을 실행시킬 필요가 없어 가볍고 서버에 무리가 가지 않으며 비교적 간단하다! 정도 있다고 보시면 되겠습니다. 유지보수가 상당히 편한 편입니다.

 > 저같은 경우 cfgmaker를 통해 일일히 모든 서버들을 만들어주지 않고 한번 생성된 cfg 파일을 복사하여 IP 및 기타 다른 설정값들만 변경해주는 형태로 mrtg 시스템을 관리하고 있습니다.

 > 또한 대량의 서버들에 대한 mrtg를 정상화하거나 신규 등록할 필요가 있어, 아예 shell script로 ip 입력만 하면 자동으로 cfg파일 생성 및 배치파일 cron_for_mrtg.sh에 해당 서버 cfg 파일 실행 자동화까지 진행되도록 스크립트 파일을 생성했습니다. 해당 관련 내용은 추후 이 블로그에 게시하도록 하겠습니다

 > 위에 알려드린 기본적인 cfgmaker를 사용시 공인트래픽 정도만 확인할 수 있어 아주 적은 정보만 확인 가능한데, 추후 올릴 게시글에서는 해당 서버의 부하(load) 수치나 httpd 세션, mysqld 세션, 사설네트워크 등에 대한 mrtg도 그리는 설정값을 올리도록 하겠습니다.

 

 

+ Recent posts