Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Общие вопросы
  • Search

Уведомления об ошибках в telegram

Общие вопросы о панели управления Vesta
Post Reply
  • Print view
Advanced search
4 posts • Page 1 of 1
fadich
Posts: 2
Joined: Mon Jan 23, 2017 4:05 pm

Os: CentOS 6x
Web: apache + nginx
Уведомления об ошибках в telegram
  • Quote

Post by fadich » Wed Jan 10, 2018 3:00 pm

Если требуется вывод ошибок или сообщений о событиях vestacp в мессенджер, почти любой, предлагаю решение на основе ntfy.

1. Ставим утилиту ntfy, написан на питоне, ставится на любую ОС, где есть питон:

Code: Select all

pip install ntfy
2. Настраиваем backends для ntfy умолчанию, я использовал telegram. Файл ~/config/ntfy/ntfy.yml

Code: Select all

backends:
    - telegram
3. Создаем бота в телеграмме, через BotFather.
4. Ставим плагин для ntfy, см. документацию на сайте:

Code: Select all

pip install ntfy[telegram]
5. Конфигурируем плагин, для telegram достаточно отправить любое сообщение:

Code: Select all

ntfy -b telegram send "Telegram configured for ntfy"
Заполняем поля, нужно указать ключ API для ранее созданого бота и пароль ответ. Готово. Проверьте, что сообщения доходят до бота.
6. Теперь магия, мне нужны были только уведомления об ошибках, поэтому изменил только одну строку, файл /usr/local/vesta/func/main.sh, строка # Log event function.

Code: Select all

# Log event function
log_event() {
    if [ -z "$time" ]; then
        LOG_TIME="$(date +'%F %T') $(basename $0)"
    else
        LOG_TIME="$date $time $(basename $0)"
    fi
    if [ "$1" -eq 0 ]; then
        echo "$LOG_TIME $2" >> $VESTA/log/system.log
    else
        echo "$LOG_TIME $2 [Error $1]" >> $VESTA/log/error.log
    fi
}
Меняем на:

Code: Select all

# Log event function
log_event() {
    if [ -z "$time" ]; then
        LOG_TIME="$(date +'%F %T') $(basename $0)"
    else
        LOG_TIME="$date $time $(basename $0)"
    fi
    if [ "$1" -eq 0 ]; then
        echo "$LOG_TIME $2" >> $VESTA/log/system.log
    else
        echo "$LOG_TIME $2 [Error $1]" >> $VESTA/log/error.log
        ntfy send "$LOG_TIME $2 [Error $1]"
    fi
}
Готово. Ошибки будут падать в вашего бота и вовремя уведомлять о проблемах. Решение на продакшен не тянет, но для своих нужд мне хватает. По аналогии ntfy send можно добавить уведомления для любого функционала vestacp или в свои скрипты. ntfy поддерживает почти все самые популярные каналы уведомлений slack, pushbullet, xmpp и прочее. Например уведомление об успехе бэкапов я делаю так, файл /usr/local/vesta/bin/v-backup-user, на строках в самом низу:

Code: Select all

# Send notification
if [ -e "$BACKUP/$user.log" ]; then
    cd $BACKUP
    subj="$user → backup has been completed"
    email=$(get_user_value '$CONTACT')
    cat $BACKUP/$user.log |$SENDMAIL -s "$subj" $email $notify

    # NTFY about creation backup for user
    tlg=$(tail -n 5 $BACKUP/$user.log)
    ntfy send "$subj"$'\n\n'"$tlg"

    rm $BACKUP/$user.log
fi
В телеграме:
Image

Не знал куда закинуть решение, в какую тему. Переводить лениво. Оставил тут.
Top

ahouse
Posts: 171
Joined: Fri Sep 01, 2017 1:05 pm

Os: Ubuntu 15x
Web: apache + nginx
Re: Уведомления об ошибках в telegram
  • Quote

Post by ahouse » Thu Jan 11, 2018 6:50 am

хорошая вещь!

UPD: Подтверждаю работоспособность.
Top

STEENOV
Posts: 28
Joined: Mon Aug 22, 2016 1:59 pm

Os: CentOS 6x
Web: apache + nginx
Re: Уведомления об ошибках в telegram
  • Quote

Post by STEENOV » Wed Apr 29, 2020 11:05 am

Идея хорошая.
А как сделать для внутренних логов самой системы?
Top

fadich
Posts: 2
Joined: Mon Jan 23, 2017 4:05 pm

Os: CentOS 6x
Web: apache + nginx
Re: Уведомления об ошибках в telegram
  • Quote

Post by fadich » Tue May 05, 2020 10:34 am

STEENOV wrote: ↑
Wed Apr 29, 2020 11:05 am
Идея хорошая.
А как сделать для внутренних логов самой системы?
Тут описан функционал уведомлений. В самой панели, есть какой никакой журнал пользователя по ссылке /list/log/
Top


Post Reply
  • Print view

4 posts • Page 1 of 1

Return to “Общие вопросы”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password