# 云原生服务环境搭建
# 1、环境准备
- 系统信息 安装产品的基本环境信息。
名称 | 说明 |
---|---|
操作系统 | CentOS Linux release 7.9.2009 |
系统架构 | x86_64 |
安装模式 | 最小化模式安装。 |
- 相关软件 相关软件如下所示。
软件 | 说明 |
---|---|
EOS8介质1 | EOS_Platform_8.2LA2_Private_Medium_Service.tar.gz |
JDK | jdk-8u162-linux-x64.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
- 确保所有被安装服务器时区和时间一致。时间不一致会影响 Elasticsearch 和 Skywalking 等信息无法采集的情况出现。
# 2、安装介质介绍
- 介质说明 EOS_Platform_8.2LA2_Private_Medium_Service.tar.gz介质包含中间件应用,目的在于搭建日志中心,应用程序性能监视中心,断路器,具体内容如下:
名称 | 说明 |
---|---|
skywalking | 应用程序性能监视工具 |
ELK | 日志中心,包含elasticsearch,logstash,kafka,zookeeper等相关应用 |
turbine | 断路器 |
# 3、环境搭建
# 安装Elasticsearch
Elasticsearch简介 Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:
- 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
- 实时分析的分布式搜索引擎。
- 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据
Elasticsearch安装
安装jdk jdk安装请参考linux环境搭建
修改系统配置(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
上传安装包至/home/es目录下并解压到指定目录
tar -zxvf EOS_Platform_8.2LA2_Private_Medium_Service.tar.gz -C /home/es/eos8
解压后目录结构如下:
修改Elasticsearch配置文件 文件路径{安装位置}/elk/elasticsearch/config/elasticsearch.yml,有172.50开头的ip地址,改成部署当前服务器IP地址,本文档IP地址为 {安装机器IP}
# 修改es的ip地址 network.host={安装机器IP}
修改 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/_template/eos-classic-log' -d @eos-classic-log-template.json curl -H "Content-Type:application/json" -XPUT 'http://{安装机器IP}:9200/_template/eos-dap-app-log' -d @eos-dap-app-log-template.json curl -H "Content-Type:application/json" -XPUT 'http://{安装机器IP}:9200/_template/eos-dap-trace-log' -d @eos-dap-trace-log-template.json curl -H "Content-Type:application/json" -XPUT 'http://{安装机器IP}:9200/_template/eos-wf-log' -d @eos-wf-log-template.json # ES删除已经建立的数据和索引 curl -H "Content-Type:application/json" -XDELETE 'http://{安装机器IP}:9200/eos*'
验证安装 es常用命令 http://{安装机器IP}:9200/_cat/health 检查ES数据库的索引状态(百分比) http://{安装机器IP}:9200/_cat/indices 查看ES数据库的索引列表(green可用,yellow正在创建,red不可用)。
# 安装zookeeper
- 安装zookeeper
zookeeper安装文件安装介质包中已包含,路径为elk/zookeeper
- 修改配置(自行定义)
# 安装kafka
安装kafka kafka路径 {安装位置}/elk/kafka
# 编辑server.properties文件 {安装位置}/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 文件路径 {安装位置}/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" }
# 安装turbine
安装turbine 安装文件路径 {解压位置}/turbine,修改{解压位置}/turbine/config/application.properties,bootstrap.properties
#文件路径 {解压位置}/turbine/config/application.properties # 修改zookeeper地址 spring.cloud.zookeeper.connect-string={安装机器IP}:2181
修改bootstrap.properties
# 编辑bootstrap.properties文件 {安装位置}/turbine/config/bootstrap.properties #将ip修改为nacos所在服务器ip,本示例中nacos的IP地址为172.50.1.203 spring.cloud.nacos.discovery.enabled=true spring.cloud.nacos.discovery.server-addr={安装机器IP}:8848 spring.cloud.nacos.config.server-addr={安装机器IP}:8848
# 安装skywalking
安装apache-skywalking-apm 安装路径 {安装位置}/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,workpace,gateway 配置说明,以afcenter 为例说明,其他应用配置同理,skywalking客户端路径为/opt/idc/apps/eos-8.2-app/skywalking-agent(本例中位于另外一台服务器,和Afcenter在同一介质中),采集应用调用信息按如下步骤
配置skywalking-apm客户端信息,文件路径(/opt/idc/apps/eos-8.2-app/skywalking-agent/config/agent.config)
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:{skywalking服务端所在服务器IP}:11800}
在应用启动时增加 -apm 参数(本文中地址为/opt/idc/apps/eos-8.2-app/server/afcenter/bin/)
# 启动是增加 -apm参数 ./startup.sh -apm
应用启动后apache-skywalking-apm会收集应用的调用信息
# 安装filebeat
filebeat 配置启动 filebeat安装介质是在EOS_Platform_8.2LA2_Private_Medium_Application.tar中,即和Afcenter在同一安装包下,本例中 afcenter应用安装在 {安装机器IP} 机器上,fielbeat安装路径为 /opt/idc/apps/eos-8.2-app/filebeat
# 启动filebeat nohup./filebeat-e -c eos-filebeat.yml >/dev/null 2>&1 &
# 4、安装验证
启动说明
启动顺序说明:先启动elasticsearch所在服务的应用,启动方式:应用根目录下利用startup.sh启动,在启动Afcenter应用所在服务器,同样采用根目录下start.sh脚本启动整体应用(启动脚本不包含filebeat启动),启动完毕后启动filebear应用
governor配置 governor 登录端口 31198,用sysadmin/000000登录governor,右上角点击管理平台,可见下图:
- 平台管理->平台服务 配置以下信息 配置中心 http://{安装机器IP}:8848/nacos 注册中心 http://{安装机器IP}:8848/nacos 日志中心 http://{安装机器IP}:9200 断路器 http://{安装机器IP}:8000/ 应用监控 http://{安装机器IP}:12800/graphql
- 点击域管理->建立域
- 点击系统管理->建立系统
验证 点击网关->日志 点击监控->应用运行时 点击监控->业务链路
← WorkSpace环境配置 精简版部署方案 →