728x90
서버 관리 시 중요한 지표 중 하나가 디스크 사용량입니다. 이번 글에서는 간단한 Bash 스크립트를 이용해 디스크 사용량을 체크하고, Slack을 통해 실시간으로 알림을 받는 방법을 소개합니다.
1. Slack에서 Incoming Webhook 설정
- Slack 워크스페이스에서 Slack API에 접속해 새로운 앱을 생성하거나 기존 앱을 선택합니다.
- 'Incoming Webhooks' 기능을 활성화하고 새로운 Webhook URL을 생성합니다.
생성된 Webhook URL은 다음과 같은 형태입니다.
https://hooks.slack.com/services/TXXXXX/BXXXXX/XXXXXXXX
이 URL은 추후 스크립트 작성 시 사용할 예정입니다.
2. 디스크 사용량 체크 스크립트 작성
스크립트를 /usr/local/bin/check_disk.sh 경로에 아래와 같이 작성합니다.
#!/usr/bin/env bash
# Slack Incoming Webhook URL
WEBHOOK_URL="<위에서 생성한 Webhook URL>"
# Slack 알림 채널
CHANNEL="#서버-알림"
# 메시지에 표시할 사용자명
USERNAME="서버 모니터링 봇"
# 디스크 사용률 임계치 설정 (예: 80%)
THRESHOLD=80
# 체크할 파티션 또는 마운트 포인트
CHECK_PARTITION="/dev/sda1"
# 디스크 사용률 확인
usage=$(df -h | grep "$CHECK_PARTITION" | awk '{print $5}' | sed 's/%//')
if [ -n "$usage" ] && [ "$usage" -ge "$THRESHOLD" ]; then
message="⚠️ 경고: 파티션 $CHECK_PARTITION의 사용량이 ${usage}%입니다. 디스크를 확인해주세요."
payload=$(cat <<EOF
{
"channel": "$CHANNEL",
"username": "$USERNAME",
"text": "$message"
}
EOF
)
curl -X POST -H 'Content-type: application/json' --data "$payload" "$WEBHOOK_URL"
fi
- CHECK_PARTITION 값은 자신의 서버 환경에 맞게 설정하세요.
- THRESHOLD는 원하는 알림 임계치로 조정 가능합니다.
스크립트 작성 후 실행 권한을 부여합니다.
chmod +x /usr/local/bin/check_disk.sh
3. cron을 이용한 정기적 실행
스크립트가 주기적으로 실행되도록 크론탭에 등록합니다.
crontab -e
다음 내용을 추가하면 매 10분마다 스크립트가 실행됩니다.
*/10 * * * * /usr/local/bin/check_disk.sh
4. 테스트 및 확인
정상 동작을 확인하려면, THRESHOLD 값을 낮게 설정(예: 1%)한 후 수동으로 스크립트를 실행해 Slack 알림을 받는지 확인합니다.
/usr/local/bin/check_disk.sh
Slack 채널에 알림 메시지가 잘 전송되는지 확인합니다.
5. 추가적인 모니터링 방법
이보다 발전된 방식으로는 Prometheus, Alertmanager, Zabbix, Nagios 등 전문 모니터링 도구를 이용하여 Slack과 연동할 수도 있습니다.
이렇게 간단한 설정으로 중요한 서버 관리 작업 중 하나인 디스크 사용량 모니터링을 효율적으로 수행할 수 있습니다.
728x90
'DevOps' 카테고리의 다른 글
로그 로테이트(Logrotate) (0) | 2024.11.12 |
---|---|
[MW] Flyway (0) | 2024.08.31 |
[Git] Merge 전략 (0) | 2024.08.25 |
[Git] Git 워크플로우 비교: GitHub Flow, Gitflow, GitLab Flow (0) | 2024.07.30 |
RabbitMQ, Apache Kafka, AWS SQS 비교 (0) | 2024.01.13 |