[파이썬] 시스템 모니터링 자동화

System monitoring plays a crucial role in maintaining the health and performance of our applications and infrastructure. Automating this process can save time, increase efficiency, and prevent potential issues before they become critical.

In this blog post, I will introduce how to automate system monitoring using Python. We will cover monitoring various system metrics such as CPU usage, memory usage, disk space, and network traffic.

Prerequisites

Before we begin, make sure you have the following:

Dependencies

We will be using the following Python packages for system monitoring:

You can install these packages using pip:

pip install psutil matplotlib

Monitoring CPU Usage

First, let’s start by monitoring CPU usage. The psutil library provides a simple way to retrieve CPU usage information. Here’s an example code snippet:

import psutil

cpu_percent = psutil.cpu_percent(interval=1, percpu=True)

for i, percent in enumerate(cpu_percent):
    print(f"CPU {i+1}: {percent}%")

This code will print the CPU usage percentage for each core of the system.

Monitoring Memory Usage

Next, let’s monitor memory usage. The psutil library also provides functions to retrieve memory information. Here’s an example code snippet:

import psutil

memory = psutil.virtual_memory()

total_memory = memory.total
available_memory = memory.available
used_memory = memory.used

print(f"Total Memory: {total_memory} bytes")
print(f"Available Memory: {available_memory} bytes")
print(f"Used Memory: {used_memory} bytes")

This code will print the total memory, available memory, and used memory in bytes.

Monitoring Disk Space

Monitoring disk space is essential to prevent storage issues. The psutil library provides functions to retrieve disk information. Here’s an example code snippet:

import psutil

disk = psutil.disk_usage('/')

total_space = disk.total
used_space = disk.used
free_space = disk.free

print(f"Total Space: {total_space} bytes")
print(f"Used Space: {used_space} bytes")
print(f"Free Space: {free_space} bytes")

This code will print the total disk space, used space, and free space in bytes for the root directory.

Monitoring Network Traffic

Lastly, let’s monitor network traffic. The psutil library can also be used to retrieve network information. Here’s an example code snippet:

import psutil

network = psutil.net_io_counters()

bytes_sent = network.bytes_sent
bytes_received = network.bytes_recv

print(f"Bytes Sent: {bytes_sent} bytes")
print(f"Bytes Received: {bytes_received} bytes")

This code will print the total number of bytes sent and received by the system.

Conclusion

Automating system monitoring using Python can greatly simplify the process of keeping track of important metrics. With the help of the psutil library, we can easily retrieve CPU usage, memory usage, disk space, and network traffic information.

Remember to schedule these monitoring scripts to run at regular intervals or integrate them with alerting systems for real-time notifications. Happy monitoring!