2018-02-07 Глухая Отправка Уведомлений Об Ошибках Из Приложения
Ошибка: Код бекапа проверяет свободное место и если его не хватает - шлет alarm и падает.
if [ $node_backup_freespace -le $mysize ]; then /node/bin/alarm "no free space for bk $VM_NODE_BACKUP $VM_DIR $node_backup_freespace $mysize" exit 1 fi
Код alarm:
#!/bin/bash msg="$HOSTNAME: $@" msg=${msg// /%20} wget -O - "xxxxxxxxx&text=$msg" exit 0
Как это выглядит в консоли и логах:
START /bin/vm backup xxx [799576] /node/bin/vm_backup START --2018-02-07 17:28:54-- xxxxx&text=xxx:%20no%20free%20space%20for%20bk%20xxx%20/vm/office/xxx%20663%20892 Resolving xxxx... xxx Connecting to xxx|xxx|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2 [text/html] Saving to: “STDOUT” 0% [ ] 0 --.-K/s O100%[===========================================================================================================================================================================>] 2 --.-K/s in 0s 2018-02-07 17:28:55 (657 KB/s) - written to stdout [2/2] ERROR_PROG=/bin/vm backup xxx ERROR_STACK=/bin/vm ERROR_SOURCE=/bin/vm backup xxx ERROR_CMD="/node/bin/__vm "$@"" ERROR_STATUS=1 LINENO=12 FUNC: main 7:if [[ "${2:---}" != --* ]] && [ "${1:-}" != "create" ] && [ "$2" != "ALL" ] ; then 8: . /node/bin/__vm_config $2 9: [[ " $SKIP_LOCK " != *" $1 "* ]] && /node/bin/__lock $VM_DIR/vm.lock $$ 10:fi 11- 12:/node/bin/__vm "$@" 13- 14:if [[ "${2:---}" != --* ]] && [ "$2" != "ALL" ] ; then 15: . /node/bin/__vm_config $2 16: [[ " $SKIP_LOCK " != *" $1 "* ]] && /node/bin/__unlock $VM_DIR/vm.lock $$ 17:fi FAILED /bin/vm backup xxx [799576]
В логах совершенно непонятна причина поломки.
Как надо делать: Функция alarm должна дополнительно выводить сообщение, которое в нее передают, чтобы оно попало в логи в читаемом виде:
#!/bin/bash msg="$HOSTNAME: $@" wget_msg=${msg// /%20} wget -O - "xxxxxxxxx&text=$wget_msg" echo "$msg" >&2 exit 0
Аналогично в питоне, если мы вешаем хук в logging, чтобы он дополнительно отправлял CRITICAL или ERROR в какую-то систему реагирования, эта ошибка также попадает и в основной лог приложения. Ничего не должно скрываться.
~~OWNERAPPROVE~~
Прочитал правила разработки как не надо делать 2018-02-07 глухая отправка уведомлений об ошибках из приложения |
Yes(31) No(0) Clear Yes: No: |
Обсуждение