使用 Istio 的 Kubernetes 集群中的 Prometheus
Prometheus in Kubernetes cluster using Istio
我们有一个使用 Istio 的现有 Kubernetes 集群 运行。我正计划添加一个新的 Prometheus pod,并且可以找到很多关于如何做的博客。但是,我注意到 Istio 在 Istio-System 命名空间中已经有一个 Prometheus 服务 运行。
我的主要目标是获得 Grafana 运行 一些基本的监控仪表板。我应该继续使用 Istio 的 Prometheus 服务吗?使用 Istio 的 Prometheus 服务比 运行 我自己的有什么 advantages/disadvantages?
我建议不要共享现有的 istio prometheus,它部署在 istio-system
命名空间中是有原因的。它由 istio 部署和配置。
如果您真的想创建中央共享 prometheus 服务,请使用 prometheus-operator
并为 istio 创建一个 prometheus operator。这仍然需要大量配置工作才能将您的 istio 安装重新集成到这个新的 prometheus 实例中,并且只有在您计划扩展集群数量 运行 时才值得这样做。 2 或 4 个普罗米修斯是一个可控的差距。 20 或 40 没那么多。
我建议最好不要在集群中安装 Prometheus,而是使用 Azure 日志分析。
第 1 步:在 Azure 中创建日志分析
第 2 步:在 kubernetes 集群中安装 OMS 代理,充当集群和日志分析之间的管道
第 3 步:日志将开始从集群移动到日志分析
第 4 步:从 Azure 监控创建日志警报,它将监控集群健康状况
第 5 步:在 grafana 数据源中添加 Log analytics 并创建 Few dashboards
按照以下 link 将日志分析与 Grafana 连接
https://www.ciraltos.com/connect-grafana-to-azure-log-analytics/
按照 link 创建日志分析:https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-oms
Istio 带有 Prometheus 和预配置版本的 Grafana,包括 Prometheus 数据源和 Istio 仪表板。您应该能够通过 运行ning:
确认 Prom 和 Grafana 已经 运行ning 在该命名空间中
$ kubectl -n istio-system 获取 svc prometheus
$ kubectl -n istio-system 获取 svc grafana
(https://istio.io/docs/tasks/telemetry/metrics/using-istio-dashboard/)
它们应该是两种服务的全功能版本,但为了为您的自定义作业配置 Prometheus,您需要查找并更新作为 Istio 的一部分部署的 ConfigMap,其中包括 prometheus.yaml.That 让您打开如果您停止 运行ning Istio,或者如果有人出于 Istio 的原因将 configMap 更新回旧版本,则会丢失这些配置选项。 Istio 的 Grafana 的默认图像也是一个较旧的图像,根据文档,版本为 5.2.3,因此 运行使用自己的图像意味着您可以更新到最新版本。
运行 Prometheus 两次不应该是一个主要问题,特别是如果这两个版本专注于不同的目标(并且可能 运行 在不同的节点),例如,如果你的舞会是专注于节点导出器和应用程序指标,而 Istio Prom 只关注 Istio 资源。这将使它更干净,并且您可以在专用的监控命名空间中部署自己的 Prometheus 和其他工具。 Here’s a blog and video 我写了有关 Prometheus 部署的文章,其中涵盖了命名空间和基本 Prometheus/Node Exporter 部署。
另一种选择是使用 Prometheus 远程存储选项和 Grafana 的远程托管版本。 Metricfire(我为之工作)提供远程存储,并允许您直接通过 Grafana 中的数据源查询该存储,而不是针对本地 Prometheus。您可以将远程存储详细信息添加到任何 Prometheus 配置中,如果您愿意,可以包括 Istio Prom,并将其发送到 Metricfire 以托管和创建仪表板(here’s a blog post 我写了关于在哪里可以找到 prometheus.yaml 用于不同的部署方法,如果有帮助的话)。这将允许您在同一仪表板中并排查看来自两个 Proms 的指标。
您还可以在那里安装 Istio 仪表板 - 您可以在 Grafana 站点找到它们:(https://grafana.com/grafana/dashboards?search=istio)。将您的指标和 Istio 指标放在同一位置意味着您还可以并排查看它们,如果您需要分析任何性能趋势,可以将它们保存更长时间。
我们有一个使用 Istio 的现有 Kubernetes 集群 运行。我正计划添加一个新的 Prometheus pod,并且可以找到很多关于如何做的博客。但是,我注意到 Istio 在 Istio-System 命名空间中已经有一个 Prometheus 服务 运行。
我的主要目标是获得 Grafana 运行 一些基本的监控仪表板。我应该继续使用 Istio 的 Prometheus 服务吗?使用 Istio 的 Prometheus 服务比 运行 我自己的有什么 advantages/disadvantages?
我建议不要共享现有的 istio prometheus,它部署在 istio-system
命名空间中是有原因的。它由 istio 部署和配置。
如果您真的想创建中央共享 prometheus 服务,请使用 prometheus-operator
并为 istio 创建一个 prometheus operator。这仍然需要大量配置工作才能将您的 istio 安装重新集成到这个新的 prometheus 实例中,并且只有在您计划扩展集群数量 运行 时才值得这样做。 2 或 4 个普罗米修斯是一个可控的差距。 20 或 40 没那么多。
我建议最好不要在集群中安装 Prometheus,而是使用 Azure 日志分析。
第 1 步:在 Azure 中创建日志分析 第 2 步:在 kubernetes 集群中安装 OMS 代理,充当集群和日志分析之间的管道 第 3 步:日志将开始从集群移动到日志分析 第 4 步:从 Azure 监控创建日志警报,它将监控集群健康状况 第 5 步:在 grafana 数据源中添加 Log analytics 并创建 Few dashboards
按照以下 link 将日志分析与 Grafana 连接 https://www.ciraltos.com/connect-grafana-to-azure-log-analytics/
按照 link 创建日志分析:https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-oms
Istio 带有 Prometheus 和预配置版本的 Grafana,包括 Prometheus 数据源和 Istio 仪表板。您应该能够通过 运行ning:
确认 Prom 和 Grafana 已经 运行ning 在该命名空间中$ kubectl -n istio-system 获取 svc prometheus
$ kubectl -n istio-system 获取 svc grafana
(https://istio.io/docs/tasks/telemetry/metrics/using-istio-dashboard/)
它们应该是两种服务的全功能版本,但为了为您的自定义作业配置 Prometheus,您需要查找并更新作为 Istio 的一部分部署的 ConfigMap,其中包括 prometheus.yaml.That 让您打开如果您停止 运行ning Istio,或者如果有人出于 Istio 的原因将 configMap 更新回旧版本,则会丢失这些配置选项。 Istio 的 Grafana 的默认图像也是一个较旧的图像,根据文档,版本为 5.2.3,因此 运行使用自己的图像意味着您可以更新到最新版本。
运行 Prometheus 两次不应该是一个主要问题,特别是如果这两个版本专注于不同的目标(并且可能 运行 在不同的节点),例如,如果你的舞会是专注于节点导出器和应用程序指标,而 Istio Prom 只关注 Istio 资源。这将使它更干净,并且您可以在专用的监控命名空间中部署自己的 Prometheus 和其他工具。 Here’s a blog and video 我写了有关 Prometheus 部署的文章,其中涵盖了命名空间和基本 Prometheus/Node Exporter 部署。
另一种选择是使用 Prometheus 远程存储选项和 Grafana 的远程托管版本。 Metricfire(我为之工作)提供远程存储,并允许您直接通过 Grafana 中的数据源查询该存储,而不是针对本地 Prometheus。您可以将远程存储详细信息添加到任何 Prometheus 配置中,如果您愿意,可以包括 Istio Prom,并将其发送到 Metricfire 以托管和创建仪表板(here’s a blog post 我写了关于在哪里可以找到 prometheus.yaml 用于不同的部署方法,如果有帮助的话)。这将允许您在同一仪表板中并排查看来自两个 Proms 的指标。
您还可以在那里安装 Istio 仪表板 - 您可以在 Grafana 站点找到它们:(https://grafana.com/grafana/dashboards?search=istio)。将您的指标和 Istio 指标放在同一位置意味着您还可以并排查看它们,如果您需要分析任何性能趋势,可以将它们保存更长时间。