首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes上的Telegraf :错误:服务"telegraf“无效: spec.ports:必需值

Kubernetes上的Telegraf :错误:服务"telegraf“无效: spec.ports:必需值
EN

Stack Overflow用户
提问于 2021-06-23 14:17:17
回答 1查看 523关注 0票数 1

我想做什么?

我试图在我的Kubernetes集群中部署telegraf,以便我可以使用telegraf的Prometheus输入插件从特定的URL读取数据(度量),并使用telegraf的输出文件插件将这些度量写入文件中。

我做了什么?

我使用telegraf 舵图在kubernetes上部署telegraf。我更改了以下配置更改。原始telegraf文件:

代码语言:javascript
复制
config:
  agent:
    interval: "10s"
    round_interval: true
    metric_batch_size: 1000
    metric_buffer_limit: 10000
    collection_jitter: "0s"
    flush_interval: "10s"
    flush_jitter: "0s"
    precision: ""
    debug: false
    quiet: false
    logfile: ""
    hostname: "$HOSTNAME"
    omit_hostname: false
  processors:
    - enum:
        mapping:
          field: "status"
          dest: "status_code"
          value_mappings:
            healthy: 1
            problem: 2
            critical: 3
  outputs:
    - influxdb:
        urls:
          - "http://influxdb.monitoring.svc:8086"
        database: "telegraf"
  inputs:
    - statsd:
        service_address: ":8125"
        percentiles:
          - 50
          - 95
          - 99
        metric_separator: "_"
        allowed_pending_messages: 10000
        percentile_limit: 1000

我对它所做的修改:

代码语言:javascript
复制
config:
  outputs:
    - file:
        files:
          - "stdout"
          - "metrics.out" 
        data_format: influx  
  inputs:
    - prometheus:
        - urls:
            url: "http://ipaddr:80/metrics"

当我应用舵图时,我得到了错误:服务"telegraf“无效: spec.ports: Required value和部署失败。

代码语言:javascript
复制
chandhana@Azure:~/clouddrive/PromExpose$ helm install telegraf influxdata/telegraf -f telegraf-values.yaml
Error: Service "telegraf" is invalid: spec.ports: Required value

如果我在更改YAML配置上有任何错误,请帮助我,因为我没有为telegraf的输入和输出插件的yaml格式找到任何资源。参考附加链接:电传.conf文件

EN

回答 1

Stack Overflow用户

发布于 2021-06-25 10:40:01

您忘了在values.yaml中启用度量,默认情况下它是禁用的。正确部分是

代码语言:javascript
复制
metrics:
  health:
    enabled: true
  collect_memstats: false

telegraf-values.yaml更改为

代码语言:javascript
复制
config:
  agent:
    interval: "10s"
    round_interval: true
    metric_batch_size: 1000
    metric_buffer_limit: 10000
    collection_jitter: "0s"
    flush_interval: "10s"
    flush_jitter: "0s"
    precision: ""
    debug: false
    quiet: false
    logfile: ""
    hostname: "$HOSTNAME"
    omit_hostname: false
  processors:
    - enum:
        mapping:
          field: "status"
          dest: "status_code"
          value_mappings:
            healthy: 1
            problem: 2
            critical: 3
  outputs:
    - file:
        files:
          - "stdout"
          - "metrics.out" 
        data_format: influx 
  inputs:
    - prometheus:
        - urls:
            url: "http://ipaddr:80/metrics"

metrics:
  health:
    enabled: true
  collect_memstats: false

结果:

代码语言:javascript
复制
helm install telegraf influxdata/telegraf -f values.yaml
NAME: telegraf
LAST DEPLOYED: Fri Jun 25 10:35:05 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
To open a shell session in the container running Telegraf run the following:

  kubectl exec -i -t --namespace default $(kubectl get pods --namespace default -l app.kubernetes.io/name=telegraf -o jsonpath='{.items[0].metadata.name}') /bin/sh

To view the logs for a Telegraf pod, run the following:

  kubectl logs -f --namespace default $(kubectl get pods --namespace default -l app.kubernetes.io/name=telegraf -o jsonpath='{ .items[0].metadata.name }')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68101641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档