[python] Fabric으로 서버 모니터링 설정하기

서버의 모니터링은 운영 중인 시스템의 상태를 지속적으로 확인하고, 장애 발생 시 빠르게 대응할 수 있도록 도와줍니다. 이번 포스트에서는 Python의 Fabric 라이브러리를 사용하여 서버 모니터링을 설정하는 방법에 대해 알아보겠습니다.

1. Fabric 소개

Fabric은 파이썬 기반의 배포 자동화 툴로, SSH를 통해 원격 서버에 명령을 전송하고 결과를 받아올 수 있습니다. Fabric을 사용하면 서버 설정, 배포, 백업 등 다양한 작업을 자동화할 수 있습니다.

2. Fabric 설치

Fabric을 설치하기 위해 아래의 명령어를 사용합니다.

pip install fabric

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

Fabric을 사용하여 서버 모니터링을 설정하려면 모니터링 스크립트를 작성해야 합니다. 아래는 간단한 CPU 사용량을 모니터링하는 스크립트의 예시입니다.

from fabric import Connection

def monitor_cpu(server_ip):
    with Connection(server_ip) as conn:
        result = conn.run("top -b -n1 | grep 'Cpu' | awk '{print $2}'")
        cpu_usage = result.stdout.strip()
        
        if float(cpu_usage) > 80:
            # CPU 사용량이 80%를 초과할 경우 알림을 보냅니다.
            send_alert()

위 스크립트는 원하는 서버의 IP 주소를 파라미터로 받아 해당 서버의 CPU 사용량을 모니터링합니다. CPU 사용량이 80%를 초과하면 send_alert() 함수를 호출하여 알림을 보내는 예시입니다.

4. 모니터링 스크립트 실행

작성한 모니터링 스크립트는 Fabric을 사용하여 실행할 수 있습니다. 다음 명령어를 사용하여 스크립트를 실행합니다.

fab monitor_cpu:<server_ip>

위 명령어에서 <server_ip>는 모니터링 대상 서버의 IP 주소로 대체되어야 합니다. CPU 사용량이 80%를 초과하면 알림이 보내집니다.

5. 추가 설정

모니터링 스크립트를 실행하는데 필요한 서버 정보는 보안상의 이유로 코드에 직접 하드코딩하는 것은 권장되지 않습니다. 대신 환경 변수 또는 외부 설정 파일을 사용하여 정보를 관리하는 것이 좋습니다.

결론

Fabric을 사용하여 서버 모니터링을 설정하는 방법에 대해 알아보았습니다. Fabric은 간편한 사용법과 강력한 기능으로 서버 자동화 작업을 효과적으로 처리할 수 있습니다. 모니터링 설정을 통해 시스템의 상태를 실시간으로 모니터링하고, 이를 통해 서비스의 안정성과 성능을 높일 수 있습니다.

참고 자료