We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Уведомления об ошибках в telegram
Уведомления об ошибках в telegram
Если требуется вывод ошибок или сообщений о событиях vestacp в мессенджер, почти любой, предлагаю решение на основе ntfy.
1. Ставим утилиту ntfy, написан на питоне, ставится на любую ОС, где есть питон:
2. Настраиваем backends для ntfy умолчанию, я использовал telegram. Файл ~/config/ntfy/ntfy.yml
3. Создаем бота в телеграмме, через BotFather.
4. Ставим плагин для ntfy, см. документацию на сайте:
5. Конфигурируем плагин, для telegram достаточно отправить любое сообщение:
Заполняем поля, нужно указать ключ API для ранее созданого бота и пароль ответ. Готово. Проверьте, что сообщения доходят до бота.
6. Теперь магия, мне нужны были только уведомления об ошибках, поэтому изменил только одну строку, файл /usr/local/vesta/func/main.sh, строка # Log event function.
Меняем на:
Готово. Ошибки будут падать в вашего бота и вовремя уведомлять о проблемах. Решение на продакшен не тянет, но для своих нужд мне хватает. По аналогии ntfy send можно добавить уведомления для любого функционала vestacp или в свои скрипты. ntfy поддерживает почти все самые популярные каналы уведомлений slack, pushbullet, xmpp и прочее. Например уведомление об успехе бэкапов я делаю так, файл /usr/local/vesta/bin/v-backup-user, на строках в самом низу:
В телеграме:
Не знал куда закинуть решение, в какую тему. Переводить лениво. Оставил тут.
1. Ставим утилиту ntfy, написан на питоне, ставится на любую ОС, где есть питон:
Code: Select all
pip install ntfy
Code: Select all
backends:
- telegram
4. Ставим плагин для ntfy, см. документацию на сайте:
Code: Select all
pip install ntfy[telegram]
Code: Select all
ntfy -b telegram send "Telegram configured for ntfy"
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
}
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
Не знал куда закинуть решение, в какую тему. Переводить лениво. Оставил тут.
Re: Уведомления об ошибках в telegram
хорошая вещь!
UPD: Подтверждаю работоспособность.
UPD: Подтверждаю работоспособность.
Re: Уведомления об ошибках в telegram
Идея хорошая.
А как сделать для внутренних логов самой системы?
А как сделать для внутренних логов самой системы?