Jump to content
iT4iT.CLUB
Sign in to follow this  
Kitsum

Push уведомления: Android, iOS, Windows

Recommended Posts

Push уведомления - очень удобное, даже жизненно необходимое, дополнение к серверу. В любом месте на планете мы получаем оперативную информацию с поля боя.

Для реализации задуманного есть очень удобный ресурс pushbullet.com с простым API.

Забегая немного вперед, сразу покажу как это хозяйство будет выглядеть.

Android

s1.thumb.png.067c83fe1d55a363ce62574de66 s2.thumb.png.2105f437a4c1afe59434ffd2308

Windows

s4.thumb.png.64fbb3de4e1978d082ae74974ef

s3.thumb.png.15b0c0f712b43798f63df297ec3

На момент написания статьи, сервис поддерживает следующие платформы для получения push уведомлений:

  1. Android
  2. iOS
  3. Windows
  4. Chrome
  5. Firefox
  6. Opera
  7. Safari

Думаю, что в скором времени и Mac добавится к списку.

И так, к делу

Все работы я проводил на Linux Ubuntu Server 4.8 и Zabbix 2.4, но описанное подойдет для любой ОС семейства UNIX, а под Windows лишь с небольшими модификациями.

Первым делом нам необходимо перейти на сайт pushbullet (ссылка в начале поста) и пройти регистрацию или авторизоваться под одной из предоставленных систем: google, facebook ... В общем есть из чего выбирать.

Привязать необходимую платформу для получения уведомлений можно в разделе Devices -> Add device. Для установки Вас перенаправят на ресурс соответствующий вашему выбору. Устанавливаем, авторизуемся и возвращаемся на сайт в раздел Settings ->  Account. Ищем графу Access Token и, если у Вас хорошая память, запоминаем или переписываем секретный ключ.

Самое тяжелое позади, переходим к изучению API

Необходимый багаж знаний мы можем получить в соответствующем разделе сайта docs.pushbullet.com

Раздел Pushes гласит, что мы можем отправлять запросы методом POST/GET и использовать следующие типы запросов с сопутствующими параметрами:

На момент написания статьи, ссылка по которой реализована работа с API выглядит так - https://api.pushbullet.com/v2/pushes

В документации приведен пример для отправки тестового push уведомления методом POST с использованием Curl в формате Json.

curl --header 'Authorization: Bearer <your_access_token_here>' \
-X POST https://api.pushbullet.com/v2/pushes \
--header 'Content-Type: application/json' \
--data-binary '{"type": "note", "title": "Note Title", "body": "Note Body"}'

Для теста замените <your_access_token_here> на свой секретный ключ.

Это довольно удобно, но у меня возникли проблемы в реализации связки Zabbix -> Bash -> Curl+Json, при которой наблюдались перебои в работе. Поэтому я выкинул из связки Json.

Устремляемся на сервер

Идем в каталог со скриптами оповещений Zabbix (в Linux это /usr/local/share/zabbix/alertscripts) и создаем там файл с любым именем, но для удобства понимания назовем его pushbullet.

Это будет простенький Bash скрипт со следующим содержимым:

#!/bin/bash

API_URL="https://api.pushbullet.com/v2/pushes"
API_KEY="$1"
SUBJECT="$2"
MESSAGE="$3"

curl $API_URL -u $API_KEY: -d type=note -d title="$SUBJECT" -d body="$MESSAGE" -X POST

Переходим в Zabbix

В разделе Администрирование -> Способы оповещения и добавляем новый способ со следующими параметрами:

  1. Имя - pushbullet
  2. Тип - Скрипт
  3. Имя скрипта - pushbullet

Идем в раздел Настройка -> Действия -> Источник событий: Триггеры и создаем новое действие с именем Report problems to Pushbullet.

Активируйте и отредактируйте Сообщение по умолчанию и Сообщение о восстановлении, это поможет получать как список самих проблем так и сообщения при их устранении. Далее в разделе Операции указываем Тип операции: отправлять сообщение и выбираем отправлять только через pushbullet.

Можно отредактировать через стандартный шаблон оповещений, но отдельный шаблон позволяет создать конкретное сообщение, что очень удобно т.к например на телефоне не большой дисплей и плавать во всем шлаке данных о проблеме будет не удобно. Что выбрать решать только Вам.

Теперь самое вкусно. Переходим в раздел Администрирование -> Пользователи и выбираем нашу учетную запись. Во вкладке Оповещения добавляем новое оповещение со следующими параметрами:

  1. Типpushbullet
  2. Отправлять на - указываем <your_access_token_here>

Остальные параметры по желанию, но по личному опыту советую изменить активность на Ваше рабочее время. Я уже получал посреди ночи пулеметную очередь уведомлений с последующими одиночными выстрелами.

Таким образом настраиваются уведомления для всех необходимых пользователей.

Все готово к работе.

PS: По желанию Вы можете модифицировать скрипт и профили пользователей для получения уведомлений на конкретные устройства или распределить между устройствами оповещения в зависимости от текущего времени дня (на рабочий телефон в рабочее время, на домашний компьютер/телефон в свободное). Выбор остается за Вами.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Kitsum
      Шаблон и список преобразований значений для мониторинга источников бесперебойного питания фирмы APC. 
      Подробное описание можно посмотреть в следующей теме.
       
    • By Kitsum
      Модуль предназначен для системы мониторинга Zabbix. Работает в качестве отдельного демона и осуществляет транзит сообщений от брокера до хостов в системе мониторинга. Подробное описание модуля можно посмотреть в следующей теме.
       
    • By Kitsum
      Делюсь шаблоном для мониторинга состояния маршрутизаторов CISCO, zabbix 2.4
      Работа с устройством реализована по протоколу SNMP и тут есть ряд подводных камней, но самый основной это изменения стандарта от одной версии прошивки к другой.
      Если понадобится изменить OID значения, то поискать их можно тут http://tools.cisco.com/Support/SNMP/do/BrowseOID.do но часть старый параметров в базе отсутствует. Тут уж или через поисковик или "Селяви, что в перевод с древнегреческого - не повезло!".
      Простая конфигурация устройства:
      cisco-test#configure terminal Enter configuration commands, one per line. End with CNTL/Z. cisco-test(config)#snmp-server community public RO cisco-test(config)# Но при этом любой может подключиться к устройству и читать с него данные, если вы хотите чтобы плохие люди могли еще и отдавать команды то RO необходимо заменить на RW
      Если Вы желаете ограничить доступ к SNMP серверу устройства по IP, то необходимо использовать access-list:
      cisco-test#configure terminal Enter configuration commands, one per line. End with CNTL/Z. cisco-test(config)#ip access-list standard SNMP_ACCESS_RO cisco-test(config-std-nacl)#permit 192.168.1.2 cisco-test(config)#snmp-server community public RO SNMP_ACCESS_RO cisco-test(config)#^Z cisco-test# Сommunity можно обозвать как угодно, хоть BLABLABLA место public. IP естественно заменить на адрес Вашего сервера. RO - только чтение, RW - полный доступ
      Мы будем только читать, поэтому RO. В теории конечно можно отлавливать определенные события на устройстве и предпринимать ответные действия автоматически, только в таких случаях RW. Но об этом мы поговорим в другой раз.
      Теперь необходимо добавить макрос в zabbix Администрирование -> Общие -> Макросы
      {$SNMP_COMMUNITY} = имя community указанное в конфигурации CISCO, например "public" Сам шаблон можно забрать в конце поста.
      Немного о шаблоне.

      На данным момент собираются данные:
      Аптайм Модель маршрутизатора Загрузка центрального процессора за: 5 секунд, 1 минуту, 5 минут Статус (online\offline) Память: ОЗУ, ПЗУ Список доступных интерфейсов Статусы сетевых интерфейсов Количество byte RX\TX на каждом интерфейсе Количество error byte RX\TX на каждом интерфейсе По этим данным строятся соответствующие графики (ОЗУ, ПЗУ и т.п не выведены, можете добавить самостоятельно)
      Пока маловато триггеров, но по мере обновления шаблона, их количество увеличится:
      Маршрутизатор выключен или с ним нет связи по Ethernet Маршрутизатор был пере запущен менее 5 минут назад Нагрузка на ЦП выше 80%  PS: следите за обновлениями!
      zbx_templates_router_cisco.xml
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...