본문 바로가기
서버

[리눅스]특정 서버 다운되었는지 체크하여 관리자에게 메일 보내기

by 실황 2017. 6. 23.

컴퓨터 수리 관련 업체에 근무했을 당시 PC방 유지보수 업무도 했던 적이 있었습니다.


그 땐 SSD, 노하드시스템, 게임자동패치시스템 등 PC방 서비스 기술에 있어서 정점을 달리고 있었죠.


그 중 이번에 소개해드릴... 리눅스를 이용한 특정 서버의 상태를 체크하는 방법에 대해 말씀 드리려 합니다.


기본 구조는...


(1) 보유하고 있는 리눅스 서버에서 특정 서버(여기선 PC방의 게임자동패치서버) IP로 1시간 간격으로 핑을 날립니다.

(2) 만약 응답이 있으면 액션을 취하지 않고, 응답이 없으면 약 3분 후에 다시 핑을 날려봅니다. (순간적인 네트웍 끊김 증상 예상)

(3) 3분 후에 그래도 핑에 대한 응답이 없으면 서버가 다운 된 것으로 간주, 미리 설정된 관리자 이메일로 메일을 보내도록 합니다.

(4) 관리자는 스마트폰 등의 기기로 실시간 메일 알림 연동으로 서버가 다운된 것을 감지, 대응을 하도록 합니다.


설정 방법은...


(1) 리눅스 서버에서 crontab 등록

즉,

blackq 서버는 매 시간 05분에 핑 테스트

korea  서버는 매 시간 10분에 핑 테스트

speed 서버는 매 시간 15분에 핑 테스트를 진행하게끔 미리 설정합니다. (이 시간 설정은 임의대로 변경하시면 되겠죠~?)


(2) 스크립트를 작성합니다.


순서를 말씀드리자면,

(1) 192.168.1.100 IP에 핑을 날림

(2) 핑 응답이 있으면 종료, 그렇지 않으면 180초 후에 재시도

(3) 또 핑 응답이 있으면 종료, 그렇지 않으면 설정된 이메일로 메일 발송

(4) 관리자는 스마트폰에 이메일 연동 설정하여 실시간으로 알림을 받음


이상입니다.

혹시, 스크립트 긁어가고 싶으신 분 계실까봐 오픈해 드리겠습니다.



#!/bin/bash


ping -c 1 192.168.1.100 &> /dev/null


if [ "$?" == "1" ]

then


echo 블랙큐 PC방 서버 장애 예상! 180초 후에 재탐색 합니다. | mail -s "BlackQ-PC Bang Server Checking" silhwang@naver.com

sleep 180


fi


ping -c 1 192.168.1.100 &> /dev/null


if [ "$?" == "0" ]

then


echo 블랙큐 PC방 서버 정상! | mail -s "BlackQ-PC Bang Server Normal!" silhwang@naver.com

else

echo 경고! 블랙큐 PC방 서버 장애 발생! | mail -s "Warning BlackQ-PC Bang Server Abnormal!" silhwang@gmail.com


fi


댓글