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
() автор топика
Ответ на: комментарий от TepakoT

очевидно использовать бота. если тебе только отправлять оповещения, то api можно хоть курлом дёргать. и прокси к нему присобачить если нужно

eternal_sorrow ★★★★★
()

Есть консольная утилита, пускает через [роскомнадзор] всё, что запускается из консоли.

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

И что это за НЁХ, спрашиваю? Где она хранится, по-твоему, откуда берётся? Если я из tty curl дёрну, она учтётся? нет — значит, ни фига не «системная».

svinarenko
()
Ответ на: комментарий от 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_ ★★
()

Правда с переменными тогда весь трафик полетит через прокси. Включая запросы к InfluxDB или что там.

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_ ★★
()
Ответ на: комментарий от svinarenko

Носки там с середины 17-го года. Схему главное указать, как socks5. Да, только пятые, кажется.

export http_proxy=socks5://127.0.0.1:1080
export https_proxy=socks5://127.0.0.1:1080
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)
Ответ на: комментарий от TepakoT

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

А прокси что делает?

PunkoIvan ★★★★
()
Ответ на: комментарий от 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)
Ответ на: комментарий от TepakoT

Mangle там всякие.

Или прокси-редиректор у которого правила как в firewall, чтобы последнее правило было noproxy *.

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

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

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

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

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

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

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

Ты имеешь в виду [роскомнадзор]? С производительностью проблем не возникнет?

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

В локалке микрот DNS сервером, может с ним поиграть? Вырулить апи.телега.орг на vps. А на vps через rinetd выкинуть на апи.телега.орг, прости господи.

TepakoT
() автор топика
Ответ на: комментарий от 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 ★★★★★
()
Ответ на: комментарий от eternal_sorrow

DAEMON_OPTS="--user sslh --listen 94.94.94.94:443 --tls 127.0.0.1:4443 --ssh 127.0.0.1:65522 --pidfile /var/run/sslh/sslh.pid" На 4443 softether. Я не могу редиректнуть https, он уже перенаправляется на SE.

TepakoT
() автор топика
Ответ на: комментарий от 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)
Ответ на: комментарий от TepakoT

Глобальній совет - не вешай никакие сервері на динамический диапазон.

parse 94.94.94.94:60080

PunkoIvan ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.