EOS Low-Code Platform 8 EOS Low-Code Platform 8
  • 8.3.2 (opens new window)
  • 8.3.1 (opens new window)
  • 8.3LA1 (opens new window)
  • 8.2GA (opens new window)
产品简介
学习指南
更新说明
安装与集成
初见EOS
低代码开发手册
专业代码开发手册
专题场景实战
公共服务框架
应用运行治理
升级手册
常见问题
  • 云原生服务环境搭建
  • _1、环境准备
  • _2、安装介质介绍
  • _3、环境搭建
  • 安装elasticsearch
  • 安装zookeeper
  • 安装kafka
  • 安装logstash
  • 安装skywalking
  • 安装filebeat
  • _4、安装验证

# 云原生服务环境搭建

# 1、环境准备

  • 系统信息
名称 说明
操作系统 CentOS Linux release 7.9.2009
系统架构 x86_64
安装模式 最小化模式安装
  • 相关软件
软件 说明
8.3.3介质1 EOS_Platform_8.3.3_Private_Medium_Service.tar.gz
JDK jdk-8u162-linux-x64.tar.gz
JDK jdk-17-linux-x64-bin.tar.gz
  • 安装准备工作
    • 确保所有被安装服务器时区和时间一致,时间不一致会影响Elasticsearch和Skywalking等信息无法采集的情况出现。
      • 在各个服务器上安装时间同步命令工具:yum install ntp -y
      • 使用 ntpdate 命令,从时间服务器上进行同步,例如:ntpdate cn.pool.ntp.org
    • 确保 Selinux 调整为 disabled 或者 permissive。修改 /etc/selinux/config 文件需要重新启动主机。
    • 确保防火墙被关闭。
      • 停止防火墙 systemctl stop firewalld
      • 主机启动时禁用防火墙 systemctl disable firewalld

# 2、安装介质介绍

  • EOS_Platform_8.3.3_Private_Medium_Service.tar.gz介质包含中间件应用,目的在于搭建日志中心及应用程序性能监视中心,具体内容如下:
名称 说明 jdk环境要求 端口 默认账户 依赖组件配置
skywalking(应用程序性能监视工具) skywalking-apm需要部署在jdk17环境下 8080、12800、11800 无需配置
ELK(多应用组成的日志中心) elasticsearch 需要部署在jdk17环境下 9200、9300 V7以下版本没有,高版本可自定义设置
logstash 需要部署在jdk17环境下 5000、9600 无需配置 Elasticsearch、kafka:logstash/config/eos-logstash.conf(不支持加密配置)
kafka 需要部署在jdk8环境下 9092 无需配置 zookeeper:/elk/kafka/config/server.properties(不支持加密配置)
zookeeper 需要部署在jdk8环境下 2181、2888、3888 默认不开启,可自定义配置

注:elasticsearch和logstash介质中自带jdk17,启动时会自动加载自带的jdk17,使用自带的jdk需添加权限:

chowm -R 用户:组 /目录:
如: chown -R es:es /home/es/elk(先将目录权限给指定用户)

chmod -R 755 /目录:
如: chmod -R 755 /home/es/elk(再给目录读写权限)

# 3、环境搭建

# 安装Elasticsearch

  • Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎。当然Elasticsearch并不仅仅是Lucene那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:

    • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
    • 实时分析的分布式搜索引擎。
    • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
  • Elasticsearch安装:请部署在jdk17环境下,Elasticsearch介质中带有jdk17,启动时会自动加载自带的jdk17

    • 修改系统配置(root用户执行以下命令) 修改/etc/security/limits.conf文件 增加配置

      vi /etc/security/limits.conf 
      #在文件最后,增加如下配置:
      * soft nofile 65536
      * hard nofile 65536
      # 执行以下命令加载配置文件
      sysctl --system
      #在/etc/sysctl.conf文件最后添加一行 vm.max_map_count=655360 添加完毕之后,执行命令: sysctl -p
      vi /etc/sysctl.conf
      vm.max_map_count=655360
      sysctl -p
      
    • 先新建一个用户(出于安全考虑,elasticsearch默认不允许以root账号运行)

      # 创建组
      groupadd es
      # 创建用户
      useradd -m -g es es
      # 设置密码
      passwd es
      # 切换es用户
      su es
      
    • 上传安装包至/home/es目录下并解压到指定目录 tar -zxvf EOS_Platform_8.3.3_Private_Medium_Service.tar.gz -C /home/es/eos8

      解压后目录结构如下:

      ml

    • 修改Elasticsearch配置文件 文件路径{安装位置}/elk/elasticsearch/config/elasticsearch.yml,修改network.host的值为{安装机器IP}

      # 修改es的ip地址
      network.host={安装机器IP}
      

      在/elk/elasticsearch/config/jvm.options文件,修改elasticsearch的JVM参数,默认为8g,根据自己机器配置,建议至少8G,否则可能导致无法启动。

      -Xms10g
      -Xmx10g
      
    • 启动Elasticsearch

      # 进入bin目录
      cd  {安装位置}/elk/elasticsearch/bin
      # 启动Elasticsearch
      ./startup.sh
      #ES日志需要有模板,通过命令可以加载,模板文件在elasticsearch/template 文件夹中
      cd  {安装位置}/elk/elasticsearch/template
      curl -H "Content-Type:application/json" -XPUT 'http://{安装机器IP}:9200/_index_template/eos-classic-log' -d @eos-classic-log-template.json
        curl -H "Content-Type:application/json" -XPUT 'http://{安装机器IP}:9200/_index_template/eos-dap-app-log' -d @eos-dap-app-log-template.json
        curl -H "Content-Type:application/json" -XPUT 'http://{安装机器IP}:9200/_index_template/eos-dap-trace-log' -d @eos-dap-trace-log-template.json
        curl -H "Content-Type:application/json" -XPUT 'http://{安装机器IP}:9200/_index_template/eos-wf-log' -d @eos-wf-log-template.json
      
    • 验证安装 访问ES

    • es常用命令 http://{安装机器IP}:9200/_cat/health 检查ES数据库的索引状态(百分比) http://{安装机器IP}:9200/_cat/indices 查看ES数据库的索引列表(green可用,yellow正在创建,red不可用)。

# 安装zookeeper

  • 安装zookeeper:请部署在jdk8环境下

    zookeeper安装文件安装介质包中已包含,路径为elk/zookeeper zk

    • 修改配置(配置文件路径:zookeeper/conf/zoo.cfg) zf

    • 启动zookeeper 进入zookeeper/bin目录,执行以下命令 ./zkServer.sh start

    • 查看zookeeper是否启动成功 ./zkServer.sh status

      ./zkServer.sh status
      ZooKeeper JMX enabled by default
      Using config: /opt/primeton/elk4eos/elk/zookeeper/bin/../conf/zoo.cfg
      Mode: standalone
      

# 安装kafka

  • 安装kafka:请部署在jdk8环境下

    路径 {安装位置}/elk/kafka

    # 编辑{安装位置}/elk/kafka/config/server.properties文件
    # 修改server.properties文件中以下内容,配置kafka监听端口及ip地址
    listeners=PLAINTEXT://{安装机器IP}:9092
    advertised.listeners=PLAINTEXT://{安装机器IP}:9092
    # 修改zookeeper地址
    zookeeper.connect=127.0.0.1:2181/kafka
    #修改日志文件路径
    log.dirs=/tmp/kafka-logs
    
  • 启动kafka

    #进入kafka/bin目录,执行以下命令
    ./startup.sh
    # 初始化
    ./kafka-topics.sh --create --zookeeper 127.0.0.1:2181/kafka --replication-factor 1 --partitions 1 --topic eos-log
    #如果报already exists,执行删除
    ./kafka-topics.sh  --delete --zookeeper 127.0.0.1:2181/kafka   --topic eos-log
    
  • 验证 ./kafka-topics.sh --zookeeper 127.0.0.1:2181/kafka --list

# 安装logstash

  • 安装logstash:请部署在jdk17环境下,logstash介质中带有jdk17,启动时会自动加载自带的jdk17

文件路径 {安装位置}/elk/logstash logstash从kafka中获取日志数据,经过处理后发送至elastisearch中,所以需要在此处配置kafka和elasticsearch的地址。

# 修改以下文件
logstash/config/eos-logstash.conf
# 修改kafka地址
input {
    kafka {
        bootstrap_servers => ["{安装机器IP}:9092"]
        topics_pattern => "eos-.*"
        group_id => "eos-logstash"
        client_id => "eos-logstash"
        auto_offset_reset => "earliest"
        codec => json {
            charset => "UTF-8"
        }
        consumer_threads => 3
        decorate_events => true
    }
}
# 修改elasticsearch地址
output {
  elasticsearch {
      hosts => ["{安装机器IP}:9200"]
      index =>  "%{[fields][eos-log-type]}-%{+YYYY.MM.dd}"
      document_type => "log"
  }
  • 启动logstash 进入logstash/bin目录,执行以下命令 ./startup.sh

注:如果启动报:No configuration found in the configured sources. 可将startup.sh中的nohup sh logstash -f ../config/eos-logstash.conf >> ../logs/out.log 2>&1 & 改为:nohup sh logstash -f {logstash安装路径}/config/eos-logstash.conf >> ../logs/out.log 2>&1 &

  • 查看logstash是否启动成功 ps -ef|grep logstash

# 安装skywalking

  • 安装skywalking:请部署在jdk17环境下,可在启动脚本中指定jdk17(如:export JAVA_HOME=/home/jdk17 export PATH=$JAVA_HOME/bin:$PATH)

  • 安装路径 {安装位置}/skywalking 修改 {安装位置}/skywalking/config/application.yml

    # 编辑 application.yml文件
    {安装位置}/skywalking/config/application.yml
    # 修改elasticsearch地址,改成本机器IP地址
    elasticsearch:
      nameSpace: ${SW_NAMESPACE:"CollectorDBCluster"}
      clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:{安装机器IP}:9200}
      indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
      indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
    

    重点说明:

    apache-skywalking-apm 利用java agent技术,实现不侵入业务系统,从而达到对应用系统调用链的跟踪和监控。 afcenter、bps、gateway应用都需要配置,以afcenter为例说明,其他应用配置同理, skywalking客户端路径为/opt/primeton/apps/eos-app/skywalking-agent(本例中位于另外一台服务器,和Afcenter在同一介质中),采集应用调用信息按如下步骤

    1. 配置skywalking-apm客户端信息,文件路径(/opt/primeton/apps/eos-app/skywalking-agent/config/agent.config)

      collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:{skywalking服务端所在服务器IP}:11800}
      
    2. 在应用启动时增加-apm参数(本文中地址为/opt/primeton/apps/eos-app/server/afcenter/bin/),应用启动后apache-skywalking-apm会收集应用的调用信息

      # 启动是增加 -apm参数
      ./startup.sh -apm
      

# 安装filebeat

  • filebeat:

  • filebeat 配置启动 filebeat安装介质是在EOS_Platform_8.3.3_Private_Medium_Application.tar.gz中,即和Afcenter在同一安装包下,fielbeat安装路径为 /opt/primeton/apps/eos-app/filebeat

    编辑eos-filebeat.yml文件,文件路径:/opt/primeton/apps/eos-app/filebeat/eos-filebeat.yml

       input:请根据实际路径修改日志路径
       output:
        enabled: true
        hosts: ["{安装kafka机器IP}:9092"]
      
    
    # 启动filebeat
    nohup ./filebeat -e -c eos-filebeat.yml >/dev/null 2>&1 & 
    

# 4、安装验证

  • 启动说明 启动顺序说明:先启动elasticsearch,启动方式:应用根目录下执行startup.sh启动,再启动Afcenter应用所在服务器,同样采用根目录下start.sh脚本启动整体应用(启动脚本不包含filebeat启动),启动完毕后启动filebear应用
  • governor配置: 注:governor不支持jdk17 登录governor:http://{governor所在机器IP}:29898/ ,账户:sysadmin/000000
    • 点击governor右上角管理平台->平台配置->平台服务 配置以下信息

      配置中心 http://{安装机器IP}:8848/nacos
      注册中心 http://{安装机器IP}:8848/nacos
      日志中心 http://{安装机器IP}:9200
      应用监控 http://{安装机器IP}:12800/graphql
      
      
    • 注意:nacos需开启安全认证,请参考:https://nacos.io/en-us/docs/auth.html

      开启鉴权后,注册到nacos的应用的application-nacos.properties里需要增加nacos用户名密码的配置。

      以AFCenter为例,在%EOS8.3.1安装目录%\server\afcenter\config\application-nacos.properties中增加配置:

      spring.cloud.nacos.discovery.username=yourname
      spring.cloud.nacos.discovery.password=yourpwd
      
      
    • 点击域管理->建立域 域

    • 点击系统管理->建立系统 系统

  • 验证 点击网关->日志 日志 点击监控->应用运行时 监控 点击监控->业务链路 链路

← EOS8环境搭建 安装后端工具-Eclipse插件 →