更新时间:2024-06-13 GMT+08:00
分享

对接配置日志

使用前提

对接日志系统,需要在csd.yaml文件中配置能力插件依赖功能声明,具体参考服务包扩展目录 capabilitiesrequirements示例。

对接原理

OSC内置了ops-operator插件,通过webhook的方式拦截标签匹配的工作负载(包括Deployment、StatefulSet或DaemonSet)资源,为其注入日志采集和上报功能,日志最终被采集上报至华为应用运维管理AOM。

如果需要对接日志系统,需要确保服务容器内部有输出日志文件,OSC服务会将日志文件挂载到外部供AOM采集上报,从而达到对接的效果。

对接流程

  1. 获取OSC规范开发的服务包,如果只有原生的helm或OperatorFramework包,可以参考章节服务包转换进行转换。
  2. 在目录manifests/vendor下新增配置文件log_config.yaml

    配置规则如下所示:

    apiVersion: osc.io/v1
    kind: LogConfig
    metadata:
      name: kafka-log
    spec:
      logConfigItems:
        - labelSelector:
            app.kubernetes.io/component: kafka
            app.kubernetes.io/version: "20.9.3"
          logPaths:
            - /var/kafka/
            - /var/kafka/access/kafka-access.log

    具体参数说明如下:

    参数名

    含义

    类型

    是否必填

    备注

    apiVersion

    配置版本

    string

    固定为osc.io/v1

    kind

    配置种类

    string

    固定为LogConfig

    metadata.name

    配置名

    string

    日志配置默认名称

    须知:

    目前对于log_config.yaml文件,一个服务包内有且仅有一个,目前该名字没有实际业务意义。在服务包下发时会根据服务包名称等,由OSC自动生成一个在Kubernetes集群该Namespace下面唯一的名字。

    labelSelector

    匹配实例的标签

    string数组

    同一operator CRD下也可能存在多个工作负载,需要通过label selector与应用实例label相关联。

    此label要求和用户需要对接日志的工作负载中的label字段完全匹配,从而保证ops应用可以扫描到并进行绑定日志

    logPaths

    日志路径或文件

    string数组

    容器内日志路径,可填多个,但不允许存在包含关系。

    日志内的路径支持目录和文件

    目录:扫描此目录下的所有为log,out,trace结尾的日志并对接

    文件:只对接指定的文件

  3. 在manifests/xxx_csd.yaml文件中增加引用日志能力的配置。

    apiVersion: osc.io/v1beta1
    kind: CustomServiceDefinition
    metadata:
      name: helmrelease-csd
    spec:
      CRDRef:
        apiVersion: apiextensions.k8s.io/v1
        kind: CustomResourceDefinition
      capabilityRequirements:
        - apiVersion: osc.io/v1
          kind: LogConfig
          defaultPath: vendor/log_config.yaml

  4. 如下为一个具体的应用配置日志样例进行说明。

    apiVersion: osc.io/v1
    kind: LogConfig
    metadata:
      name: hwfka-log
    spec:
      logConfigItems:
        ## 同一operator CRD下也可能存在多个工作负载,
        ## 需要通过label selector将应用实例与相应的ops配置相关联
        - labelSelector:
            osc.huawei.com/service_provider: hwfka
            osc.huawei.com/component: broker
          crd: hwfkas.osctest.huawei.com
          logPaths:
            - /opt/kafka/logs
        - labelSelector:
            osc.huawei.com/service_provider: hwfka
            osc.huawei.com/component: zookeeper
          crd: hwfkas.osctest.huawei.com
          logPaths:
            - /opt/kafka/logs
        - labelSelector:
            osc.huawei.com/service_provider: hwfka
            osc.huawei.com/component: kafkamanager
          crd: hwfkas.osctest.huawei.com
          logPaths:
            - /opt/cmak-3.0.0.5/logs

相关文档