Nginx 서버 환경 구축 MRTG (With Centos)

1.1 snmpd 설치
   
   
   
   
  1. yum install net-snmpd 

1.2 snmpd. conf 설정 
   
   
   
   
  1. vi /etc/snmpd/snmpd.conf    
  2. #           sec.name     source          community    
  3. com2sec localMonitor  localhost       thomas     
  4. #       groupName      securityModel securityName    
  5. group   notConfigGroup v1           localMonitor    
  6. group   notConfigGroup v2c          localMonitor     
  7. #     name   incl/excl     subtree                               mask(optional)    
  8. view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc     
  9. #          group          context sec.model sec.level prefix read   write  notif    
  10. access  notConfigGroup ""      any       noauth    exact  mib2 none none  

간단하게 설명 하 자 면, 우선 com2sec 를 통 해 공공 사용자 thomas 를 local Monitor 라 는 안전 한 사용자 에 게 비 추고, 사용자 의 접근 은 이 컴퓨터 에 제 한 됩 니 다. 이 두 사용자 이름 은 모두 자신 이 정의 한 것 입 니 다. 시스템 의 기본 사용자 이름 은 Public 입 니 다.다음은 local Monitor 를 notConfigGroup 그룹 에 추가 하 는 것 입 니 다. 하나의 com2sec 명령 은 보통 두 개의 group 명령 에 대응 합 니까?(Note that groups must be set up for the two community - based models separately - a single com2sec (or equivalent) directive will typically be accopanied by two group directives) 다음 보 기 를 정의 한 다음 access 를 통 해 notConfigGroup 에 이 보기 에 대한 읽 기 전용 접근 권한 을 부여 합 니 다.
1.3 snmpd 시작 
   
   
   
   
  1. service snmpd start  

MRTG 설정
mrtg 의 작업 원 리 는 쉽게 말 하면 snmp 프로 토 콜 과 다른 프로그램 을 통 해 정 보 를 수집 한 다음 에 로 컬 파일 데이터 베이스 에 저장 한 다음 에 시각 화 된 도표 와 페이지 를 생 성 하 는 것 이다.보다 유연 한 분석 이 필요 하 다 면 RRdtool 도 구 를 결합 해 데이터 저장 의 운반 체 로 활용 할 수 있 으 며, MRTG - 3 는 RRdtool 을 전면 적용 한다.일반적으로 모니터링 페이지 는 웹 방식 으로 방문 하기 때문에 먼저 웹 서버 를 구축 해 야 한다. 이것 은 더 말 할 필요 가 없다. 필요 한 것 은 정적 페이지 의 서버 이기 때문에 가장 간단 한 것 은 생산 환경 에서 모니터 는 단독 기계 이 고 정기 적 으로 온라인 서버 의 상태 정 보 를 수집 하 는 것 을 책임 지 는 경우 가 많다.현재 이 기 계 는 nginx 를 사용 하여 WEB 서비스 로 mrtg 분석 결 과 를 / var / www / mrtg 디 렉 터 리 에 저장 합 니 다.다음은 MRTG 를 설정 하여 우리 가 필요 로 하 는 모니터링 정 보 를 생 성 하 는 것 입 니 다.
2.1 MRTG 설치
2.1.1 yum 방식
   
   
   
   
  1. yum -y install mrtg* 

  2.1.2 소스 코드 컴 파일 설치 방식
mrtg 다운로드, 현재 최신 버 전 mrtg - 2.17.4
# wget http://oss.oetiker.ch/mrtg/pub/mrtg-2.17.4.tar.gz
2.1.3 mrtg - 2.17.4 설치
 
   
   
   
   
  1. # tar zxvf mrtg-2.17.4.tar.gz    
  2. # cd mrtg-2.17.4   # ./configure --prefix=/usr/local/mrtg --sysconfdir=/etc/mrtg --with-gd=/usr/local/gd2/include --with-gd-lib=/usr/local/gd2/lib --with-gd-inc=/usr/local/gd2/include --with-png=/usr/local/include --with-png-lib=/usr/local/lib --with-png-inc=/usr/local/include --with-zlib=/usr/local/zlib/include --with-zlib-lib=/usr/local/zlib/include --with-zlib-inc=/usr/local/zlib/include    
  3. # make    
  4. # make install 

2.2 MRTG 의 cfgmarker 를 사용 하여 프로필 생 성 (yum 설치 방식 의 경우)
예 를 들 어 다 중 장치 모니터링
   
   
   
   
  1. cfgmaker public@localhost > /etc/mrtg/mrtg.cfg   
  2. cfgmaker public@192.168.1.10 > /etc/mrtg/192.168.1.10.cfg  
  3. cfgmaker public@192.168.1.11 > /etc/mrtg/192.168.1.11.cfg 

이렇게 생 성 된 프로필 은 snmpd 서 비 스 를 통 해 이 컴퓨터 의 네트워크 인터페이스 통 계 를 MRTG 프로필 에 자동 으로 가 져 옵 니 다. 일반적으로 몇 개의 네트워크 포트 가 작업 을 하면 몇 개의 통계 항목 이 있 습 니 다.우선 전역 설정 정 보 를 수정 해 야 합 니 다.
 
   
   
   
   
  1. vi /etc/mrtg/mrtg.cfg  
  2. WorkDir: /var/www/mrtg    
  3. Options[_]: growright, bits  
  4. Language:utf8   
  5.  
  6. vi /etc/mrtg/192.168.1.10.cfg  
  7. WorkDir: /var/www/mrtg  
  8. Options[_]: growright, bits  
  9. Language:utf8   
  10.  
  11. vi /etc/mrtg/192.168.1.11.cfg  
  12. WorkDir: /var/www/mrtg  
  13. Options[_]: growright, bits  
  14. Language:utf8  

두 번 째 줄 은 MRTG 의 출력 디 렉 터 리 를 수 동 으로 지정 하고, 세 번 째 줄 은 주석 을 취소 하면 되 며, 네 번 째 줄 은 추 가 됩 니 다.
2.3. MRTG 실행
 
 
   
   
   
   
  1. env LANG=C /usr/bin/mrtg /etc/mrtg/*.cfg   

세 번 실행 하면 두 번 째 는 일반적으로 경고 가 있 습 니 다. 괜 찮 습 니 다. 세 번 째 보고 가 잘못 되면 설정 오류 가 발생 할 수 있 습 니 다. 실행 이 끝 난 후에 WorkDir 가 지정 한 디 렉 터 리 에서 각 설정 항목 의 모니터링 정보 그림 과 페이지 를 생 성 합 니 다.
2.4 index. html 생 성
 
   
   
   
   
  1. #indexmaker --output=/var/www/mrtg/index.html --title="test MRTG on linux" /etc/mrtg/*.cfg 

2.5 계획 작업 편집 crontab
crotabl - e 후 다음 내용 입력
   
   
   
   
  1. */5 * * * env LANG=C /srv/mrtg/bin/mrtg /srv/mrtg/*.cfg > /dev/null &  

5 분 에 한 번 정 보 를 수집 합 니 다.
 
다음은 원 하 는 상태 정 보 를 스 크 립 트 프로그램 을 통 해 출력 할 수 있 습 니 다. MRTG 역시 이 정 보 를 기록 분석 할 수 있 습 니 다. 예 를 들 어 mrtg. cfg 말미 에 추가 할 수 있 습 니 다.
   
   
   
   
  1. Target[cpu]: `/srv/mrtg/mybin/cpu.sh`    
  2. MaxBytes[cpu]: 100   
  3. Options[cpu]: gauge, nopercent, growright    
  4. YLegend[cpu]: CPU loading (%)    
  5. ShortLegend[cpu]: %    
  6. LegendO[cpu]:   CPU usr;    
  7. LegendI[cpu]:   CPU sys;    
  8. Title[cpu]: CPU Load    
  9. PageTop [cpu]:

    CPU Load

       

이 설정 은 / etc / mrtg / mybin / cpu. sh 프로그램의 전송 을 통 해 정 보 를 얻 을 수 있 으 며, 괄호 안에 있 는 표지 (cpu) 도 MRTG 가 생 성 할 파일 이름 의 접두사 입 니 다. / etc / mrtg / mybin / cpu. sh 의 내용 입 니 다.
 
   
   
   
   
  1. #!/bin/bash    
  2. function echo_cpu {            
  3.      echo $1           
  4.      echo $2 }    
  5. cpuinfo=` sar -u 1 3|grep Average|awk '{print $3, $5}'`    
  6. uptime=` uptime|cut -d , -f 1,2`    
  7. echo_cpu $cpuinfo    
  8. echo $uptime    
  9. hostname  

이 프로그램의 출력 결과:
 
   
   
   
   
  1. 0.06 
  2. 0.04   
  3. 10:53:15 up 43 days, 17:38   
  4. my-ip.hosting8.info  

첫 번 째 행위 CPU usr, 두 번 째 행위 CPU sys, 세 번 째 행위 시스템 실행 시간, 네 번 째 행위 호스트 이름, 세 번 째 네 번 째 줄 은 기본적으로 MRTG 결과 페이지 에 나타 날 것 이 므 로 정의 할 필요 가 없고 두 줄 의 의 미 를 정의 하면 됩 니 다.다른 호스트 를 감시 하려 면 감 시 된 기계 에 응답 조회 프로그램 을 배치 해 야 하 며, 일 부 는 이미 만들어 진 것 이다.예 를 들 어 대상 호스트 에 nginx 의 status 페이지 를 설정 한 다음 에 모니터 를 통 해 잡 아서 분석 하면 됩 니 다.
 
4. 위의 모니터링 항목 을 모 아 만 든 간단 한 페이지 를 작성 합 니 다. 예 를 들 어 오늘 의 모든 그림 은 각자 의 상세 한 html 파일 에 연결 하면 됩 니 다.
5. nginx 에 접근 제어 설정
 
location /var/www/mrtg    auth_basic "Restricted";      auth_basic_user_file /etc/nginx/htpasswd;  } 암호 파일 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
 
# this be passwords  this betheusername: this beencryptedpass: yercomment 는 아파 치 htpasswd 프로그램 을 통 해 만 들 수 있 습 니 다.
 
htpasswd - b htpasswd NewUser NewPassword htpasswd 프로그램 이 없 으 면 괜 찮 습 니 다. 비밀문 은 실제 암호 문자열 이 56 비트 DES 암호 화 를 통 해 만들어 진 것 이기 때문에 perl 이나 ruby 를 통 해 비밀문 서 를 만 들 고 암호 파일 에 복사 할 수 있 습 니 다.
Perl
perl -le 'print crypt("password", "salt")'
Ruby (run in irb)
"password".crypt("salt")

좋은 웹페이지 즐겨찾기