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/

当尝试将Grafana默认端口从3000修改为80时,会出现'bind: permission denied'错误。解决方法包括:1) 授予Grafana二进制文件权限;2) 通过Nginx重定向端口;3) 使用Nginx作为反向代理,保持Grafana在3000端口运行,同时配置HTTP和WebSocket代理。配置完成后,验证Nginx反向代理设置的成功。
1830

被折叠的 条评论
为什么被折叠?



