Ubuntu 에서 LSI Mega-Cli 설치, 기본 명령어, Telegram 알람 설정

리눅스/OS 일반|2018. 12. 18. 17:07
반응형

Ubuntu 서버를 기준으로 설명하였습니다.

 

 

1. 설치

 

# cd /usr/local/src

# apt -y install unzip alien libncurses5

# wget https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/8-07-14_MegaCLI.zip

# unzip 8-07-14_MegaCLI.zip

# cd Linux

# alien MegaCli-8.07.14-1.noarch.rpm

# dpkg -i megacli_8.07.14-2_all.deb

 

 

2. 명령어

 

디스크 상세 정보

# /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL

 

디스크 요약 정보

# /opt/MegaRAID/MegaCli/MegaCli64 -ShowSummary -aALL

 

 

3. 알람 스크립트

 

Telegram Bot 이 있다면 알람을 주는데 활용하도록 합니다.

# vi /root/check_raid.sh

#!/bin/bash

# Telegram 설정 (텔레그램 봇 API KEY, 수신자 CHAT_ID)
API_KEY="12345678:ABFNrljuQ4nrwbChhMlx1z-tA36Ww"
CHAT_ID="00112233"

# 현재 정상 디스크 개수
list=`/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL |grep status`
cnt=`echo "$list" |grep status |grep Active |wc -l`

# 디스크 네개 중 하나라도 정상이 아닌 경우
if [ $cnt != 4 ]; then
        # 메시지 전송
        MESSAGE="서버 디스크 에러가 감지 되었습니다.
- 서버 : 파일 서버
- 내용 : $list"
        URL="https://api.telegram.org/bot$API_KEY/sendMessage"

        curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE" > /dev/null 2>&1
fi

exit 0

 

# chmod 700 /root/check_raid.sh

# echo "0 9 * * * root sh /root/check_raid.sh" >> /etc/crontab

 

 

4. 쉘스크립트 암호화 (선택)

 

쉘스크립트에 Telegram Bot API KEY 와 사용자의 CHAT_ID 가 포함되어 있어 누군가 확인할 우려가 있을 경우 쉘스크립트를 바이너리 파일로 변경할 수 있습니다.

우선 필요한 패키지를 설치하고 위에서 작성했던 쉘스크립트를 암호화 합니다.

# apt -y install shc

# shc -f /root/check_raid.sh -o /root/check_raid

 

/etc/crontab 파일에서 쉘스크립트 실행 명령을 바이너리 파일 실행 명령으로 바꿉니다.

- 기존 : sh /root/check_raid.sh

- 변경 : /root/check_raid.sh
# sed -i 's/sh \/root\/check_raid.sh/\/root\/check_raid/' /etc/crontab

 

변경이 완료되었으면 테스트를 해봅니다. 이상이 없는 경우 기존 쉘스크립트는 삭제해 두는 것이 좋습니다.

# rm -f /root/check_raid.sh*

 

반응형

댓글()