diff --git a/README.md b/README.md index bdbafda6..885c2a10 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ --- -![kafka-manager-logo](./docs/assets/images/common/logo_name.png) +![logikm_logo](https://user-images.githubusercontent.com/71620349/125024570-9e07a100-e0b3-11eb-8ebc-22e73e056771.png) **一站式`Apache Kafka`集群指标监控与运维管控平台** -阅读本README文档,您可以了解到滴滴Logi-KafkaManager的用户群体、产品定位等信息,并通过体验地址,快速体验Kafka集群指标监控与运维管控的全流程。
若滴滴Logi-KafkaManager已在贵司的生产环境进行使用,并想要获得官方更好地支持和指导,可以通过[`OCE认证`](http://obsuite.didiyun.com/open/openAuth),加入官方交流平台。 +阅读本README文档,您可以了解到滴滴Logi-KafkaManager的用户群体、产品定位等信息,并通过体验地址,快速体验Kafka集群指标监控与运维管控的全流程。 ## 1 产品简介 @@ -73,24 +73,21 @@ ![image](https://user-images.githubusercontent.com/5287750/111266722-e531d800-8665-11eb-9242-3484da5a3099.png) -微信加群:关注公众号 Obsuite(官方公众号) 回复 "Logi加群" - -## 4 OCE认证 -OCE是一个认证机制和交流平台,为滴滴Logi-KafkaManager生产用户量身打造,我们会为OCE企业提供更好的技术支持,比如专属的技术沙龙、企业一对一的交流机会、专属的答疑群等,如果贵司Logi-KafkaManager上了生产,[快来加入吧](http://obsuite.didiyun.com/open/openAuth) +微信加群:添加mike_zhangliang的微信号备注Logi加群或关注公众号 云原生可观测性 回复 "Logi加群" -## 5 项目成员 +## 4 项目成员 -### 5.1 内部核心人员 +### 4.1 内部核心人员 `iceyuhui`、`liuyaguang`、`limengmonty`、`zhangliangmike`、`nullhuangyiming`、`zengqiao`、`eilenexuzhe`、`huangjiaweihjw`、`zhaoyinrui`、`marzkonglingxu`、`joysunchao` -### 5.2 外部贡献者 +### 4.2 外部贡献者 `fangjunyu`、`zhoutaiyang` -## 6 协议 +## 5 协议 `kafka-manager`基于`Apache-2.0`协议进行分发和使用,更多信息参见[协议文件](./LICENSE) diff --git a/container/dockerfiles/Dockerfile b/container/dockerfiles/Dockerfile index 1ffe27e4..fa1850e3 100644 --- a/container/dockerfiles/Dockerfile +++ b/container/dockerfiles/Dockerfile @@ -1,43 +1,28 @@ FROM openjdk:16-jdk-alpine3.13 -LABEL author="yangvipguang" - -ENV VERSION 2.3.1 - -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories -RUN apk add --no-cache --virtual .build-deps \ - font-adobe-100dpi \ - ttf-dejavu \ - fontconfig \ - curl \ - apr \ - apr-util \ - apr-dev \ - tomcat-native \ - && apk del .build-deps - -RUN apk add --no-cache tini - - +LABEL author="fengxsong" +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add --no-cache tini +ENV VERSION 2.4.2 +WORKDIR /opt/ ENV AGENT_HOME /opt/agent/ - -WORKDIR /tmp - -COPY $JAR_PATH/kafka-manager.jar app.jar -# COPY application.yml application.yml ##默认使用helm 挂载,防止敏感配置泄露 - COPY docker-depends/config.yaml $AGENT_HOME COPY docker-depends/jmx_prometheus_javaagent-0.15.0.jar $AGENT_HOME ENV JAVA_AGENT="-javaagent:$AGENT_HOME/jmx_prometheus_javaagent-0.15.0.jar=9999:$AGENT_HOME/config.yaml" ENV JAVA_HEAP_OPTS="-Xms1024M -Xmx1024M -Xmn100M " ENV JAVA_OPTS="-verbose:gc \ - -XX:MaxMetaspaceSize=256M -XX:+DisableExplicitGC -XX:+UseStringDeduplication \ - -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:-UseContainerSupport" + -XX:MaxMetaspaceSize=256M -XX:+DisableExplicitGC -XX:+UseStringDeduplication \ + -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:-UseContainerSupport" + +RUN wget https://github.com/didi/Logi-KafkaManager/releases/download/v${VERSION}/kafka-manager-${VERSION}.tar.gz && \ + tar xvf kafka-manager-${VERSION}.tar.gz && \ + mv kafka-manager-${VERSION}/kafka-manager.jar /opt/app.jar && \ + rm -rf kafka-manager-${VERSION}* + EXPOSE 8080 9999 ENTRYPOINT ["tini", "--"] -CMD ["sh","-c","java -jar $JAVA_AGENT $JAVA_HEAP_OPTS $JAVA_OPTS app.jar --spring.config.location=application.yml"] +CMD [ "sh", "-c", "java -jar $JAVA_AGENT $JAVA_HEAP_OPTS $JAVA_OPTS app.jar --spring.config.location=application.yml"] \ No newline at end of file diff --git a/container/helm/Chart.lock b/container/helm/Chart.lock new file mode 100644 index 00000000..04958b2d --- /dev/null +++ b/container/helm/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: mysql + repository: https://charts.bitnami.com/bitnami + version: 8.6.3 +digest: sha256:d250c463c1d78ba30a24a338a06a551503c7a736621d974fe4999d2db7f6143e +generated: "2021-06-24T11:34:54.625217+08:00" diff --git a/container/helm/Chart.yaml b/container/helm/Chart.yaml index 7161f735..088abfb0 100644 --- a/container/helm/Chart.yaml +++ b/container/helm/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: didi-km -description: A Helm chart for Kubernetes +description: Logi-KafkaManager # A chart can be either an 'application' or a 'library' chart. # @@ -21,4 +21,9 @@ version: 0.1.0 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "1.16.0" +appVersion: "2.4.2" +dependencies: + - condition: mysql.enabled + name: mysql + repository: https://charts.bitnami.com/bitnami + version: 8.x.x diff --git a/container/helm/charts/mysql-8.6.3.tgz b/container/helm/charts/mysql-8.6.3.tgz new file mode 100644 index 00000000..c5fde140 Binary files /dev/null and b/container/helm/charts/mysql-8.6.3.tgz differ diff --git a/container/helm/templates/configmap.yaml b/container/helm/templates/configmap.yaml index ffc75ec5..b487f2bd 100644 --- a/container/helm/templates/configmap.yaml +++ b/container/helm/templates/configmap.yaml @@ -1,7 +1,17 @@ +{{- define "datasource.mysql" -}} +{{- if .Values.mysql.enabled }} + {{- printf "%s-mysql" (include "didi-km.fullname" .) -}} +{{- else -}} + {{- printf "%s" .Values.externalDatabase.host -}} +{{- end -}} +{{- end -}} + apiVersion: v1 kind: ConfigMap metadata: - name: km-cm + name: {{ include "didi-km.fullname" . }}-configs + labels: + {{- include "didi-km.labels" . | nindent 4 }} data: application.yml: | server: @@ -17,9 +27,9 @@ data: name: kafkamanager datasource: kafka-manager: - jdbc-url: jdbc:mysql://xxxxx:3306/kafka-manager?characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false - username: admin - password: admin + jdbc-url: jdbc:mysql://{{ include "datasource.mysql" . }}:3306/{{ .Values.mysql.auth.database }}?characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false + username: {{ .Values.mysql.auth.username }} + password: {{ .Values.mysql.auth.password }} driver-class-name: com.mysql.jdbc.Driver main: allow-bean-definition-overriding: true @@ -54,7 +64,10 @@ data: sync-topic-enabled: false # 未落盘的Topic定期同步到DB中 account: + # ldap settings ldap: + enabled: false + authUserRegistration: false kcm: enabled: false diff --git a/container/helm/templates/deployment.yaml b/container/helm/templates/deployment.yaml index 4754b53e..80ab2c29 100644 --- a/container/helm/templates/deployment.yaml +++ b/container/helm/templates/deployment.yaml @@ -42,6 +42,10 @@ spec: protocol: TCP resources: {{- toYaml .Values.resources | nindent 12 }} + volumeMounts: + - name: configs + mountPath: /tmp/application.yml + subPath: application.yml {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} @@ -54,3 +58,7 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + volumes: + - name: configs + configMap: + name: {{ include "didi-km.fullname" . }}-configs diff --git a/container/helm/values.yaml b/container/helm/values.yaml index a5f49e40..cbb6f3d4 100644 --- a/container/helm/values.yaml +++ b/container/helm/values.yaml @@ -5,13 +5,14 @@ replicaCount: 1 image: - repository: docker.io/yangvipguang/km + repository: docker.io/fengxsong/logi-kafka-manager pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. - tag: "v18" + tag: "v2.4.2" imagePullSecrets: [] nameOverride: "" +# fullnameOverride must set same as release name fullnameOverride: "km" serviceAccount: @@ -59,10 +60,10 @@ resources: # resources, such as Minikube. If you do want to specify resources, uncomment the following # lines, adjust them as necessary, and remove the curly braces after 'resources:'. limits: - cpu: 50m + cpu: 500m memory: 2048Mi requests: - cpu: 10m + cpu: 100m memory: 200Mi autoscaling: @@ -77,3 +78,16 @@ nodeSelector: {} tolerations: [] affinity: {} + +# more configurations are set with configmap in file template/configmap.yaml +externalDatabase: + host: "" +mysql: + # if enabled is set to false, then you should manually specified externalDatabase.host + enabled: true + architecture: standalone + auth: + rootPassword: "s3cretR00t" + database: "logi_kafka_manager" + username: "logi_kafka_manager" + password: "n0tp@55w0rd" diff --git a/docs/开源版与商业版特性对比.md b/docs/开源版与商业版特性对比.md index e9d9dbd4..853efcdb 100644 --- a/docs/开源版与商业版特性对比.md +++ b/docs/开源版与商业版特性对比.md @@ -19,9 +19,9 @@ | 模块 |对比指标 |底层依赖 |开源版 |商业版 |备注 | | --- | --- | --- | --- | --- | --- | -| 服务发现 | bootstrap地址变更对客户端无影响 | | | 是| | -| 安全管控 | 身份鉴权(appID+password) | | | 是 | | -| | 权限鉴权(Topic+appID) | | | 是 | | +| 服务发现 | bootstrap地址变更对客户端无影响 | Gateway | | 是| | +| 安全管控 | 身份鉴权(appID+password) | Gateway | | 是 | | +| | 权限鉴权(Topic+appID) | Gateway | | 是 | | | 指标监控 | Topic实时流量、历史流量 | | 是 | 是 | | | | Broker实时耗时、历史耗时 | 引擎 | | 是 | | | | 分区落盘 | 引擎 | | 是 | | @@ -49,7 +49,7 @@ **总结** -Logi-KafkaManager的商业特性体现在在滴滴Kafka Gateway、滴滴Kafka引擎、内部沉淀出的资源治理专家经验、可定制化的健康分算法。 +滴滴LogiKM的商业特性体现在滴滴Kafka Gateway、滴滴Kafka引擎、内部沉淀出的资源治理专家经验、可定制化的健康分算法。 从场景来看,滴滴Logi-KafkaManager的开源版本在kafka集群运维、的Topic管理、监控告警、资源治理等kafka核心场景都充分开源用户的使用需求并且有着出色的表现。而商业版相较于开源版在安全管控、流量管控、更丰富的指标监控、资源治理专家经验的具有明显提升,更加符合企业业务需求。 除此之外,商业版还可根据企业实际需求对平台源码进行定制化改造,并提供运维保障,稳定性保障,运营保障等服务。 diff --git a/kafka-manager-extends/kafka-manager-bpm/src/main/java/com/xiaojukeji/kafka/manager/bpm/Converts.java b/kafka-manager-extends/kafka-manager-bpm/src/main/java/com/xiaojukeji/kafka/manager/bpm/Converts.java index 956491b2..39d80369 100644 --- a/kafka-manager-extends/kafka-manager-bpm/src/main/java/com/xiaojukeji/kafka/manager/bpm/Converts.java +++ b/kafka-manager-extends/kafka-manager-bpm/src/main/java/com/xiaojukeji/kafka/manager/bpm/Converts.java @@ -19,7 +19,6 @@ public class Converts { orderDO.setApprover(""); orderDO.setOpinion(""); orderDO.setExtensions(orderDTO.getExtensions()); - orderDO.setType(orderDTO.getType()); return orderDO; } } \ No newline at end of file