WEB WAS DB 구조에서 구간별 간단 모니터링

SYSTEM/TECH / /
반응형

WEB <-> WAS <-> DB  구조 에서 이슈(장애) 발생시 단순하게 구간별 모니터링 하기 간단한 TIP


Point : 단순 하게 application (apache,tomcat,mysql) 등이 사용하는

         port 의 ESTABLISHED 카운트 

         cpu, memory 사용량 체크

         process 갯수 카운트


참고 : saltstack 으로 서비스별 role을 구분하여 관리중이다.



1. WEB 구간 체크  (WEB 서버 xx대에 대해서 WAS 연결수 카운트)


salt -G roles:web cmd.run 'check'   








/usr/bin/check (script)



2. WAS 구간 체크  (WAS 서버 xx대에 대해서 WAS 연결수 카운트)


salt -G roles:was cmd.run 'check'    




/usr/bin/check (script)





DB 커넥션 구간도 동일 (서비스 별로 수정해서 쓰면됨)


script 를 cron 에 걸어서 [예를들어 WAS 커넥션이 2000개 이상] 이면 알람이 오게 단순하게 스크립트로 모니터링 해도 됨.


Jennifer, scouter 등 좋은 솔루션도 있지만 , 경험상 간단하게 위와 같은 방식으로 모니터링해도(응용 필요) 충분히 이슈 발생에 대한 사전 인지 가능


다만 detail 한 트러블 슈팅은 APM 등을 활용하던가, application 로그등도 자세하게 살펴 봐야겟죠.....



참고 : 


WEB http 80 port 체크 스크립트 (5초단위 체크) 

(장애발생시나 웹 서버 트러블 슈팅시 유용하게 가끔 씀)


nohup script.sh &  <- 백그라운드로 실행




#!/bin/bash


while [ 0 ]

do


   D=`date +%m%d%Y-%T`

   D1=`date +%m%d%Y`

  

   SV_LIST=`/bin/cat /root/.../server.list`

   MAIL_LIST=`/bin/cat /root/.../mail.list`


for i in ${SV_LIST}

do


   SERVER=`echo $i | awk -F "," '{print $1}'`

   IP=`echo $i | awk -F "," '{print $2}'`


   curl -o /dev/null -s -w "$D: $SERVER $IP: Connect: %{time_connect} TTFB: %{time_starttransfer} Total_time: %{time_total} \n" "http://"$IP >> /root/.../DATA/$D1.time.dat


   PING=`/usr/bin/fping $IP | awk -F " " '{print $3}'`


   echo $D $SERVER $IP : "PING-> $PING" >> /root/.../DATA/$D1.ping.dat


   nc -zv -w 2 $IP 80 > /dev/null 2>&1


if [ "$?" = "0" ]

  then


      echo $D $SERVER $IP : "PORT succeeded"  >> /root/.../DATA/$D1.port.dat


  else


      echo $D $SERVER $IP : "PORT fail"  >> /root/.../DATA/$D1.port.dat

      echo $D $SERVER $IP : "80 PORT fail" | mail -s "$SERVER $IP PORT Down..." $MAIL_LIST


fi


done


 sleep 5


done 










반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기