grafana修改默认端口为80后,启动会报“bind: permission denied”
解决方法:(三种方式)
-
授予grafana二进制权限(推荐使用)
$ sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server
-
将端口80重定向到Grafana端口3000
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
然后,修改配置文件/etc/grafana/grafana.ini中端口为80,并重启
$ service grafana-server restart
- 在Grafana面前放一个Nginx,让它代理请求Grafana(可以不修改Grafana默认3000端口)
3.1 配置HTTP代理
grafana使用HTTP协议。配置如下:location ~/grafana/
server {
listen 80;
server_name localhost;
# Proxy Grafana HTTP connections.
location ~/grafana/ {
proxy_pass http://localhost:3000;
}
}
说明:样例中 nginx 和 Grafana 部署在同一台服务器。所以服务器ip用localhost。
3.2 配置WebSocket代理
grafana部分实时消息使用WebSocket协议。配置如下:
1) map $http_upgrade $connection_upgrade
2)location ~/grafana/api/live
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name localhost;
# Proxy Grafana HTTP connections.
location ~/grafana/ {
proxy_pass http://localhost:3000;
}
# Proxy Grafana Live WebSocket connections.
location ~/grafana/api/live {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
}
}
3.3 验证nginx反向代理grafana访问成功
参考1:grafana官方文档https://grafana.com/docs/grafana/latest/installation/configuration/