对接配置日志
使用前提
对接日志系统,需要在csd.yaml文件中配置能力插件依赖功能声明,具体参考服务包扩展目录 capabilitiesrequirements示例。
对接原理
OSC内置了ops-operator插件,通过webhook的方式拦截标签匹配的工作负载(包括Deployment、StatefulSet或DaemonSet)资源,为其注入日志采集和上报功能,日志最终被采集上报至华为应用运维管理AOM。
如果需要对接日志系统,需要确保服务容器内部有输出日志文件,OSC服务会将日志文件挂载到外部供AOM采集上报,从而达到对接的效果。
对接流程
- 获取OSC规范开发的服务包,如果只有原生的helm或OperatorFramework包,可以参考章节服务包转换进行转换。
- 在目录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结尾的日志并对接
文件:只对接指定的文件
- 在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
- 如下为一个具体的应用配置日志样例进行说明。
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