【问题标题】:Monitoring for an application running in kubernetes监控在 Kubernetes 中运行的应用程序
【发布时间】:2022-01-28 18:12:35
【问题描述】:

我有一个在 kubernetes 上运行的应用程序(它是一个在云上运行的集群),并且想要为该应用程序设置监控和日志记录。设置有多种可能性。这样做的最佳做法是什么,例如推荐的方法或行业标准?

  • kubernetes 集群内的 prometheus 监控设置:安装在集群内的 prometheus-operator helm chart 可以监控整个集群,包括应用程序。
  • 使用 docker-compose 部署的外部 prometheus + grafana 设置。(但我怀疑外部设置是否可以正确到达 k8s 以抓取所有指标)
  • prometheus 联合设置,其中一个外部 prometheus 设置从 k8s 的内部 prometheus 设置获取指标。

谁能帮我提供一些关于最佳实践的建议?

【问题讨论】:

    标签: kubernetes prometheus monitoring


    【解决方案1】:

    这完全取决于您拥有多少个集群。如果您有一个集群,您要在其上监控的应用程序将是最佳选择选​​项 1:

    • kubernetes 集群内的 prometheus 监控设置:安装在集群内的 prometheus-operator helm chart 可以监控整个集群,包括应用程序。

    这种解决方案的优点包括可能简单快速的配置,此外,您将所有东西(应用程序和 Prometheus)都放在一个地方,并且不需要新的集群来监控另一个。 Here你可以找到示例教程。

    但是,如果您计划扩展到多个集群,或者您已经需要监控多个集群,选项 3 将是最佳选择:

    • prometheus 联合设置,其中一个外部 prometheus 设置从 k8s 的内部 prometheus 设置获取指标。

    借助此解决方案,您可以将所有指标集中在一个地方,无论您需要监控的 number of clusters 是什么:

    通常,它用于实现可扩展的 Prometheus 监控设置或将相关指标从一个服务的 Prometheus 提取到另一个服务。

    您可以找到有关Prometheus federation in KubernetesMonitoring multiple federated clusters with Prometheus - the secure way 的示例教程

    【讨论】:

    • 非常感谢您的建议!另外,我有一个疑问。在实际被监控的集群中设置监控堆栈是一个好习惯吗?在集群的基础架构级别中断期间不会出现问题吗?
    • @AnjanaAK,如果您在集群级别出现故障并且在其中进行监控,那么一切都会失败。这种类型的方法适用于小型(非生产)解决方案,其中您有一个集群,您可以通过监控来研究集群中的行为以及应用程序。如果您需要监控集群是否正常运行,请尝试我描述的第二种方法。
    • 好的,谢谢。为什么external prometheus + grafana setup deployed with docker-compose这个方法不是首选?
    • 事实上,您已经自己提出了这个问题的答案。 :) 很难正确运行它。此外,如果它在外部某个地方,您必须非常仔细地考虑安全问题,以免有人入侵。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多