Настройка уведомлений в Telegram из Bareos

Настройка уведомлений в Telegram из Bareos

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Настройка уведомлений в Telegram из системы резервного копирования Bareos

Шаг 1. Создание бота в Telgram

Добавляем бота под названием BotFather и отправляем ему команду /newbot, выбираем имя, которое будет отображаться в списке контактов и адрес. Например, «My Alert Checker» с адресом «MyPrivateBot».

Если адрес не занят, а имя введено правильно, BotFather пришлет в ответ сообщение с токеном — «ключом» для доступа к созданному боту. Его нужно сохранить и никому не показывать.

Шаг 2. Создание канала

Создаём канал с любым названием и адресом, и переходим в его настройки.

Необходимо добавить в список администраторов созданного нами бота — именно он будет публиковать уведомления в канал.


![](004.png)
![](005.png)

Шаг 3. Идентификация чата

Отправим в чат любое сообщение, чтобы отследить ID-канала для отправки уведомлений.

После того, как отправили сообщение, выполним curl-запрос, подставив ранее полученный токен для бота.

1
curl --silent "https://api.telegram.org/bot${TOKEN}/getUpdates"
1
2
3
# curl --silent "https://api.telegram.org/bot521924663:AAH7t61mNpKLOToyIsPm3vFOJ3GNaD9-LSI/getUpdates"
{"ok":true,"result":[{"update_id":731268716,
"channel_post":{"message_id":4,"chat":{"id":-1001348922431,"title":"My Alert Checker","type":"channel"},"date":1516122930,"text":"ferfe"}}]}

Получаем ID канала - -1001348922431.

Шаг 4. Настройка Bareos для отправки уведомлений в Telegram

Создаем новый конфигурационный файл:

1
nano /etc/bareos/bareos-dir.d/messages/Telegram.conf

Со следующим содержимым:

1
2
3
4
5
6
7
8
9
10
11
12
Messages {
Name = Telegram
Description = "Reasonable message delivery -- send most everything to Telegram channel and to the console."
operatorcommand = "/usr/bin/bsmtp -h localhost -f \"\(Bareos\) \<%r\>\" -s \"Bareos: Intervention needed for %j\" %r"
mailcommand = "curl --header 'Content-Type: application/json' --request 'POST' --data '{\"chat_id\":\"ID_CHAT_HERE\",\"text\":\"Bareos: %t %e of %c %l\"}' \"https://api.telegram.org/bot_API_TELEGRAM_KEY_/sendMessage\""
operator = root@localhost = mount # (#03)
mail = root@localhost = all, !skipped, !saved, !audit # (#02)
console = all, !skipped, !saved, !audit
append = "/var/log/bareos/bareos.log" = all, !skipped, !saved, !audit
catalog = all, !skipped, !saved, !audit

}
  • ID_CHAT_HERE - ID канала или пользователя, кто будет получать уведомления.
  • API_TELEGRAM_KEY - API ключ для бота Telegram

В эскизе (Jobdefs), не забываем изменить способ получения уведомлений на Telegram.

1
Messages = Telegram

Если у вас очень много хостов, то можно настроить уведомления только об ошибках, например таким образом:

1
Mail On Error = root@localhost = all, !skipped, !saved, !audit