SprintBoot - 无法禁用敏感度量标准

时间:2017-05-24 20:30:30

标签: spring spring-boot kubernetes spring-boot-actuator prometheus

我目前正在K8S群集中工作,并且暴露了以下终点。

http://172.16.46.16:8080/websocket/metrics

现在我的应用程序是与Sprint Boot相关的。为了点击此URL,它当前是敏感的,这意味着它需要用户/名称密码。

根据documentation,我可以关闭指标上的敏感功能,这样我就不需要用户名/通行证来授权自己了。由于我不想在我的配置中对此进行硬编码,因此我在运行时传递了所需的参数。

我的K8S控制器文件是::

# cat websocket-replication-controller.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: websocket-backend-controller
spec:
  replicas: 2
  selector:
    name: websocket-backend
  template:
    metadata:
      labels:
        name: websocket-backend
      annotations:
        prometheus.io/scrape: 'true'
        prometheus.io/path: /websocket/metrics
        prometheus.io/port: '8080'
    spec:
      containers:
      - name: websocket-backend
        image: armdocker.rnd.ericsson.se/proj_csdp/websocket_backend:3.0.6
        imagePullPolicy: IfNotPresent
        ports:
          - containerPort: 8080
        livenessProbe:
          httpGet:
            port: 8080
            path: /websocket/health
          initialDelaySeconds: 300
          timeoutSeconds: 30
        volumeMounts:
          - name: nfs
            mountPath: "/vault"
        command:
          - java
          - -Duser.timezone=UTC
          - -jar
          - -Dspring.profiles.active=clustered
          - websocket.jar
          - --endpoints.metrics.sensitive=false
      volumes:
        - name: nfs
          nfs:
            server: kube-nfs
            path: "/kubenfs/vault"
            readOnly: true

最终命令如下:

java -Duser.timezone=UTC -jar -Dspring.profiles.active=clustered websocket.jar --endpoints.metrics.sensitive=false

以这种方式启动应用程序似乎并没有超出度量敏感行为。我仍然得到server returned HTTP status 401 Unauthorized

enter image description here

我能够访问我的pod并查找任何错误,但我没有看到任何错误。

我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:0)

尝试禁用Spring Security for management --management.security.enabled=false,命令:

java -Duser.timezone=UTC -jar -Dspring.profiles.active=clustered websocket.jar 
     --endpoints.metrics.sensitive=false
     --management.security.enabled=false

在这种情况下,最好在自定义端口上公开管理端点,例如:management.port=9081

您还可以启用安全性并提供默认用户和密码:

management.security.enabled=true
security.user.name=user
security.user.password=pa55word

请阅读Spring文档:Monitoring and management over HTTP