티스토리 뷰
안녕하세요! 오늘은 인프라 파트 중 모니터링에 관련된 얘기를 해볼까 합니다.
서버를 운영하다보면 여러 장애가 발생하곤 합니다. 물론 모든 장애를 모니터링 할 수는 쉽지 않겠지만, 이번에는 가장 기본적인 서버가 죽었을 때 스크립트 작성을 통해 Slack으로 알림을 받고자 합니다
자, 이제 시작해봅시다!
목차는 다음과 같습니다.
1. Slack에 알림을 보낼 수 있는 incoming webhook(수신 웹후크) 설정 하기
2. 쉘 스크립트 작성을 통해 EC2 인스턴스 내에서 서버 모니터링 하기
간단하죠? 하나씩 해보겠습니다.

먼저 Slack 왼쪽 하단에 앱 > 앱 추가를 클릭하자!

이어서 검색창에 incoming webhooks 를 입력하고, 추가 버튼을 눌러줍니다!

Slack에 추가 클릭~~~

다음은 어떤 채널에 알림을 전송할지 정하는 화면인데요!
기존에 보내고 싶은 채널이 있다면 선택을 해주시면 되고, 새로 생성을 원하신다면 새 채널 생성을 클릭 합니다!
그 다음 수신 웹후크 통합 앱 추가 클릭!

이제 중요해요! 여기까지 오셨다면 노란색 줄 쳐진 부분에 url이 나올건데요! 이를 복사해서 기억하고 있어야 합니다~! 이를 활용해서 알림을 보낼거니까요~!
자, 여기까지 무사히 오셨다면
이제 본격적으로 EC2 내부에서 스크립트를 짜보겠습니다!
저는 JAR 프로세스 실행 하나, 그리고 NPM 서버 하나를 모니터링 하고 싶은데요. 스크립트는 아래와 같습니다!
#!/bin/bash
# Slack Webhook URL
WEBHOOK_URL="복사한 URL 입력"
# EC2 인스턴스의 프라이빗 IP 주소 가져오기 --> 이쪽 코느는 구글링해서 찾아보세요~~
TOKEN=$()
PRIVATE_IP=$()
# 현재 시간 가져오기
current_time() {
date "+%Y-%m-%d %H:%M:%S"
}
# 알림을 보낼 함수
send_slack_notification() {
local message=$1
local time=$(current_time)
curl -X POST -H 'Content-type: application/json' --data "{\"text\":\"${message} (IP: ${PRIVATE_IP}, 발생 시각: ${time})\"}" $WEBHOOK_URL
}
# 프로세스 모니터링 함수
monitor_processes() {
# Java 프로세스 확인
java_process=$(ps aux | grep '[j]ava.*\.jar')
if [ -z "$java_process" ]; then
send_slack_notification "Alert: 운영계 서버가 동작하지 않습니다. 개발팀은 확인해 주세요!"
fi
# npm run dev 프로세스 확인
npm_process=$(ps aux | grep '[n]pm.*run dev')
if [ -z "$npm_process" ]; then
send_slack_notification "Alert: 관리자 페이지가 동작하지 않습니다. 개발팀은 확인해 주세요!"
fi
}
# 무한 루프로 1분마다 체크
while true; do
monitor_processes
sleep 60
done
단순히 프로세스 조회를 통해 해당하는 프로세스가 없다면 슬랙으로 알림을 보내는 스크립트 입니다! 이제 잘 가는지 확인해볼까요?

짜잔! 알림이 잘 오는 것을 확인했습니다!~!~!
여기까지 EC2 + Slack 연동을 통해 서버 모니터링이었습니다!
감사합니다!
'AWS' 카테고리의 다른 글
EC2에 Github Action, AWS ECR 사용하여 node.js 프로젝트 배포해보기 (0) | 2024.12.16 |
---|---|
Elastic beanstalk + Git Action 무 중단 배포 구현(완) - 3 (feat. ECR) (0) | 2024.12.16 |
Elastic beanstalk + Git Action 무 중단 배포 구현 - 2 (feat. S3) (5) | 2024.12.10 |
Elastic beanstalk + Git Action 무 중단 배포 구현 - 1 (feat. S3) (2) | 2024.12.05 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- java #스프링 #spring #server
- 무중단배포
- k8s
- 프로그래머스
- 자바
- 구간합구하기
- k8s object
- StatefulSet
- 쿠버네티스 오브젝트
- AWS
- java
- 백준 상자넣기
- 단지번호붙이기 자바
- EB
- 백준
- 행렬 테두리 회전하기 자바
- 백준 그림 자바
- ECR
- 자료구조
- Java #객체 #자바기초 #자바
- 코딩테스트
- 쿠버네티스 개념
- 백준 1965 풀이
- dfs
- Java #코린이 #자바
- 마법사 상어와 비바라기 자바
- 백준 상자 넣기 자바
- EC2
- docker
- 단지번호붙이기 JAVA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함