You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes中Graylog日志发送失败及Ingress暴露NodePort问题排查

解决Graylog无法通过HTTPS域名发送GELF UDP日志的问题

问题根源

你遇到的核心问题是Nginx Ingress Controller默认不支持UDP协议,而你当前的Ingress配置试图在HTTP规则里添加UDP端口,这完全无效——Ingress资源本身仅用于处理HTTP/HTTPS流量,UDP需要单独的配置流程。

具体解决方案

要通过域名发送GELF UDP日志,你需要为Nginx Ingress Controller配置UDP转发,步骤如下:

1. 创建UDP转发配置的ConfigMap

这个配置会告诉Ingress Controller,把外部的UDP端口12201转发到Graylog服务的UDP端口:

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-ingress-udp
  namespace: kube-system # 注意:要和Ingress Controller所在命名空间一致
data:
  12201: "default/logs-graylog:12201" # 格式:外部端口:服务所在命名空间/服务名:服务内部UDP端口

2. 更新Ingress Controller的运行参数

确保Ingress Controller加载上面的UDP配置:

  • 如果是手动部署的Ingress Controller,需要在容器启动参数中添加:--udp-configmap=kube-system/nginx-ingress-udp
  • 如果是通过Helm安装的,可在values.yaml中设置:
    controller:
      config:
        udp:
          12201: "default/logs-graylog:12201"
    

3. 暴露Ingress Controller的UDP端口

更新Ingress Controller的Service,添加UDP端口转发:

apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress-controller
  namespace: kube-system
spec:
  ports:
    # 保留原有的TCP端口配置
    - name: http
      port: 80
      protocol: TCP
      targetPort: 80
    - name: https
      port: 443
      protocol: TCP
      targetPort: 443
    # 添加UDP端口
    - name: udp-graylog-gelf
      port: 12201
      protocol: UDP
      targetPort: 12201
  type: LoadBalancer # 或根据你的集群环境用NodePort

4. 修正无效的Ingress配置

删除Ingress中多余的UDP/TCP路径——Ingress只负责Web界面的HTTPS转发:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: logs-graylog-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: graylog
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  tls:
  - hosts:
    - logs.example.io
    secretName: graylog
  rules:
  - host: logs.example.io
    http:
      paths:
      - backend:
          serviceName: logs-graylog
          servicePort: 80

验证与使用

配置完成后:

  • Web界面依然通过https://logs.example.io访问
  • GELF UDP日志需要发送到logs.example.io:12201(确保域名解析指向Ingress Controller的外部IP/节点IP)
  • 确认Graylog已创建监听12201端口的GELF UDP输入

内容的提问来源于stack exchange,提问作者Harsh Manvar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:03:37