How to edit the link in a slack notification from Grafana
Asked Answered
L

3

33

We are using Grafana 4 and have implemented alert notifications to a slack channel through an Incoming Webhook. The notifications are sent as and wen expected, except that the link in the notification points to the wrong place. For instance, if you take the following test notification:

enter image description here

Then I would expect the link in [Alerting] Test notification to point to the Grafana server. However, the host in that link is localhost. I thought it might be just a problem with test notifications, but this also happens with real notifications: the path will be correct, but the host and port will be wrong (localhost:62033, for full details).

I have tried to find the place where this host/port is configured, with no luck. Any tips so as to how to fix this?

Thanks in advance.

Luting answered 22/12, 2016 at 12:13 Comment(0)
F
32

There are a number of options you can add to your ini file to tell Grafana how to build self-referential urls:

#################################### Server ##############################
[server]
# Protocol (http or https)
protocol = http

# The http port  to use
http_port = 3000

# The public facing domain name used to access grafana from a browser
domain = localhost

# The full public facing url
root_url = %(protocol)s://%(domain)s:%(http_port)s/

You should start by setting the protocol, http_port and domain to the proper values. If you're accessing Grafana on port 80 or 443 and don't want to have the port explicitly in the url you can remove :%(http_port) from the root_url setting.

Festive answered 22/12, 2016 at 15:11 Comment(2)
What's with the "s" after each "%()"? I can't find any documentation about the template syntax you're using.Chang
@Chang that's a syntax defined by the underlying library used to parse the config file, you can read more at ini.unknwon.io/docs/howto/work_with_values#recursive-valuesFestive
P
11

In addition to editing the grafana.ini, if you are running Grafana within a Docker container you can also pass this into the container using environment variables (example uses the default grafana/grafana container).

docker run \ -d \ -p 3000:3000 \ --name=grafana \ -e "GF_SERVER_ROOT_URL=http://grafana.server.name:3000" \ grafana/grafana

Procne answered 15/9, 2017 at 21:26 Comment(0)
H
1

if you are using docker-compose you can pass your domain in the docker-compose.yml like this.

 environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_SERVER_ROOT_URL=http://grafana.server.com
Hoatzin answered 2/9, 2022 at 14:56 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.