Menu

Бот Telegram для мониторинга сервера

Для наблюдения за здоровьем сервера очень удобно испоьзовать простой скрипт, который периодически посылает уведомления в Telegram.

По своему опыту могу сказать, что очень удобен вот такой вариант:

 

#!/bin/sh



TOKEN="0007475344:AAHuPC9vCATO-SeXo1Axz-0FSgsUBzeMhf4"
ID="-000827438"
URL="https://api.telegram.org/bot$TOKEN/sendMessage"





#DIR="$(ls -1)"
UPT="$(uptime)"
DF="$(df -h | grep sda)"
FREEM="$(free -m)"
FIRST="$(cat /proc/loadavg | awk {'print $2'} | cut -d . -f 1)"
OUTPUT="$([[ $(cat /proc/loadavg | awk {'print $2'} | cut -d . -f 1) -gt 0 ]] && echo ALARM)"
#DIR="$(ls -1)"

txt="${UPT} ${FREEM} ${DF} ${FIRST} ${OUTPUT}"

#curl -s -X POST $URL -d chat_id=$ID -d text="ИМЯ_СЕРВЕРА:"
#curl -s -X POST $URL -d chat_id=$ID -d text="${UPT}"
#curl -s -X POST $URL -d chat_id=$ID -d text="${FREEM}"
#curl -s -X POST $URL -d chat_id=$ID -d text="${DF}"
#curl -s -X POST $URL -d chat_id=$ID -d text="${FIRST}"
#curl -s -X POST $URL -d chat_id=$ID -d text="${OUTPUT}"
curl -s -X POST $URL -d chat_id=$ID -d text="${txt}"


# DISK ALERT
# Get the disk usage percentage
DISK_USAGE=$(df -h / | awk '{print $5}' | tail -n 1 | sed 's/%//')
# Check if the disk usage is above 75% or 90%
if [ $DISK_USAGE -ge 75 ] && [ $DISK_USAGE -lt 90 ]; then
    MESSAGE="Warning: Disk usage is at $DISK_USAGE%."
    curl -s -X POST $URL -d chat_id=$ID -d text="$MESSAGE"
elif [ $DISK_USAGE -ge 90 ]; then
    MESSAGE="Alert: Disk usage is at $DISK_USAGE%!"
    curl -s -X POST $URL -d chat_id=$ID -d text="$MESSAGE"
fi


echo "Done! /n"

Вешаем такой скрипт на cron с заданной периодичностью и получаем оповещение в Телеграм-канале с отчётом о техничском состоянии системы.

Основными параметрами считаю нагрузку на процессор (Load average) и использование памяти.

Очень важный фактор: свободное дисковое пространство. Поэтому скрипт будет слать предупреждения и тревожные сообщения при достижении заполнения диска на 75 и 90 процентов соответственно.

Авторизуйтесь, чтобы получить возможность оставлять комментарии
Go to top