현재 Scouter 로 서버 모니터링 중인데..
하필.. 쉬느날 마다.. ??? 가끔.. 서버 장애바 발생...
주 원인은 과도한 로그로 인한 디스크 용량 부족...
해외 고객에 서비스를 하다보니.. 휴일에도 사용량 모니터링을 할 필요가 생겼음...
scouter에 연결을 할까.. 하다가 보니.. 생각보다 방법이 맘에 안들었음.. (주관적인.. ^^;;)
그래서 python을 이용하여 모니터링을 하고.. 사용량이 일정량 이상이면 텔레그램 메신저로 내용을 전송 하기로 함..
왜냐?? 이미 텔레그램으로 다른 알림을 받고 있었기 때문에.. 이게.. 제일 편리했음.. ^^;;
참고로 리눅스 서버 CentOS 7 버전기준임... 우분투는 설치하면 python3가 이미 설치가 되어 있다고 함...
1. python3 설치를 해 봅시다..
먼저 현재 설치된 모든 패키지를 업데이트..
sudo yum update
2. python3 설치
yum install python3
3. 설치 확인
ls -l /bin/python*
python3 -V
설치전에 ls -l /bin/python* 해 보면.. 기본 설치된 2.7 버전이 보일 것이고... 설치가 완료되고 나면.. 3.6도 같이 보인다..
이어서.. 텔레그램을 사용하려면 텔레그램 봇을 설치 해야 하는데.. 이때 pip 라는 프로그램이 필요하다.
그런데... 위에서 python3을 설치하는 과정에서.. 이미 설치가 되는듯
혹시.. 설치가 안됐다면.. 설치 ㄱㄱ.... (이정도 설치는 약과지.. )
우선 pip를 설치 하려면 epel 저장소를 활성화 시켜야 한다고...
yum install epel-release
설치 했거나.. 이미 되어 있으면.. pip3 설치.. ( CentOS 7에서 pip는 버전 업데이트가 안되는듯.. .)
yum install python3-pip
이제.. python-tlegram-bot 을 설치하자..
pip install python -telegram-bot --upgrade
인제.. 설치는 끝...
텔레그램 봇 만드는건 이미 해 놔서.. 음.. 다음에 따로 블로그를 써야겠군... (지금은 이미 있으니.. 패스.. -0-;;)
DISK 용량 확인
import shutil
path="/wwwhome/batch/log" // 디스크 사용량을 확인할 경로
disk_stat = shutil.disk_usage(path)
print(str(round(round(disk_stat.free / disk_stat.total * 100, 2)))) // 사용량 %로 찍음..
CPU사용량 확인
import subprocess
cmd = "mpstat 1 2 | grep Average | awk '{print $NF}'"
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
out, err = p.communicate()
idle = float(out.strip())
print(round(100-idle,2)/2) // 여기서 2로 나누는 이유는 서버 코어가 2개이기 때문...
음.. 너무 간단한가???
Bot으로 메세지 보내기
import telegram
token = '5080000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' // 봇 토큰
id = '5080000000' // 봇 아이디
bot = telegram.Bot(token=token)
def telegrammsg(msg):
bot.sendMessage(chat_id=id, text=msg)
telegrammsg("보낼 메세지.... ");
후후.. 대략 이렇게.. 구현을 해 놓음...
기록을 해 놔야 안까먹지.. ㅠㅠ
댓글