Files
ljwx-k8s/GRAFANA-REMOTE-ACCESS.md
2026-02-20 22:50:45 +08:00

5.9 KiB
Raw Permalink Blame History

Grafana 远程访问配置

创建时间: 2025-12-21 状态: ✅ Ingress 已配置


🌐 访问方式

方式一:域名访问(推荐)

访问地址: http://grafana.omniverseai.net

配置步骤:

  1. 在客户端机器上配置 hosts 文件:

    macOS:

    # 1. 编辑 hosts 文件
    sudo vi /etc/hosts
    
    # 添加以下行
    192.168.1.83    grafana.omniverseai.net
    
    # 2. 刷新 DNS 缓存(必须执行)
    sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
    
    # 3. 验证配置
    ping grafana.omniverseai.net
    

    Linux:

    sudo vi /etc/hosts
    
    # 添加以下行
    192.168.1.83    grafana.omniverseai.net
    

    Windows:

    C:\Windows\System32\drivers\etc\hosts
    
    # 添加以下行
    192.168.1.83    grafana.omniverseai.net
    
  2. 浏览器访问:

    http://grafana.omniverseai.net
    
  3. 登录凭据:

    • 用户名: admin
    • 密码: admin123

方式二:IP+端口访问(无需配置 hosts)

访问地址: http://192.168.1.83:31080

说明:

  • Ingress Controller 使用 NodePort 类型
  • HTTP 端口: 31080
  • HTTPS 端口: 31443

浏览器访问:

http://192.168.1.83:31080

注意: 需要在请求头中设置 Host,或者浏览器会返回 404。建议使用方式一。


方式三:通过 curl 测试(验证用)

# 测试 Grafana 是否可访问
curl -H "Host: grafana.omniverseai.net" http://192.168.1.83:31080/api/health

# 预期输出
{"commit":"...","database":"ok","version":"..."}

🔧 Ingress 配置详情

Ingress 资源:

kubectl get ingress -n monitoring grafana

输出:

NAME      CLASS   HOSTS                     ADDRESS           PORTS   AGE
grafana   nginx   grafana.omniverseai.net   192.168.194.177   80      1m

配置文件: monitoring/grafana/grafana-ingress.yaml


🔒 启用 HTTPS(可选)

如果需要 HTTPS 访问,编辑 monitoring/grafana/grafana-ingress.yaml:

  1. 取消注释 cert-manager 和 tls 配置:

    annotations:
      cert-manager.io/cluster-issuer: letsencrypt-prod  # 取消注释
    
    tls:  # 取消注释
    - hosts:
      - grafana.omniverseai.net
      secretName: grafana-tls
    
  2. 重新应用配置:

    kubectl apply -f monitoring/grafana/grafana-ingress.yaml
    
  3. 访问:

    https://grafana.omniverseai.net
    

📊 Dashboard 直达链接

配置 hosts 后,可以直接访问:

Dashboard 直达链接
PostgreSQL http://grafana.omniverseai.net/d/000000039/postgresql-database
Redis http://grafana.omniverseai.net/d/xDLNRKUWz/4b82829
Kubernetes Pods http://grafana.omniverseai.net/d/k8s_views_pods/kubernetes-views-pods

🛠️ 故障排查

Q1: 浏览器显示 "无法访问此网站"

检查:

  1. hosts 文件是否配置正确
  2. 192.168.1.83 是否是正确的主机 IP
  3. 网络是否连通
  4. macOS 是否已刷新 DNS 缓存

验证主机 IP:

# 在 macOS 主机上执行
ifconfig | grep "inet " | grep -v 127.0.0.1

刷新 DNS 缓存(macOS):

sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder

验证 hosts 配置生效:

ping grafana.omniverseai.net
# 应该显示 192.168.1.83

Q2: 浏览器返回 404 Not Found

原因: Ingress Controller 无法匹配 Host header

解决:

  • 确认 hosts 文件已配置 grafana.omniverseai.net
  • 或使用带 Host header 的 curl 测试

Q3: 浏览器返回 503 Service Unavailable

检查 Grafana Pod 状态:

kubectl get pods -n monitoring -l app=grafana
kubectl logs -n monitoring -l app=grafana --tail=50

Q4: 使用 IP:端口访问返回 404

说明: Ingress 需要正确的 Host header

解决: 使用方式一(域名访问),或者:

# 在浏览器中安装 ModHeader 扩展,设置 Host header
# 或使用 curl
curl -H "Host: grafana.omniverseai.net" http://192.168.1.83:31080

🌍 局域网访问

如果需要从局域网其他设备访问:

  1. 在其他设备的 hosts 文件添加:

    macOS 设备:

    sudo vi /etc/hosts
    # 添加
    192.168.1.83    grafana.omniverseai.net
    
    # 刷新 DNS 缓存
    sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
    

    Linux/Windows 设备:

    192.168.1.83    grafana.omniverseai.net
    
  2. 确保防火墙允许访问:

    # macOS 主机上检查防火墙
    sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
    
  3. 访问:

    http://grafana.omniverseai.net
    

📝 相关命令

Kubernetes 相关

# 查看 Ingress 状态
kubectl get ingress -n monitoring

# 查看 Ingress 详情
kubectl describe ingress -n monitoring grafana

# 查看 Ingress Controller 日志
kubectl logs -n infra -l app.kubernetes.io/name=ingress-nginx --tail=100

# 删除 Ingress(如需)
kubectl delete ingress -n monitoring grafana

# 重新应用 Ingress
kubectl apply -f monitoring/grafana/grafana-ingress.yaml

macOS DNS 缓存管理

# 刷新 DNS 缓存(修改 hosts 后必须执行)
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder

# 验证 hosts 配置
ping grafana.omniverseai.net

# 查看 hosts 文件
cat /etc/hosts | grep grafana

# 测试 Grafana 连通性
curl -H "Host: grafana.omniverseai.net" http://192.168.1.83:31080/api/health

✅ 验证清单

  • hosts 文件已配置 grafana.omniverseai.net → 192.168.1.83
  • macOS 已刷新 DNS 缓存(必须)
  • ping grafana.omniverseai.net 能解析到 192.168.1.83
  • 浏览器可以访问 http://grafana.omniverseai.net:31080
  • 可以使用 admin/admin123 登录
  • Dashboard 可以正常显示数据
  • 局域网其他设备可以访问(如需要)

开始使用远程访问的 Grafana 监控吧! 🚀