==============================
리눅스 시스템의 안정적인 운영을 위해서는 시스템 상태를 모니터링하고, 필요한 경우 적시에 경고를 받을 수 있어야 합니다. 이를 위해 파이썬을 사용하여 리눅스 시스템의 모니터링과 경고 자동화를 구현할 수 있습니다. 이번 블로그 포스트에서는 파이썬을 사용한 주요 시스템 모니터링 기능과 경고 자동화에 대해 알아보겠습니다.
-
시스템 리소스 모니터링
리눅스 시스템의 가장 기본적인 모니터링은 CPU, 메모리, 디스크 사용량, 네트워크 트래픽 등의 시스템 리소스를 모니터링하는 것입니다. 파이썬에서는 psutil
라이브러리를 사용하여 시스템 리소스에 대한 정보를 수집할 수 있습니다. 다음은 psutil
을 사용하여 CPU 사용량을 모니터링하는 예제 코드입니다.
import psutil
cpu_percent = psutil.cpu_percent(interval=1)
print(f"CPU 사용량: {cpu_percent}%")
-
프로세스 모니터링
시스템의 모니터링은 단순히 리소스 사용량을 확인하는 것 이상으로, 실행 중인 프로세스에 대한 정보도 수집할 수 있어야 합니다. 파이썬의 psutil
라이브러리를 사용하여 실행 중인 프로세스의 목록과 상세 정보를 가져올 수 있습니다. 다음은 psutil
을 사용하여 실행 중인 프로세스를 모니터링하는 예제 코드입니다.
import psutil
for proc in psutil.process_iter():
print(f"프로세스 이름: {proc.name()}")
print(f"PID: {proc.pid}")
print(f"스타트 시간: {proc.create_time()}")
print(f"실행 상태: {proc.status()}")
print("===================")
-
경고 자동화
시스템의 모니터링만으로는 중요한 이벤트나 문제를 놓치기 쉽습니다. 따라서 모니터링 시스템에 경고 기능을 추가하여 특정 조건이 발생할 때 알림을 받을 수 있도록 해야 합니다. 파이썬에서는 이를 위해 smtplib
라이브러리를 사용하여 이메일 알림을 보낼 수 있습니다. 다음은 smtplib
를 사용하여 이메일 알림을 보내는 예제 코드입니다.
import smtplib
from email.message import EmailMessage
def send_email(subject, body):
email = EmailMessage()
email['Subject'] = subject
email['From'] = 'sender@example.com'
email['To'] = 'receiver@example.com'
email.set_content(body)
with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
smtp.starttls()
smtp.login('sender@example.com', 'password')
smtp.send_message(email)
print("이메일 알림이 전송되었습니다.")
# 예시: CPU 사용량이 90% 이상일 경우 경고 이메일을 보냄
cpu_percent = psutil.cpu_percent(interval=1)
if cpu_percent > 90:
send_email("경고: CPU 사용량이 높음", f"현재 CPU 사용량: {cpu_percent}%")
요약
파이썬을 사용하여 리눅스 시스템의 모니터링과 경고 자동화를 구현할 수 있습니다. psutil
라이브러리를 사용하여 시스템 리소스와 실행 중인 프로세스에 대한 정보를 수집하고, smtplib
라이브러리를 사용하여 경고 알림을 보낼 수 있습니다. 이를 통해 시스템의 안정성을 높이고 문제를 빠르게 대응할 수 있습니다.