Estoy usando Grafana en un servidor que no tiene Internet, necesito enviar notificaciones de Telegram, para eso estoy usando el servidor Nginx en otra máquina.

Servidor A:

  • Grafana instalado / funcionando en el puerto 3000.
  • URL de Grafana: www.example.grafana.com
  • IP del servidor (ejemplo): 10.16.216.122
  • Utiliza este webhook para enviar mensajes de telegramas: api.telegram.org
  • También configuré / etc / hosts para enviar esas notificaciones a mi servidor:
#/etc/hosts
10.16.216.16  api.telegram.org

Servidor B:

  • IP del servidor (ejemplo): 10.16.216.16
  • Nginx instalado, con esta configuración:
server {
    listen 80;
    listen [::]:80 http2 ssl;

    server_name http://10.16.216.122;
    location / {
        proxy_pass http://10.16.216.122:3000/;
    }}

Cuando intento enviar la notificación, recibo esto en los registros:

t=2021-10-27T17:10:07+0200 lvl=eror msg="Failed to send webhook" logger=alerting.notifier.telegram error="Post https://api.telegram.org/botXXXXXXXXXX/sendMessage: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" webhook=TelegramTest
t=2021-10-27T17:10:07+0200 lvl=eror msg="failed to send notification" logger=alerting.notifier uid= error="Post https://api.telegram.org/botXXXXXXXXXXXXXX/sendMessage: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
t=2021-10-27T17:10:07+0200 lvl=eror msg="failed to send notification" logger=alerting.notifier uid= error="Post https://api.telegram.org/botXXXXXXXXXXXXXXXXXXX/sendMessage: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
t=2021-10-27T17:10:07+0200 lvl=eror msg="Failed to send alert notifications" logger=context userId=51 orgId=5 uname=XXXX error="Post https://api.telegram.org/botXXXXXXXXXXXXX/sendMessage: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
t=2021-10-27T17:10:07+0200 lvl=eror msg="Request Completed" logger=context userId=51 orgId=5 uname=XXXXX method=POST path=/api/alert-notifications/test status=500 remote_addr=10.26.216.122 time_ms=30006 size=48 referer=http://10.26.216.122/alerting/notification/1/edit

¿Me falta algo en mi configuración en Nginx? ¿El servidor A necesita algo más para funcionar?

answer

Webhooks es una conexión saliente de grafana. El proxy inverso maneja las conexiones entrantes.

Si también desea utilizar un proxy de las conexiones salientes, debe configurar un proxy de reenvío normal y configurar Grafana para usarlo para las solicitudes salientes.