Teams Alert

๊ธฐ์กด ์„œ๋ฒ„๊ฐ€ ์žฅ์• ๋กœ ์ธํ•ด ์ฃฝ์—ˆ์„ ๋•Œ

์ด๋Ÿฐ์‹์œผ๋กœ ํŒ€์ฆˆ ๋ฉ”์‹ ์ € ์•Œ๋žŒ์ด ์˜ด.

์ด๋ ‡๊ฒŒ ๋ฉ”์‹œ์ง€๊ฐ€ ์˜ฌ ๋•Œ ๋ฐœ๊ฒฌ์žโ‡’ ๊ธฐ์ˆ ์ด์‚ฌ๋‹˜ ๋˜๋Š” ๊ธฐ์ˆ PM ํ˜ธ์ถœ โ‡’ ๊ฐœ๋ฐœํŒ€ ํ˜ธ์ถœ โ‡’ ๋ฌธ์ œ ํ•ด๊ฒฐ

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์™”๋Š”๋ฐ ํ˜ธ์ถœ์„ ์กฐ๊ธˆ์ด๋ผ๋„ ์ค„์ด๊ธฐ ์œ„ํ•ด shell script ๋กœ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๋Œ๋ ค ์„œ๋ฒ„ ์ƒํ™ฉ์„ 5๋ถ„ ๋˜๋Š” 30๋ถ„ ์— ํ•œ๋ฒˆ ์”ฉ ํ™•์ธ ํ›„ ํŒ€์ฆˆ ์•Œ๋ฆผ์œผ๋กœ ๋ณด๋‚ด๋Š” ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์ œ์ž‘

๊ฒฐ๊ณผ

tomcat ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒดํฌํ•ด์„œ tomcat ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฃฝ์—ˆ์„ ๋•Œ ์•Œ๋ฆผ์„ ๋ณด๋‚ด๋Š” ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ํ›„ ์„œ๋ฒ„ ๋–จ์–ด์ง€๋ฉด ๋ฐ”๋กœ ์‘๋Œ€๊ฐ€ ๊ฐ€๋Šฅ


๊ธฐ์กด ์„œ๋ฒ„ ์šฉ๋Ÿ‰ ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๋กœ๊ทธ๊ฐ€ ์Œ“์ด์ง€ ์•Š๊ณ  ์žฅ์•  ๋ฐœ์ƒ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒ

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๊ณ ์ž server size ๋ฅผ ์ฒดํฌํ•ด์„œ ์•Œ๋ฆผ์œผ๋กœ ๋ณด๋‚ด๋Š” ์Šค์ผ€์ค„๋Ÿฌ ์ž‘์„ฑ

################################################################################

################################################################################

PASSWD="password"
##################################################
# /home/happytuk
##################################################
curDir=$(pwd)
SSH_STDIN=$curDir/ssh_stdin
#
# for SSH
sshOption="-T -o StrictHostKeyChecking=no -o ConnectTimeout=1 -o NumberOfPasswordPrompts=1"
#
##################################################
# SAMPLE: SVR_LIST="172.25.49.135 172.25.49.136"
##################################################
SVR_LIST="ip1 ip2 ip3 ip4 ip5"

mpList=$(eval echo $SVR_LIST)
##################################################
# ์ „๋‹ฌ๋ฐ›์€ ์ „์†กํ•  URL ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค=> $1
##################################################
RESULT_LIST=""

for idx in $mpList
do
    #echo "IP:::"$idx
    #vvv=$(bash -c -s "cat </dev/null> /dev/tcp/${idx}/22")
    _STATUS=$(timeout 1 bash -c "cat < /dev/null > /dev/tcp/${idx}/22"; if [ $? -gt 0 ]; then echo "fail"; else echo "ok"; fi);

    if [ "$_STATUS" == "ok" ]; then
        checkingVal=$(echo $PASSWD | $SSH_STDIN ssh $sshOption "user@"$idx "df -lh /* |grep '/dev/sda1' |  head -1 | awk '{print \$5}' | sed 's/%//g'")
        #echo "IP:::$idx:$checkingVal"
        if [ $checkingVal -ge 90 ];then
           RESULT_LIST+="${idx} : ${checkingVal}% \n\n"
        fi
    else
           RESULT_LIST+="${idx} : SSH ์ ‘์†์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.\n\n"
    fi
done

RESULTLENGTH=`echo $RESULT_LIST | awk '{print length($0)}'`
if [ $RESULTLENGTH -gt 0 ];then
curl -d '{"@context":"https://schema.org/extensions","@type":"MessageCard","themeColor":"#0072C6","title": "[NOTICE] azure vmss Sever DISK ์ฒดํฌ", "text": "'"$RESULT_LIST"'" }' -H "Content-Type: Application/JSON" -X POST <webhook url>

fi

exit 0

Last updated

Was this helpful?