HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Инструменты
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 10.06.2017, 16:10
Vander
Новичок
Регистрация: 03.11.2010
Сообщений: 5
С нами: 8170166

Репутация: 0
По умолчанию

Всем привет! Задался вопросом настройки Zabbix, столкнулся с проблемой, не приходят уведомления в Telegram.

Общая информация:
- Zabbix 3.2.3

- OS FreeBSD 11.0.

Тело используемого скрипта:

Код:


Код:
# vim /usr/local/etc/zabbix32/zabbix//alertscripts/zabbix_notify.sh

#!/usr/local/bin/bash

TOKEN='тут мой токен'

which curl &>/tmp/telegram.log

if [ $? -ne 0 ] ; then echo 'FAIL: curl not found.' && exit 1 ; fi
if [ $# -ne 3 ] ; then echo 'FAIL: Params not defined.' && echo 'Usage: zabbix-to-telegram-notify.sh TelegramID Subject Message' && exit 1 ; fi

CHAT_ID="$1"
SUBJECT="$2"
MESSAGE="$3"

curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" | $

if [ $? -eq 0 ] ; then exit 1 ; fi
Владельцем файла назначен zabbix.
Выполнена команда: chmod +x zabbix_notify.sh

Скрины настроек Zabbix:









Уведомления исправно приходят на email но не в телеграм.
Если запускать скрипт вручную от любого пользователя, с параметрами:
./zabbix_notify.sh "my ID" "test" "test"
Все, так же исправно.
Надеюсь кто-то подскажет, в чем может быть трабл.
 
Ответить с цитированием

  #2  
Старый 10.06.2017, 17:20
Vertigo
Познавший АНТИЧАТ
Регистрация: 27.02.2017
Сообщений: 1,312
С нами: 4845950

Репутация: 0


По умолчанию

Если я верно понял,то используется такая конфигурация
https://blog.amet13.name/2017/03/zabbix-telegram.html
Можно свериться и обратить внимание на строку # vim /usr/lib/zabbix/ там не прописывается local
Надеюсь,что пригодится.
[doublepost=1497100849,1497099885][/doublepost]Но для начала стоит попробовать в строке #!/usr/local/bin/bash написать #! /bin/bash в самом начале,т.к.
это является правилом и началом любого bash-скрипта.
 
Ответить с цитированием

  #3  
Старый 10.06.2017, 18:23
Vander
Новичок
Регистрация: 03.11.2010
Сообщений: 5
С нами: 8170166

Репутация: 0
По умолчанию

Цитата:

Vertigo сказал(а):

Если я верно понял,то используется такая конфигурация

Верно, остальное сейчас попробую. Спасибо.
[doublepost=1497104636,1497104138][/doublepost]




Код:


Код:
# vim /usr/local/etc/zabbix32/zabbix/alertscripts/zabbix_notify.sh

#! /usr/local/bin/bash

TOKEN='3846MYTOKENY9DCfE'

which curl &>/tmp/telegram.log

if [ $? -ne 0 ] ; then echo 'FAIL: curl not found.' && exit 1 ; fi
if [ $# -ne 3 ] ; then echo 'FAIL: Params not defined.' && echo 'Usage: zabbix-to-telegram-notify.sh TelegramID Subject Message' && exit 1 ; fi

CHAT_ID="$1"
SUBJECT="$2"
MESSAGE="$3"

curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" | grep -$

if [ $? -eq 0 ] ; then exit 1 ; fi
Привел, скрипт к такому виду, по прежнему не сработало, хотя в журнале

 
Ответить с цитированием

  #4  
Старый 11.06.2017, 10:27
Vertigo
Познавший АНТИЧАТ
Регистрация: 27.02.2017
Сообщений: 1,312
С нами: 4845950

Репутация: 0


По умолчанию

Не могу понять ,почему строки нет в скрипте такой: #!/bin/bash
А если вот так попробовать:
1.) убираем строку #!/usr/local/bin/bash , вместо неё пишем просто #!/bin/bash
2.) Строку curl -s --header...приводим к такому виду
curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT} \n${MESSAGE}\"}"
"https://api.telegram.org/bot${TOKEN}/sendMessage" | grep -q '"ok":false,'
3.) Команда на исполняемость скрипта : chmod +x /usr/local/zabbix32/zabbix/alertscripts/telegram.sh

Вариант 2 . Могут быть проблемы,если при настройке не указать реальное имя хоста ,указанное в веб- интерфейсе (Hostname=Zabbix server).
 
Ответить с цитированием

  #5  
Старый 11.06.2017, 12:55
Vander
Новичок
Регистрация: 03.11.2010
Сообщений: 5
С нами: 8170166

Репутация: 0
По умолчанию

Код:


Код:
# vim /usr/local/etc/zabbix32/zabbix/alertscripts/zabbix_notify.sh

#!/bin/bash

TOKEN='токен'

which curl &>/tmp/telegram.log

if [ $? -ne 0 ] ; then echo 'FAIL: curl not found.' && exit 1 ; fi
if [ $# -ne 3 ] ; then echo 'FAIL: Params not defined.' && echo 'Usage: zabbix-to-telegram-notify.sh TelegramID Subject Message' && exit 1 ; fi

CHAT_ID="$1"
SUBJECT="$2"
MESSAGE="$3"

curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" | grep -q '"ok":false,'

if [ $? -eq 0 ] ; then exit 1 ; fi
Привел к такому виду, все же не помогло.
Цитата:

Vertigo сказал(а):

Вариант 2

Вот тут не совсем понял
 
Ответить с цитированием

  #6  
Старый 11.06.2017, 13:39
Vertigo
Познавший АНТИЧАТ
Регистрация: 27.02.2017
Сообщений: 1,312
С нами: 4845950

Репутация: 0


По умолчанию

Цитата:

Vander сказал(а):

Код:


Код:
Вот тут не совсем понял
Код:
Рекомендуют в настройке Zabbix в интерфейсе указывать реальное имя машины (хоста)
Вот ещё неплохой разбор этой темы с комментариями к решению проблем
http://blog.angel2s2.ru/2016/03/zabbix-telegram.html
[/QUOTE]
 
Ответить с цитированием

  #7  
Старый 13.06.2017, 17:46
Vander
Новичок
Регистрация: 03.11.2010
Сообщений: 5
С нами: 8170166

Репутация: 0
По умолчанию

Вообще никак))

Создается впечатление, что zabbix вообще не дергает даже скрипт. Если выполняю вручную скрипт с параметрами - "ID" test test - все приходит. И в dump.txt:

HTTP/1.1 200 OK
Server: nginx/1.10.1
Date: Tue, 13 Jun 2017 13:35:53 GMT
Content-Type: application/json
Content-Length: 217
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection
Strict-Transport-Security: max-age=31536000; includeSubdomains

Добавил строку в скрипт - curl --dump-header /tmp/dump.txt -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJ ECT} \n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" | $

Если жду алерта от Zabbix, то ничего не происходит, совсем.
 
Ответить с цитированием

  #8  
Старый 14.06.2017, 02:30
Vertigo
Познавший АНТИЧАТ
Регистрация: 27.02.2017
Сообщений: 1,312
С нами: 4845950

Репутация: 0


По умолчанию

Засада какая-то.Что ещё можно проверить и пробовать:
1.Владельца скрипта и пользователь ,от которого он запущен.
Пробовать запустить скрипт от этого пользователя.
2.Вместо localhost пробовать указать 127.0.0.1 ,или наоборот.
Параллельно отключить DBSocket (если такой есть)
3. Вкладка администрирование-пользователи,выбираем нужного польз-ля
Далее,перейти во вкладку "оповещение"- жмём добавить -"способ оповещения"-Telegram
Ввести токен в поле "Отправить .." и добавить этот способ оповещения в меню "настройки-действия"
В веб-интерфейсе вроде всё активировано и указано,даже не знаю где ещё копать.
 
Ответить с цитированием

  #9  
Старый 14.06.2017, 14:33
Vander
Новичок
Регистрация: 03.11.2010
Сообщений: 5
С нами: 8170166

Репутация: 0
По умолчанию

Цитата:

Vertigo сказал(а):

1.Владельца скрипта и пользователь ,от которого он запущен.

[root@asterisk /usr/local/etc/zabbix32/zabbix/alertscripts]# ls -l
total 4
-rwxrwxrwx 1 zabbix zabbix 700 Jun 13 16:24 zabbix_notify.sh

Цитата:

Vertigo сказал(а):

Пробовать запустить скрипт от этого пользователя.

[zabbix@asterisk /usr/local/etc/zabbix32/zabbix/alertscripts]$ ./zabbix_notify.sh "252352354" dfdfd dfdfd
[zabbix@asterisk /usr/local/etc/zabbix32/zabbix/alertscripts]$
Все ОК.

Цитата:

Vertigo сказал(а):

Ввести токен в поле "Отправить .." и добавить этот способ оповещения в меню "настройки-действия"

Тоже не помогло))

### Option: DBSocket
# Path to MySQL socket.
#
# Mandatory: no
# Default:
DBSocket=/tmp/mysql.sock

Тоже без результата)
[doublepost=1497436397,1497425960][/doublepost]

Цитата:

Vander сказал(а):

[root@asterisk /usr/local/etc/zabbix32/zabbix/alertscripts]# ls -l
total 4
-rwxrwxrwx 1 zabbix zabbix 700 Jun 13 16:24 zabbix_notify.sh

[zabbix@asterisk /usr/local/etc/zabbix32/zabbix/alertscripts]$ ./zabbix_notify.sh "252352354" dfdfd dfdfd
[zabbix@asterisk /usr/local/etc/zabbix32/zabbix/alertscripts]$
Все ОК.

Тоже не помогло))

### Option: DBSocket
# Path to MySQL socket.
#
# Mandatory: no
# Default:
DBSocket=/tmp/mysql.sock

Тоже без результата)

Итак, после множества тщетных попыток, стала ясна одна вещь - Zabbix не передает параметр chat_id в скрипт.

После создания скрипта с таким содержимым:

Код:


Код:
#!/bin/bash

echo $0 $1 $2 $3 $4 $5 > /tmp/tg.log
В логфайле /tmp/tg.log -
[zabbix@asterisk /usr/local/etc/zabbix32/zabbix/alertscripts]$ cat /tmp/tg.log
Original event ID: 91erconnect.gr:icmpping): Up (1)2749482 OKing state Trigger: Ping state
[zabbix@asterisk /usr/local/etc/zabbix32/zabbix/alertscripts]$

Соответственно, буду копать в этом направлении. Может, кто сталкивался с таким?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.