1. Home
  2. Docs
  3. 리눅스
  4. 리눅스 기타
  5. 리소스 텔레그램 모니터링

리소스 텔레그램 모니터링

이 방법은 리눅스 서버에서 CPU, 메모리 사용량을 지정 한도 초과시 텔레그램으로 알려주는 방법이다.

테스트 OS : Rocky8

1.파이썬 설치

dnf install python3 python3-pip -y
pip3 install psutil requests

2.모니터링 스크립트 작성

import psutil
import time
import requests

# 텔레그램 봇 정보
BOT_TOKEN = "YOUR_BOT_TOKEN"
CHAT_ID = "YOUR_CHAT_ID"

# 임계값 설정
CPU_THRESHOLD = 80  # CPU 사용률 임계값 (퍼센트)
MEMORY_THRESHOLD = 80  # 메모리 사용률 임계값 (퍼센트)
CHECK_INTERVAL = 10  # 자원 확인 주기 (초)

def send_telegram_message(message):
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    payload = {"chat_id": CHAT_ID, "text": message}
    try:
        requests.post(url, data=payload)
    except Exception as e:
        print(f"Error sending message: {e}")

def monitor_system():
    while True:
        cpu_usage = psutil.cpu_percent(interval=1)
        memory_usage = psutil.virtual_memory().percent

        if cpu_usage > CPU_THRESHOLD:
            send_telegram_message(f"⚠️ CPU 사용률 경고: {cpu_usage}%")

        if memory_usage > MEMORY_THRESHOLD:
            send_telegram_message(f"⚠️ 메모리 사용률 경고: {memory_usage}%")

        time.sleep(CHECK_INTERVAL)

if __name__ == "__main__":
    monitor_system()

3.스크립트 자동 실행 설정

vi /usr/local/bin/resource_monitor.py
chmod +x /usr/local/bin/resource_monitor.py
vi /etc/systemd/system/resource-monitor.service

[Unit]
Description=Resource Monitor with Telegram Alerts
After=network.target

[Service]
ExecStart=/usr/bin/python3 /usr/local/bin/resource_monitor.py
Restart=always

[Install]
WantedBy=multi-user.target

4. 서비스 실행

systemctl daemon-reload
systemctl enable --now resource-monitor

5. 스트레스 테스트

dnf install stress -y
stress --vm 1 --vm-bytes 0000M --timeout 60

How can we help?