안녕하세요 유료솔루션을 구매해서 모니터링을 할 수 도 있고 훌륭한 Zabbix(https://www.zabbix.com/)를 무료로 설치해서 모니터링을 할 수 있습니다. 관제시스템을 구축해서 해당 관제시스템에서 모니터링을 수행할 수도 있는데 저같은 경우에는 RPC를 이용한 shell script를 호출하는 방식으로 직접 구현을 하여 사용합니다. 쉘 스크립트를 만들고 나서 별도의 서버에서 원격으로 쉘을 실행하거나 process, disk io, memory, network traffic, web/was server 등 모두 쉘스크립트로 모니터링 할 수 있습니다. 외부에서 호출을 하거나 자체 시스템에서 주기적으로 실행해주는 adapter 프로그램을 만들어서 구동하면 제일 중요한것이 안에서 직접 수행하는 쉘스크립트를 어떻게 만드느냐가 어려운것 같습니다. 제 기준에서는요... 그리하여 일부 간단한 쉘 스크립트를 공유하고자 합니다.
위 스크립트는 시스템내부 명령어로 프로세스를 체크한 후 정해진 에러레벨을 리턴하는 스크립트 입니다. 중요한것은 PNAME=$(ps -eo cmd |grep $1 | grep -v grep | grep -v "bin/sh") 이 부분이 제일 중요합니다. 전달받은 인자를 갖고 ps명령어로 해당 프로세스를 찾습니다. 해당 스크립트를 호출하는 프로그램에서 에러 레벨을 체크하고 이메일이나 문자로 전송을 해주게 됩니다. 다음으로는 web/was 서버 모니터링 입니다. 프로세스가 살아있다고 해서 정상적으로 구동되고 있다라고 판단하면 안됩니다.
STATUS= 프로세스만 체크하게되면 좀비프로세스인지 정작 web/was가 죽어있는지 체크하기가 어렵습니다. 직접 해당 서버 포트로 호출을 해보고 리턴되는 결과를 가지고 체크를 하여야만 보다 완벽한 모니터링이 되겠습니다. O&M같은 비싼 솔루션을 돈주가 사지 않아도 최소한 필요한 것은 이렇게 직접 모니터링 스크립트를 통해서 구현할 수 있습니다. 관심있으신 분들은 직접 만들어 보는것도 좋겠습니다. ETC 모니터링 Shell Script 1433 포트 체크 쉘 스크립트 linux모니터링 Shell Script 1433 포트 체크 쉘 스크립트 nagios 와 sms 모듈을 이용한 1433 (MSSQL) 포트 체크 후 다운시 sms 발송하는 스크립트 입니다. 별거 아니지만 살짝 응용한다면 그럭저럭 쓸만 하실듯 합니다. export
LANG=ko_KR.eucKR server[0]="192.168.1.2" for((i=0 ; i<${#server[*]} ; i++)) ; do
VALUE=`cat /root/SMS_CAREER/1433_PORT_CHECK/VALUE/${server[$i]}` if [ $VALUE != "TCP" ] ; then #!/bin/sh #MEMORY 사용율 MEMORY_TOTAL=`free | grep ^Mem | awk '{print $2}'` MEMORY_USED=`free | grep ^-/+ | awk '{print $3}'` MEMORY_PERCENT=$((100*MEMORY_USED/MEMORY_TOTAL)) #CPU 사용율 CPU_PERCENT=`top -b -n 1 | grep -i cpu\(s\)| awk -F, '{print $4}' | tr -d "%id," | awk '{print 100-$1}'` #DISK 사용율 DISK_TOTAL=`df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum; }'` DISK_USED=`df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum; }'` DISK_PERCENT=$((100*$DISK_USED/$DISK_TOTAL)) echo $MEMORY_PERCENT $CPU_PERCENT $DISK_PERCENT |