zeebe 集成elasticsearch exporter && 添加operate

zeebe 的operate是一个功能比较强大的管理工具,比simple-monitor 有好多方面上的改进

  • 安全,支持用户账户的登陆
  • 界面更友好,界面比较符合开团队工作流引擎的界面
  • 系统监控更加强大,可以为我们提供比较全的系统指标

环境准备

还是老样子使用docker-compose 运行

  • docker-compose 文件
version: "3"
services:
  db:
    image: oscarfonts/h2
    container_name: zeebe_db
    ports:
      - "1521:1521"
      - "81:81"
  operate:
    image: camunda/operate:latest
    ports: 
    - "8089:8080"
    volumes: 
    - "./application.yml:/usr/local/operate/config/application.yml"
  monitor:
    image: camunda/zeebe-simple-monitor
    environment:
      - spring.datasource.url=jdbc:h2:tcp://db:1521/zeebe-monitor
      - io.zeebe.monitor.connectionString=app:26500
      - io.zeebe.monitor.hazelcast.connection=app:5701
    ports:
    - "8080:8080"
  app:
    image: camunda/zeebe
    volumes:
      - ./zeebe-simple-monitor-exporter-0.13.0.jar:/usr/local/zeebe/lib/zeebe-simple-monitor-exporter-0.13.0.jar
      - ./zeebe-hazelcast-exporter-0.2.0.jar:/usr/local/zeebe/lib/zeebe-hazelcast-exporter-0.2.0.jar
      - ./zeebe.cfg.toml:/usr/local/zeebe/conf/zeebe.cfg.toml
    ports:
    - "26500:26500"
    - "26501:26501"
    - "26502:26502"
    - "26503:26503"
    - "26504:26504"
    - "5701:5701"
  elasticsearch:
    image: elasticsearch:6.7.1 
    container_name: elasticsearch
    environment:
    - "discovery.type=single-node"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 9200:9200
      - 9300:9300 # required for Performance Analyzer
  • 说明
    注意es 版本,目前测试6.7 是可以的,6.4 有问题(主要是对于operate的)
    application.yaml 配置
camunda.operate:
  # ELS instance to store Operate data
  elasticsearch:
    # Cluster name
    clusterName: docker-cluster
    # Host
    host: elasticsearch
    # Transport port
    port: 9200
  # Zeebe instance
  zeebe:
    # Broker contact point
    brokerContactPoint: app:26500
  # ELS instance to export Zeebe data to
  zeebeElasticsearch:
    # Cluster name
    clusterName: docker-cluster
    # Host
    host: elasticsearch
    # Transport port
    port: 9200
    # Index prefix, configured in Zeebe Elasticsearch exporter
    prefix: zeebe-record
logging:
  level:
    ROOT: INFO
    org.camunda.operate: DEBUG

#Spring Boot Actuator endpoints to be exposed
management.endpoints.web.exposure.include: health,info,conditions,configprops,prometheus

exporter 配置 zeebe.cfg.toml ,simple-monitor 以及operate 需要

[[exporters]]
id = "simple-monitor"
className = "io.zeebe.monitor.SimpleMonitorExporter"
[exporters.args]
  jdbcUrl = "jdbc:h2:tcp://db:1521/zeebe-monitor"
  driverName = "org.h2.Driver"
  userName = "sa"
  password = ""


[[exporters]]
 id = "hazelcast"
 className = "io.zeebe.hazelcast.exporter.HazelcastExporter"

[[exporters]]
id = "elasticsearch"
className = "io.zeebe.exporter.ElasticsearchExporter"
[exporters.args]
  url = "http://elasticsearch:9200"
  # The driver name of the jdbc driver implementation. Make sure that the implementation is
  # available in the exporter/broker classpath (add it to the broker lib folder).
  # The name is used to load the driver implementation like this
  # Class.forName(configuration.driverName);
  # To configure the amount of records, which has to be reached before the records are exported to
  # the database. Only counts the records which are in the end actually exported.
  #
  # batchSize = 100;

  # To configure the time in milliseconds, when the batch should be executed regardless whether the
  # batch size was reached or not.
  #
  #If the value is less then one, then no timer will be scheduled.
  #
  #batchTimerMilli = 1000

#id = "elasticsearch"
#className = "io.zeebe.exporter.ElasticsearchExporter"
#
# [exporters.args]
# url = "http://localhost:9200"
#
 [exporters.args.bulk]
 delay = 5
 size = 1_000

 [exporters.args.index]
  prefix = "zeebe-record"
  createTemplate = false
  command = false
  event = true
  rejection = false
  deployment = true
  incident = true
  job = true
  message = false
  messageSubscription = false
  raft = false
  workflowInstance = true
  workflowInstanceSubscription = false

启动&&测试

  • 启动
docker-compose up -d
  • 效果
    simple-monitor

    es 信息

    operate 界面:默认账户demo demo
  • 使用
    添加一个流程,github 代码中包含一个简单的,我使用了simple monitor deploy

    operate 界面

  • 问题
    目前operate 有一些异常日志, 解决的办法是注释zeebe.cfg.toml 关于[exporters.args.index] 的配置
 2019-04-30 02:34:04.263 INFO 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Elasticsearch index for ValueType DEPLOYMENT was not found, alias zeebe-record-deployment. Skipping.
operate_1 | 2019-04-30 02:34:04.265 DEBUG 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Latest loaded position for alias [zeebe-record-workflow-instance] and partitionId [0]: 0
operate_1 | 2019-04-30 02:34:04.266 INFO 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Elasticsearch index for ValueType WORKFLOW_INSTANCE was not found, alias zeebe-record-workflow-instance. Skipping.
operate_1 | 2019-04-30 02:34:04.267 DEBUG 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Latest loaded position for alias [zeebe-record-job] and partitionId [0]: 0
operate_1 | 2019-04-30 02:34:04.267 INFO 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Elasticsearch index for ValueType JOB was not found, alias zeebe-record-job. Skipping.
operate_1 | 2019-04-30 02:34:04.268 DEBUG 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Latest loaded position for alias [zeebe-record-incident] and partitionId [0]: 0
operate_1 | 2019-04-30 02:34:04.269 INFO 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Elasticsearch index for ValueType INCIDENT was not found, alias zeebe-record-incident. Skipping.
operate_1 | 2019-04-30 02:34:04.270 DEBUG 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Latest loaded position for alias [zeebe-record-variable] and partitionId [0]: 0
operate_1 | 2019-04-30 02:34:04.271 INFO 6 --- [ Thread-3] o.c.o.z.ZeebeESImporter : Elasticsearch index for ValueType VARIABLE was not found, alias zeebe-record-variable. Skipping.
operate_1 | 2019-04-30 02:34:05.623 DEBUG 6 --- [ Thread-2] o.c.o.e.w.BatchOperationWriter : 0 operations locked
operate_1 | 2019-04-30 02:34:0

说明

operate 是很强大,界面也比较友好,但是目前不是开源的,所以分析问题,可能有点费事。

参考资料

https://github.com/zeebe-io/docker-camunda-operate
https://github.com/rongfengliang/camunda-zeebe-es-exporter-demo-no-auth

原文地址:https://www.cnblogs.com/rongfengliang/p/10794707.html