IBM Cloud Docs
集群的日志记录

集群的日志记录

对于群集和应用程序日志,Red Hat® OpenShift® on IBM Cloud® 群集包含内置工具,可帮助您管理单个群集实例的健康状况。 您还可以为多集群分析或其他用例设置 IBM Cloud 工具,如 IBM Cloud Kubernetes Service 集群附加组件:IBM Cloud Logs 和 IBM Cloud Monitoring。

了解日志记录选项

为帮助了解何时使用内置 Red Hat OpenShift 工具或 IBM Cloud 集成,请查看以下信息。

IBM Cloud Logs

可定制的用户界面,用于实时流式传输日志尾迹、实时故障排除问题警报和日志存档。

  • 通过脚本与集群快速集成。
  • 跨集群和云提供者聚集日志。
  • 基于您选择的套餐,具有对日志的历史访问权。
  • 可用性和可伸缩性高,符合行业安全标准。
  • 与 IBM Cloud IAM 集成,以进行用户访问管理。

查看Red Hat OpenShift on IBM Cloud 生成的集群管理事件。 要访问这些日志,请供应 IBM Cloud Logs 的实例。 有关可以跟踪的 IBM Cloud Kubernetes Service 事件类型的更多信息,请参阅 Activity Tracker 事件

内置 Red Hat OpenShift 日志工具

Red Hat OpenShift 网络控制台中的 pod 日志内置视图。

  • 内置 pod 日志未配置为使用持久性存储器。 您必须与云数据库集成,才可备份日志记录数据并使其具有高可用性,以及自行管理日志。

要设置 OpenShift Container Platform Elasticsearch,Fluentd和 Kibana EFK 堆栈,请参阅 安装集群日志记录操作程序。 请记住,工作程序节点必须至少具有 4 个核心和 GB 内存才能运行集群日志记录堆栈。

内置 Red Hat OpenShift 审计日志记录工具

当前不支持用于监视用户启动的活动的 API 审计日志记录。

将日志记录和监控代理迁移到云日志

不再支持可观察性 CLI 插件 ibmcloud obv2/observe 端点。 目前还没有直接替代方案,但您现在可以通过控制台或 Helm 图表管理日志记录和监控集成。 最新步骤:管理 Red Hat OpenShift on IBM Cloud 集群的日志记录代理使用 Red Hat OpenShift 监控代理

您不能再使用 ob 插件、Terraform或API在集群上安装可观察性代理或修改现有配置。 Sysdig代理继续将指标发送到指定的 IBM Cloud Monitoring 实例。 LogDNA 代理无法再发送日志,因为 已被 Logs取代。IBM Cloud Log Analysis IBM Cloud

检查您的可观察性代理

可观察性插件在 ibm-observe 命名空间中安装 Sysdig 和 LogDNA 代理。

  1. 访问 Red Hat OpenShift 集群
  1. 查看 ibm-observe 命名空间中的配置映射。
    kubectl get cm -n ibm-observe
    
    Example output
    
    NAME                                   DATA   AGE
    
    e405f1fc-feba-4350-9337-e7e249af871c   6      25m
    
    f59851a6-ede6-4719-afa0-eee7ce65eeb5   6      20m
    
  1. 可观察性插件安装的可观察性代理使用配置映射,其中包含日志或指标发送到的 IBM Cloud Monitoring 实例或 IBM Cloud Log Analysis 实例的GUID。 如果集群中的代理位于 ibm-observe 以外的命名空间,或者 ibm-observe 中的配置映射未使用实例 GUID 命名,则这些代理未安装 IKS Observability (ob) 插件。

移除可观察性插件代理

  1. 清理守护进程和配置文件。
    kubectl delete daemonset logdna-agent -n ibm-observe
    kubectl delete daemonset sysdig-agent -n ibm-observe
    kubectl delete configmap <logdna-configmap> -n ibm-observe
    kubectl delete configmap <sysdig-configmap> -n ibm-observe
    
  2. 可选:删除命名空间。 在命名空间中没有其他资源可用之后。
    kubectl delete namespace ibm-observe
    

移除插件后,使用集群仪表板、Terraform或手动在集群中重新安装记录和监控代理。

有关更多信息,请参阅以下链接:

使用集群日志记录操作程序

要在 Red Hat OpenShift on IBM Cloud 集群上部署 OpenShift Container Platform 集群日志记录操作程序和堆栈,请参阅 Red Hat OpenShift 文档。 此外,必须更新集群日志记录实例以使用 IBM Cloud Block Storage 存储类。

  1. 准备工作程序池以运行操作程序。

    1. 创建具有 至少 4 个核心,32 GB 内存 和 3 个工作程序节点的类型模板的 VPC经典 工作程序池。
    2. 标注工作程序池
    3. 使工作程序池变暗,以便其他工作负载无法在工作程序池上运行。
  2. 访问 Red Hat OpenShift 集群

  3. 从 Red Hat OpenShift Web 控制台 管理员 透视图中,单击 操作程序> 已安装的操作程序

  4. 单击 集群日志记录

  5. 在“提供的 API”部分的 集群日志记录 磁贴中,单击 创建实例

  6. 修改配置 YAML 以将 ElasticSearch 日志存储器的存储类从 gp2 更改为随集群基础结构提供程序而变化的下列其中一个存储类。

    • 经典集群: ibmc-block-gold
    • VPC 集群: ibmc-vpc-block-10iops-tier
    ...
        elasticsearch:
          nodeCount: 3
          redundancyPolicy: SingleRedundancy
          storage:
            storageClassName: ibmc-block-gold #or ibmc-vpc-block-10iops-tier for VPC clusters
            size: 200G
    ...
    
  7. 修改配置 YAML 以包含先前创建的工作程序池标签和污点的节点选择器和容错。 有关更多信息和示例,请参阅以下 Red Hat OpenShift 文档。 这些示例使用 logging: clo-efk 的标签和容错。

    • Node 选择器。 将节点选择器添加到 Elasticsearch (logstore) 和 Kibana (visualization) 以及 Fluentd (collector.logs) pod。
      spec:
      logStore:
        elasticsearch:
          nodeSelector:
            logging: clo-efk
      ...
      visualization:
        kibana:
          nodeSelector:
            logging: clo-efk
      ...
      collection:
        logs:
          fluentd:
            nodeSelector:
              logging: clo-efk
      
    • 容许。 将节点选择器添加到 Elasticsearch (logstore) 和 Kibana (visualization) 以及 Fluentd (collector.logs) pod。
      spec:
      logStore:
        elasticsearch:
          tolerations:
          - key: app
            value: clo-efk
            operator: "Exists"
            effect: "NoExecute"
      ...
      visualization:
        kibana:
          tolerations:
          - key: app
            value: clo-efk
            operator: "Exists"
            effect: "NoExecute"
      ...
      collection:
        logs:
          fluentd:
            tolerations:
            - key: app
              value: clo-efk
              operator: "Exists"
              effect: "NoExecute"
      
  8. 单击创建

  9. 验证操作程序 Elasticsearch,Fluentd和 Kibana pod 是否都 正在运行