grafana修改默认端口为80后,启动会报“bind: permission denied”

在这里插入图片描述

解决方法:(三种方式)

  1. 授予grafana二进制权限(推荐使用)

    $ sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server
    
  2. 将端口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

启动成功


  1. 在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访问成功
HTTP协议
websocket协议

参考1:grafana官方文档https://grafana.com/docs/grafana/latest/installation/configuration/

在这里插入图片描述

参考2:官网nginx代理grafana配置

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐