-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsysmon_alarm_cron.py
More file actions
106 lines (91 loc) · 2.46 KB
/
sysmon_alarm_cron.py
File metadata and controls
106 lines (91 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import telegram, os, socket, string, sys, psutil
"""
임계치 설정
"""
cpuLimit = 20
memLimit = 90
loadAverage = 3.0
swapUsage = 10
root_disk = 90
home_disk = 90
#==============================================================================
serverName = 'TEST'
title = '[' + serverName + ' 서버]\n'
msg = title
#Telegram bot 설정
sigong_token = 'YOUR_TOKEN'
sigong = 'Chat_ID'
bot = telegram.Bot(token = sigong_token)
"""
텔레그램 메세지 전송
"""
def send(chat):
bot.sendMessage(sigong, chat, parse_mode='HTML')
"""
LoadAverage
"""
def getLoadAverage():
return psutil.getloadavg()[0]
"""
cpu 사용률
"""
def getCpuUsage():
cpu = 0
for x in range(2):
cpu += psutil.cpu_percent(interval=1)
return round(float(cpu)/3,2)
"""
swap 메모리 사용량
"""
def getSwapUsage():
return round(psutil.swap_memory()[3])
"""
Memory 사용량
"""
def getMemUsage():
return round(psutil.virtual_memory()[2])
"""
루트 디스크(/) 사용량
"""
def getRootdisk():
return psutil.disk_usage('/')[3]
"""
/home 디스크 사용량
"""
def getHomedisk():
return round(psutil.disk_usage('/home')[3])
"""
현재 사용량
"""
loadAvr = getLoadAverage()
avgCpu = getCpuUsage()
memUsage = getMemUsage()
swap = getSwapUsage()
root_Disk = getRootdisk()
home_Disk = getHomedisk()
if loadAvr > loadAverage:
msg += 'LoadAverage 임계치(' + str(loadAverage) + ') 초과\n'
msg += '현재 LoadAverage : ' + str(loadAvr) + '\n'
send(msg)
if avgCpu > cpuLimit:
msg += 'cpu 사용량 임계치(' + str(cpuLimit) + '%) 초과\n'
msg += 'cpu usage : ' + str(avgCpu) + '%\n'
send(msg)
if memUsage > memLimit:
msg += 'memory 사용량 임계치(' + str(memLimit) + '%) 초과\n'
msg += 'memory usage : ' + str(memUsage) + '%\n'
send(msg)
if swap > swapUsage:
msg += 'swap 메모리 사용량 임계치(' + str(swapUsage) + '%) 초과\n'
msg += 'swap 메모리 사용량 : ' + str(swap) + '%\n'
send(msg)
if root_Disk > root_disk:
msg += '디스크(/) 사용량 임계치(' + str(root_disk) + '%) 초과\n'
msg += '현재 루트 디스크 사용량 : ' + str(root_Disk) + '%\n'
send(msg)
if home_Disk > home_disk:
msg += '디스크(/home) 사용량 임계치(' + str(home_disk) + '%) 초과\n'
msg += '현재 (/home) 디스크 사용량 : ' + str(home_Disk) + '%\n'
send(msg)