본문으로 바로가기
반응형

1. 리소스 수집 스크립트를 통해 1분마다 아래의 리소스 수집파일 (data.txt) 이 갱신됨

 

 

 

2. 수집된 data.txt 파일을 이용하여 임계치 설정 스크립트 작성 (텔레그램 봇이용, python 3.6.8 진행)

#!/bin/python3

#모듈 설정

import telepot
import os
import socket
import string
import sys
import psutil
import time

# 토큰값 설정

token = '[토큰값 입력]'
mc = '[텔레그램 ID (숫자)입력]'
bot = telepot.Bot(token)

###################################################################
# data.txt 에서 첫번째 라인 가져오려고 readline 한번 더 호출
f=open('../data.txt')


#임계값 기준치 설정 (CPU 의 경우 loadaverage 값으로 설정)

lines=f.readline()
HOST=lines.split(',')[0]
MEM=float(lines.split(',')[1].split(' ')[1].replace("(","").replace("%)",""))
DSK=int(lines.split(',')[2].split(' ')[1].replace("(","").replace("%)",""))
CPU=float(lines.split(',')[3].rstrip('\n'))


if( MEM > 70 ):
bot.sendMessage(mc, "IP : "+ HOST +"\n"+" ⚠ Memory 사용량이 기준치를 초과하였습니다.\n"+"기준치 : 70% , 현재 :"+str(MEM)+" %")

if( DSK > 70 ):
bot.sendMessage(mc, "IP : "+ HOST +"\n"+" ⚠ Disk 사용량이 기준치를 초과하였습니다.\n" + "기준치 : 70% , 현재 : " + str(DSK) + " %")

if( CPU > 1 ):
bot.sendMessage(mc, "IP : "+ HOST +"\n"+" ⚠ CPU 로드가 기준치를 초과하였습니다.\n" + "기준치 : 1 , 현재 : " + str(CPU) + " %")

###################################################################

# data.txt 에서 두번째 라인 가져오려고 readline 한번 더 호출

lines=f.readline()
HOST=lines.split(',')[0]
MEM=float(lines.split(',')[1].split(' ')[1].replace("(","").replace("%)",""))
DSK=int(lines.split(',')[2].split(' ')[1].replace("(","").replace("%)",""))
CPU=float(lines.split(',')[3].rstrip('\n'))


if( MEM > 70 ):
bot.sendMessage(mc,"IP : "+ HOST+"\n"+" ⚠ Memory 사용량이 기준치를 초과하였습니다.\n"+"기준치 : 70% , 현재 :"+str(MEM)+" %")

if( DSK > 70 ):
bot.sendMessage(mc,"IP : "+ HOST+"\n"+" ⚠ Disk 사용량이 기준치를 초과하였습니다.\n" + "기준치 : 70% , 현재 : " + str(DSK) + " %")

if( CPU > 1 ):
bot.sendMessage(mc,"IP : "+ HOST+"\n"+" ⚠ CPU 로드가 기준치를 초과하였습니다.\n" + "기준치 : 1 , 현재 : " + str(CPU) + " %")

 

 

2. 텔레그램의 알림봇에서 /start 실행

 

 

 

3. 알람 확인

 


 

#!/bin/python3

#모듈 설정
import telepot
import os
import socket
import string
import sys
import psutil
import time

# 토큰값 설정
token = '[토큰값 입력]'
mc = '[텔레그램 ID (숫자)입력]'
bot = telepot.Bot(token)

#임계값 기준치 설정
Cpu_limit = 1
Mem_limit = 70
Disk_limit = 70
###################################################################
f=open('../data.txt')

# data.txt 에서 첫번째 라인 가져오려고 readline 한번 더 호출
lines=f.readline()
HOST=lines.split(',')[0]
MEM=float(lines.split(',')[1].split(' ')[1].replace("(","").replace("%)",""))
DSK=int(lines.split(',')[2].split(' ')[1].replace("(","").replace("%)",""))
CPU=float(lines.split(',')[3].rstrip('\n'))

if( MEM > 70 ):
bot.sendMessage(mc, "IP : "+ HOST +"\n"+" ⚠ Memory 사용량이 기준치를 초과하였습니다.\n"+"기준치 : 70% , 현재 :"+str(MEM)+" %")
if( DSK > 70 ):
bot.sendMessage(mc, "IP : "+ HOST +"\n"+" ⚠ Disk 사용량이 기준치를 초과하였습니다.\n" + "기준치 : 70% , 현재 : " + str(DSK) + " %")
if( CPU > 1 ):
bot.sendMessage(mc, "IP : "+ HOST +"\n"+" ⚠ CPU 로드가 기준치를 초과하였습니다.\n" + "기준치 : 1 , 현재 : " + str(CPU) + " %")

###################################################################
# data.txt 에서 두번째 라인 가져오려고 readline 한번 더 호출
lines=f.readline()
HOST=lines.split(',')[0]
MEM=float(lines.split(',')[1].split(' ')[1].replace("(","").replace("%)",""))
DSK=int(lines.split(',')[2].split(' ')[1].replace("(","").replace("%)",""))
CPU=float(lines.split(',')[3].rstrip('\n'))

if( MEM > 70 ):
bot.sendMessage(mc,"IP : "+ HOST+"\n"+" ⚠ Memory 사용량이 기준치를 초과하였습니다.\n"+"기준치 : 70% , 현재 :"+str(MEM)+" %")
if( DSK > 70 ):
bot.sendMessage(mc,"IP : "+ HOST+"\n"+" ⚠ Disk 사용량이 기준치를 초과하였습니다.\n" + "기준치 : 70% , 현재 : " + str(DSK) + " %")
if( CPU > 1 ):
bot.sendMessage(mc,"IP : "+ HOST+"\n"+" ⚠ CPU 로드가 기준치를 초과하였습니다.\n" + "기준치 : 1 , 현재 : " + str(CPU) + " %")

 

반응형