LINUX.ORG.RU

Оповещения графаны через телегу, как?

 , ,


0

1

Разрабы, в рот компот, говорят «юзайте системные настройки прокси». Учитывая что это на шлюзе VPN, всякие wireguard'ы и tinc'и с контейнерами, то нахрен это там не надо, и так 14 интерфейсов и маршрутизация как в ящике с проводами. Что делать, как быть? Есть вариант засунуть графану в контейнер, ток хз как что, надо думать, метрики идут с vps (там и прокси, там же и tinc есть), localhost и openwrt в локалке. Может есть вариант конкретно графановые извещения завернуть на проксю?

Ответ на: комментарий от eternal_sorrow

>Может есть вариант конкретно графановые извещения завернуть на проксю?

Какие именно слова в этой фразе вызывают у тебя затруднения? Ладно, для небыстрых придётся разжевать:

На debian 9 192.168.3.2 стоит collectd-influxdb-grafana (я надеюсь не надо будет потом повторять, что этот подкроватный сервер так же собирает и свои метрики ведь упоминается collectd?). Так же там есть wireguard и tinc для доступа в локальную сеть 192.168.3.0/24. Я упоминаю о VPN так как не задумывался, что произойдёт с функциональностью данного сервера как VPN-шлюза, схем маршрутизации не рисовал и как collectd с vps будет забрасывать данные не прикидывал. Далее, есть vps (она одна, мы всё про неё говорим) с которой collectd отправляет метрики на influxdb (это который на .3.2, далее serv). serv и vps соединяются через tinc, дабы не пробрасывать порты лишние и шифровать метрики, да и если vpn упадёт, то я думаю будет не до графиков красивых. Ещё в .3.0/24 есть openwrt на котором есть collectd

Как отправить оповещение от grafana через telegram, учитывая то, что grafana сама не умеет прокси, а выставлять проксирование на всю систему нежелательно из-за роли сервера (samba, VPN-шлюз в локалку).

TepakoT ()
Ответ на: комментарий от eternal_sorrow

Бота? Да ладно. Конечно бота, кого же ещё. У меня есть бот для курла, курл замечательно умеет через прокси, использую. И для grafan'ы создал. Внимание, вопрос. Ты вообще понял о чём речь идёт? Ты grafan'у хоть видел? Сюда внимательно посмотри: http://www.rigmonitor.app/blog/wp-content/uploads/2018/05/telegram.png (картинка с просторов) Token бота видишь? Видишь. Chat ID видишь? Видишь. Настройки прокси видишь?

Надо проксификатор какой-то. Смотрю что за RedSocks Хотя по хорошему надо чтоб grafana сама такое делала, curl же умеет.

TepakoT ()
Последнее исправление: TepakoT (всего исправлений: 1)
Ответ на: комментарий от TepakoT

О как. Надо разобраться и попробовать. Если я правильно ошибаюсь, то это весь Go завернёт на прокси. Гуглится по запросу «go sendWebRequestSync proxy», логично.



Go programs understand environment variables http_proxy and no_proxy, but that's not enough because go get uses source control managers for retrieving code. So you have to set HTTP proxy settings for your SCM too. Use this for Mercurial and this for Git.

http_proxy value can be like http://user:password@host:port/. User, password, and port parts are optional. no_proxy is a comma-separated list of servers that should not be connected through proxy. Its value can be like foo.com,bar.net:4000.

You can set these environment variables in your bash_profile, but if you want to limit their usage to go, you can run it like this:

$ http_proxy=127.0.0.1:8080 go get code.google.com/p/go.crypto/bcrypt

If that's what you always want, set this alias to avoid typing proxy part every time:

$ alias go='http_proxy=127.0.0.1:8080 go'

From now on you can use go normally, but it uses your HTTP proxy.
Сначала запостил, а потом прочитал. Это не то.

О как: «Add GOPROXY variable name and Variable value as your proxy in the System variable. This worked for me.»

TepakoT ()
Последнее исправление: TepakoT (всего исправлений: 2)

Ну а зачем SCM-то, Графана на Го написана, а значит переменные окружения HTTP_PROXY, HTTPS_PROXY и NO_PROXY используются для HTTP(S)-трафика Графаны. Курл понимает те же самые переменные. И так далее.

А SCM нужна только если эту Графану из сырцов собирать. Простыми словами как там Гит будет запрашивать исходники - через прокси или без - не имеет значения. Потому что он не нужен.

kostyarin_ ()

Подними отдельній прокси для телеги, а в графане укажи урл уже прокси.

Прокси для телеги можно поднять в контейнере без проблем.

У людей так и работает система.

PunkoIvan ★★ ()
Ответ на: комментарий от PunkoIvan

Да Графана не умеет в отдельные прокси. Либо всё через прокси - либо всё на прямую. Т.е Графана будет запрашивать данные от InfluxDB (или что там), через те же самые прокси в Германии или США, напрмер, вместо локалхоста.

kostyarin_ ()

Как вариант: форкнуть Графану, посмотреть на вот эту вот строчку

https://github.com/grafana/grafana/blob/master/pkg/services/alerting/notifier...

Добавив перенаправление на локальный форвардер, типа:

url = "http://127.0.0.1:8087/?q=" + netURL.QueryEscape(url)

При этом, учитывая пространство имён внутри функции, сверху в импортах придётся добавить

    netURL "net/url"
Ну и поднять локально на потру 8087 форвардер, который будет декодировать это Ку и делать по нему запрос, а потом возвращать ответ. Точнее не делать запрос, а перебрасывать принятый POST. Типа того.

Способ простой, но ужасно топроный.

Во всяком случае: или так, ли гнать весь трафик через ту проксю, или заниматься более углублённым программированием, чтобы всё выглядело чики-бом.

Пробелма в том, что автор Графаны не собирается что-то из этого принимать в ветку, так что смысла стараться особого я не вижу.

kostyarin_ ()
Ответ на: комментарий от kostyarin_

Еще раз - зачем графане уметь в прокси?

Опишу подробнее.

В списке интеграций вібираешь вебхук вместо телеграма.

Вместо адреса api.telegram.org вбиваешь свой адрес прокси, которій потом направит твой запрос куда надо.

Конечно, прокси должен находиться в нормальной стране, чтоб доступ к телеграму біл.

Должно взлететь.

На крайний случай, ТС, шли оповещения на міло и заюзай ifttt/integromat для форварда почті в телегу.

PunkoIvan ★★ ()
Ответ на: комментарий от eternal_sorrow

Не имею представления, что это, как и большинство здесь, я думаю.

Ну вопрос-то конкретный был, как убедить этот фронтэнд оправлять через прокси, ведь умеет в телегу, но не до конца.

А SCM нужна только если эту Графану из сырцов собирать.

Да вот мне и показалось, что это не вариант. Но это ж надо в вопросах разбираться к которым я никаким боком. Go этот.

Правда с переменными тогда весь трафик полетит через прокси. Включая запросы к InfluxDB или что там.
Т.е Графана будет запрашивать данные от InfluxDB (или что там), через те же самые прокси в Германии или США, напрмер, вместо локалхоста.

Вот и я думаю, что контейнер для InfluxDB и grafana не поможет. Был вариант завернуть это в туда, но.

Подними отдельній прокси для телеги, а в графане укажи урл уже прокси.

У меня на vps danted и shadowsocks. Как это поможет?

Способ простой, но ужасно топроный.

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

Пробелма в том, что автор Графаны не собирается что-то из этого принимать в ветку

Вот-вот. УНВР Может графану исключить из этой цепочки. Надо посмотреть, вариантов много. А, там вообще на телегу извещений нет, блин.

вібираешь вебхук вместо телеграма.

А отправится-то что? Явно не телегино сообщение. Это мне сервер нужен который POST вебхуковый перенаправит куда-нибудь, в телегу, пуш или смс. Но ведь есть уже готовое! Должно работать.

На крайний случай, ТС, шли оповещения на міло и заюзай ifttt/integromat

Нет, лучше девушку-оператора посадить мониторить.

TepakoT ()
Ответ на: комментарий от TepakoT

Подождите, куда-то всех понесло в высшие материи, неужели нельзя тупо всё для IP API.телега завернуть на локальный редиректор любой, да хоть ssh туннель? Mangle там всякие.

TepakoT ()
Последнее исправление: TepakoT (всего исправлений: 2)
Ответ на: комментарий от PunkoIvan

Тупо перенаправляет. Если это POST для телегоAPI, то можно. Но что отправляет webhook в grafan'е? Я сильно сомневаюсь, что именно телегино, там ещё тринадцать способов оповещение (из них я знаю только телегу и емэйл, там вообще слова незнакомые. А, нет, slack ещё знаю).

Способы оповещения в графане: https://b.radikal.ru/b40/1903/5d/6a6878721b43.jpg

Настройки вебхука в графане: https://b.radikal.ru/b31/1903/e6/7c8650f030ad.jpg

TepakoT ()
Последнее исправление: TepakoT (всего исправлений: 1)
Ответ на: комментарий от TepakoT

@PunkoIvan дело говорит. Сделай «прокси» у которого с одной стороны вебхук, который ты зарегаешь в графане, а с другой стороны - работа с апи телеграмма. Разместить это, конечно, придется в другой стране или, как раз, пустить через прокси. Уже это, а не графану.

aol ★★★★★ ()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от aol

«прокси» у которого с одной стороны вебхук

Эмм... А с mangle с нуля не проще разобраться? :) Тем более, что в графане в телегу и картинка отправляется, эта возможность будет утеряна. Ладно, посмотрю webhook и mangle, что быстрее и понятнее.

Обидно костыли городить из-за упёртости разраба. Хочется отказаться от такого продукта.

TepakoT ()
Последнее исправление: TepakoT (всего исправлений: 1)
Ответ на: комментарий от aol

Это не из-за упертости разраба, а из-за одного надзорного органа, блокирующего телеграмм :) не подменяй первопричины )

Блокировка разлиных мессенджеров в различных частях света - проблема не из новых. И РКН тут не один. Это камень в огород того разраба. Типа, Графана - бла-бла-бла, для Европы и США. Я думаю, что понятие Опен Сорц требует расширенной трактовки )))

kostyarin_ ()
Ответ на: комментарий от kostyarin_

Астанавитесь! Зачем усложнять? Мы ещё не все ресурсы использовали. На сервере с grafana есть интерфейс tincmesh с ip 10.10.11.3 который tinc'ом связан с vps (10.10.11.1). Imho это самый короткий путь до демократии. Надо графану уговорить работать с tincmesh. Не факт конечно, что я потом попаду на вебморду графаны через 192.168.3.2:3000, но маршруты есть и openwrt 10.10.11.2 в локалке пингуется.

Сейчас хотел отmanglить на микротике (шлюз для сервера) пакеты до api., потом маршрут до openwrt который тоже в mesh, потом понял, что херню творю...

TepakoT ()
Ответ на: комментарий от TepakoT

Дай кому-то денег, пусть настроят :)

Какая разница, ЧТО отправляет вебхук в графане, скажи?

Там отправляется json payload скорее всего, что корректно должно схавать телеграмом.

Отправляешь на УРЛ своего прокси, свой проки перенаправляет на api.telegram.org

Думаю, ті можеш даже для вебхука использовать адрес вида 127.0.0.1:прокси_порт

«Остальніе слова» означают штуки для ентерпрайза преимущественно.

PunkoIvan ★★ ()
Ответ на: комментарий от PunkoIvan

Думаю, ті можеш даже для вебхука использовать адрес вида 127.0.0.1:прокси_порт

Ньет Молотофф.

error=«parse 94.94.94.94:60080: first path segment in URL cannot contain colon» webhook=webhook

Я так понимаю нужен прокси на 443. А на 443 у меня sslh разбрасывает входящие на softether и ssh.

TepakoT ()
Ответ на: комментарий от TepakoT

в треде уже проскочило верное решение. поднимаешь впску, которая редиректит трафик на 443 порту на IP api.telegram.org и просто резолвишь (любым способом, через локальный DNS или просто через /etc/hosts) api.telegram.org на IP VPS.

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от TepakoT

на сервере ничего никуда не надо редиректить. просто пропиши в хостс <IP VPS> api.telegram.org.

а перед этим купи отдельную VPS и настрой на ней перенаправление

eternal_sorrow ★★★★★ ()
Последнее исправление: eternal_sorrow (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow

Да понял я идею, но нахрена мне две vps? VPS+пять компов, два маршрутизатора, full mesh, щас придумаю что-нибудь. Нужен-то только 443 свободный порт который может в api.telegram.org.

TepakoT ()
Ответ на: комментарий от eternal_sorrow

У богатых свои причуды. А я целых 12 баксов выкладываю в год. Не, ну реально зачем несколько? На одной всё настроил и забыл как. Через два года залазишь в настройки и такое лицо Ж8-( )

TepakoT ()
Ответ на: комментарий от TepakoT

Я сделяль! Всё как вы сказали, hosts же, да, всё правильно? В /etc/tinc/tincmesh/hosts в конфиг vps внёс Subnet = 149.154.167.0/24. На сервере с графаной в /etc/tinc/tincmesh/tinc-up добавил строку ip route add 149.154.167.0/24 dev $INTERFACE Тестовое сообщение прошло. Всем огромное спасибо за участие и советы.

TepakoT ()
Последнее исправление: TepakoT (всего исправлений: 1)