监控和日志记录
使用 Red Hat Developer Hub 中的监控和日志记录工具跟踪性能并捕获见解
摘要
第 1 章 日志级别 复制链接链接已复制到粘贴板!
日志记录是监控和调试软件应用程序的基本部分。它可让您了解应用程序运行时如何运行,并可帮助您检测和诊断问题。通过调整日志级别,您可以控制日志中显示的信息量和类型,范围从高度详细的诊断输出到最重要的错误。通过这种灵活性,您可以自定义日志输出以匹配当前的要求,无论是在开发、测试还是生产环境中。
您可以从以下日志级别中选择,按详细程度列出:
-
调试:详细的信息,仅在故障排除时很有用。 -
info:有关应用程序操作的一般信息。这是默认级别。 -
warn:指示可能需要注意的潜在问题或情况。 -
Error: 指定发生的错误,但可能无法阻止应用程序继续进行。 -
Critical:指示需要立即关注且可能阻止应用程序正常工作的关键错误。
您可以通过设置日志级别来控制日志记录的详细程度。日志级别决定了在控制台中显示的事件的最小严重性级别。例如,如果日志级别设置为 'info',则忽略严重性级别为 'debug' 的事件。
要提高日志级别,您可以将 LOG_LEVEL 环境变量设置为更高的严重性级别,如 'warn' 或 'error'。但是,如果现有代码主要以较低严重性级别(如 'debug' 或 'info')发送日志,则增加日志级别可能不会产生更多输出。在这种情况下,将代码中的日志记录语句调整为使用更高的严重性级别来查看更多输出。
除了设置 LOG_LEVEL 环境变量之外,不需要额外的步骤,但其效率取决于代码中的现有日志记录语句。
在 OpenShift Container Platform 中,指标通过 /metrics 规范名称下的 HTTP 服务端点公开。您可以创建一个 ServiceMonitor 自定义资源(CR),从用户定义的项目中的服务端点提取指标。
您可以从 OpenShift Container Platform Web 控制台的 Developer 视角为 Operator 安装的 Red Hat Developer Hub 实例启用和查看指标。
先决条件
- 您的 OpenShift Container Platform 集群启用了 用户定义的项目的监控。
- 已使用 Red Hat Developer Hub Operator 在 OpenShift Container Platform 上安装 Red Hat Developer Hub。
-
已安装 OpenShift CLI(
oc)。
流程
目前,Red Hat Developer Hub Operator 默认不支持创建 ServiceMonitor 自定义资源(CR)。您必须执行以下步骤来创建 ServiceMonitor CR,以从端点提取指标。
将
ServiceMonitorCR 创建为 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意spec.selector.matchLabels配置必须与 RHDH 安装的标签匹配。运行以下命令来应用
ServiceMonitorCR:oc apply -f <filename>
oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 从 OpenShift Container Platform web 控制台中的 Developer 视角,选择 Observe 视图。
- 点 Metrics 选项卡查看 Red Hat Developer Hub pod 的指标。
-
从 OpenShift Container Platform Web 控制台中的 Developer 视角,点 Project > Services,再验证
backstage-developer-hub的标签。
您可以从 OpenShift Container Platform Web 控制台的 Developer 视角为 Red Hat Developer Hub Helm 部署启用和查看指标。
先决条件
- 您的 OpenShift Container Platform 集群启用了 用户定义的项目的监控。
- 已使用 Helm Chart 在 OpenShift Container Platform 上安装 Red Hat Developer Hub。
流程
- 从 OpenShift Container Platform Web 控制台中的 Developer 视角,选择 Topology 视图。
点 Red Hat Developer Hub Helm Chart 的 overflow 菜单,然后选择 Upgrade。
在 Upgrade Helm Release 页面中,选择 Configure via 中的 YAML view 选项,然后在 YAML 中配置
metrics部分,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 单击 Upgrade。
验证
- 从 OpenShift Container Platform web 控制台中的 Developer 视角,选择 Observe 视图。
- 点 Metrics 选项卡查看 Red Hat Developer Hub pod 的指标。
您可以将 Red Hat Developer Hub 配置为使用 Amazon CloudWatch 进行实时监控和 Amazon Prometheus 进行全面的日志记录。这在在 Amazon Web Services (AWS)基础架构上托管 Developer Hub 时非常方便。
3.1. 使用 Amazon Prometheus 监控 复制链接链接已复制到粘贴板!
您可以将 Red Hat Developer Hub 配置为使用 Amazon Prometheus 进行全面的日志记录。Amazon Prometheus 从具有特定 pod 注解的 pod 中提取数据。
3.1.1. 先决条件 复制链接链接已复制到粘贴板!
- 为 Elastic Kubernetes Service (EKS)集群配置了 Prometheus。
- 为 Prometheus 工作区创建一个 Amazon 受管服务。
- 已将 Prometheus 配置为导入 Developer Hub 指标。
- 您可以将 Prometheus 指标嵌套到创建的工作区中。
要启用日志记录到 Amazon Prometheus,您可以使用 Red Hat Developer Hub Operator 配置所需的 pod 注解。
流程
作为 Red Hat Developer Hub Operator 的管理员,编辑默认配置以添加 Prometheus 注解,如下所示:
# Update OPERATOR_NS accordingly OPERATOR_NS=rhdh-operator kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}"# Update OPERATOR_NS accordingly $ OPERATOR_NS=rhdh-operator $ kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在配置映射中查找
deployment.yaml键,并将注解添加到spec.template.metadata.annotations字段中,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存您的更改。
验证
验证提取是否正常工作:
使用
kubectl端口将 Prometheus 控制台转发到本地机器,如下所示:kubectl --namespace=prometheus port-forward deploy/prometheus-server 9090
$ kubectl --namespace=prometheus port-forward deploy/prometheus-server 9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开 Web 浏览器并导航到
http://localhost:9090以访问 Prometheus 控制台。 -
监控相关指标,如
process_cpu_user_seconds_total。
要启用日志记录到 Amazon Prometheus,您可以使用 Red Hat Developer Hub Helm Chart 配置所需的 pod 注解。
流程
要注解 backstage pod 进行监控,请按如下所示更新您的
values.yaml文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证提取是否正常工作:
使用
kubectl端口将 Prometheus 控制台转发到本地机器,如下所示:kubectl --namespace=prometheus port-forward deploy/prometheus-server 9090
kubectl --namespace=prometheus port-forward deploy/prometheus-server 9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开 Web 浏览器并导航到
http://localhost:9090以访问 Prometheus 控制台。 -
监控相关指标,如
process_cpu_user_seconds_total。
3.2. 使用 Amazon CloudWatch 记录 复制链接链接已复制到粘贴板!
Red Hat Developer Hub 中的日志记录依赖于 Winston 库。
3.2.1. 使用 Red Hat Developer Hub Operator 配置应用程序日志级别 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Developer Hub Operator 配置应用程序日志级别。
流程
通过在自定义资源中包含环境变量
LOG_LEVEL来修改日志记录级别,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. 使用 Red Hat Developer Hub Helm Chart 配置应用程序日志级别 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Developer Hub Helm Chart 配置应用程序日志级别。
流程
通过将环境变量
LOG_LEVEL添加到 Helm Chartvalues.yaml文件中来修改日志记录级别:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. 从 Amazon CloudWatch 检索日志 复制链接链接已复制到粘贴板!
先决条件
- Cloudwatch Container Insights 用于捕获 Amazon Elastic Kubernetes Service 的日志和指标。如需更多信息,请参阅 Amazon Elastic Kubernetes Service 文档的日志记录。
- 要捕获日志和指标,请 在集群中安装 Amazon CloudWatch Observability EKS 附加组件。在 Container Insights 设置后,您可以使用 Logs Insights 或 Live Tail 视图访问容器日志。
Cloudwatch 命名所有容器日志的日志组,其方式如下:
/aws/containerinsights/<cluster_name>/application
/aws/containerinsights/<cluster_name>/applicationCopy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
要从 Developer Hub 实例检索日志,请运行查询,例如:
fields @timestamp, @message, kubernetes.container_name | filter kubernetes.container_name in ["install-dynamic-plugins", "backstage-backend"]
fields @timestamp, @message, kubernetes.container_name | filter kubernetes.container_name in ["install-dynamic-plugins", "backstage-backend"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
监控和日志记录是在 Red Hat Developer Hub 中管理和维护 Azure Kubernetes Services (AKS)的完整方面。借助 Managed Prometheus Monitoring 和 Azure Monitor 集成等功能,管理员可以高效地监控资源利用率、诊断问题并确保其容器化工作负载的可靠性。
4.1. 启用 Azure Monitor 指标 复制链接链接已复制到粘贴板!
要启用受管 Prometheus 监控,请在 az aks create 或 az aks update 命令中使用 -enable-azure-monitor-metrics 选项,具体取决于您要创建新集群还是更新现有集群,例如:
az aks create/update --resource-group <your-ResourceGroup> --name <your-Cluster> --enable-azure-monitor-metrics
az aks create/update --resource-group <your-ResourceGroup> --name <your-Cluster> --enable-azure-monitor-metrics
上一命令安装指标附加组件,它会收集 Prometheus 指标。使用上一命令,您可以通过两个原生 Azure Monitor 指标启用对 Azure 资源的监控。您还可以在 Monitoring → Insights 下查看端口的结果。如需更多信息,请参阅使用 Azure Monitor 监控 Azure 资源。
另外,Managed Prometheus 服务和 Azure Monitor 的指标可以通过 Azure Managed Grafana 服务访问。如需更多信息,请参阅链接 Grafana 工作区 部分。
默认情况下,Prometheus 使用最小 ingesting 配置集,它优化了 ingestion 卷,并为提取频率、目标和指标设置默认配置。默认设置可以通过自定义配置进行自定义。Azure 提供了各种方法,包括使用不同的 ConfigMap 来提供提取配置和其他指标附加组件设置。如需有关默认配置的更多信息,请参阅 Azure Monitor 中的默认 Prometheus metrics 配置,以及 Azure Monitor 托管服务中的自定义提取 Prometheus 指标 文档。
4.2. 为监控配置注解 复制链接链接已复制到粘贴板!
您可以在 Helm 部署和 Operator 支持的部署中配置用于监控 Red Hat Developer Hub 特定指标的注解。
- Helm 部署
要注解 backstage pod 进行监控,请按如下所示更新您的
values.yaml文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Operator 支持的部署
流程
作为 Operator 的管理员,编辑默认配置以添加 Prometheus 注解,如下所示:
# Update OPERATOR_NS accordingly OPERATOR_NS=rhdh-operator kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}"# Update OPERATOR_NS accordingly OPERATOR_NS=rhdh-operator kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 ConfigMap 中找到
deployment.yaml键,并将注解添加到spec.template.metadata.annotations字段中,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存您的更改。
验证
要验证提取是否正常工作,请导航到对应的 Azure Monitor Workspace,并在 Monitoring → Metrics 下查看指标。
4.3. 使用 Azure Kubernetes Services (AKS)查看日志 复制链接链接已复制到粘贴板!
您可以访问 Kubernetes 对象生成的实时数据日志,并在 AKS 中收集容器 Insights 中的日志数据。
先决条件
- 您已在 AKS 上部署了 Developer Hub。
如需更多信息,请参阅在 Microsoft Azure Kubernetes Service 上安装 Red Hat Developer Hub。
流程
- 查看 Developer Hub 实例的实时日志
- 进入 Azure Portal。
-
搜索资源组 <
your-ResourceGroup> 并找到您的AKS 集群 <your-Cluster>。 - 从菜单中选择 Kubernetes resources → Workloads。
-
选择 &
lt;your-rhdh-cr>-developer-hub(在 Helm Chart 安装中)或<your-rhdh-cr>-backstage(在 Operator 支持的安装)部署。 - 单击左侧菜单中的 Live Logs。
选择 pod。
注意必须只有一个 pod。
收集并显示实时日志数据。
- 从容器引擎查看实时日志数据
- 进入 Azure Portal。
-
搜索资源组 <
your-ResourceGroup> 并找到您的AKS 集群 <your-Cluster>。 - 从菜单中选择 Monitoring → Insights。
- 转至 容器 选项卡。
- 找到 backend-backstage 容器,并点击它查看由 Container Engine 生成的实时日志数据。