ES7集群搭建及SkyWalking部署

ES7集群搭建

一、下载及上传Elasticsearch安装包

  • 下载

版本目录地址:https://www.elastic.co/cn/downloads/elasticsearch

这里下载当前最新es7的7.9.2版本。

  • 解压
tar -zxf elasticsearch-7.9.2-linux-x86_64.tar.gz

二、创建普通用户

因为安全问题,Elasticsearch不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:

#新增es用户
useradd es 
#为es用户设置密码
passwd es

再为新用户授权

#文件夹所有者
chown -R es:es /xxx/es/elasticsearch-7.9.2

三、配置系统参数及ES配置文件

  • ElasticSearch7以上版本需要JKD11支持,我们常用的为JDK8,所以需要使用ElasticSearch7自带的JDK
vi /xxx/es/elasticsearch-7.9.2/bin/elasticsearch-env

打开 elasticsearch-env文件:
linux:

if [ ! -z "$JAVA_HOME" ]; then
  JAVA="$JAVA_HOME/bin/java"
  JAVA_TYPE="JAVA_HOME"
else
  if [ "$(uname -s)" = "Darwin" ]; then
     # macOS has a different structure
   JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
      JAVA="$ES_HOME/jdk/bin/java"
  fi
    JAVA_TYPE="bundled jdk"
fi

修改成

if [ "$(uname -s)" = "Darwin" ]; then
    # macOS has a different structure
    JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
    JAVA="$ES_HOME/jdk/bin/java"
  fi
  JAVA_TYPE="bundled jdk"
  • 最大可创建文件数太小
vi /etc/security/limits.conf
# 在文件末尾中增加下面内容
es soft nofile 65536
es hard nofile 65536

vi /etc/security/limits.d/20-nproc.conf 
# 在文件末尾中增加下面内容
es soft nofile 65536
es hard nofile 65536
* hard nproc 4096
# 注:* 带表Linux所有用户名称
  • 最大虚拟机内存太小
vi /etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360
  • 重新加载配置
sysctl -p
  • 创建数据和日志目录并赋权
mkdir -p /xxx/esdata/data
mkdir -p /xxx/eslog/logs
chown -R es:es /xxx/esdata
chown -R es:es /xxx/eslog
  • 修改es的配置文件
vi /xxx/es/elasticsearch-7.9.2/config/elasticsearch.yml
# 集群名称必须相同
cluster.name: es-cluster
 
node.name: node-1
# 当前节点是否可以被选举为master节点,是:true、否:false
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
 
# 数据和日志存储的地方,建议与es的安装目录区分,方式es删除后数据的丢失
path.data: /xxx/es/data
path.logs: /xxx/es/logs
 
# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
 
# SecComp检测,是:true、否:false
bootstrap.system_call_filter: false
 
network.host: 0.0.0.0
 
# 主机访问的端口号
http.port: 9200
 
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
# es7之后,不需要discover.zen.ping.unicast.hosts这个参数,用discovery.seed_hosts替换
discovery.seed_hosts: ["10.10.10.1","10.10.10.2","10.10.10.3"]
 
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes:["10.10.10.1","10.10.10.2","10.10.10.3"]
 
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
 
# "*" 表示支持所有域名
http.cors.allow-origin: "*"

四、启动Elasticsearch及验证

按照上述描述分别在三台服务器上安装Elasticsearch。
三台服务器上分别启动es,没有先后之分,7版本会自动选取主节点的

cd /xxx/es/elasticsearch-7.9.2/
#启动
./bin/elasticsearch
#后台启动
./bin/elasticsearch -d
  • 单节点验证是否成功
    浏览器访问ip:9200

skywalking搭建集群remoteClient skywalking配置es集群_开发工具

  • 集群验证是否成功

浏览器访问ip:9200/_cat/health
集群健康状态

skywalking搭建集群remoteClient skywalking配置es集群_JAVA_02

浏览器访问ip:9200/_cat/nodes
集群节点状态

skywalking搭建集群remoteClient skywalking配置es集群_java_03

SkyWalking搭建

一、下载及上传skywalking安装包

  • 下载

版本目录地址:https://skywalking.apache.org/downloads/

这里下载当前最新skywalking的8.1.0版本。

  • 解压
tar -zxf apache-skywalking-apm-es7-8.1.0.tar.gz

二、修改配置、启动及UI展示

  • 修改UI页面访问端口

dashborad应用默认端口为8080容易发生冲突修改为8768

vi /xxx/skyWalking/apache-skywalking-apm-bin-es7/webapp/webapp.yml

skywalking搭建集群remoteClient skywalking配置es集群_elasticsearch_04

  • 修改skw主配置文件
vi /xxx/skyWalking/apache-skywalking-apm-bin-es7/config/application.yml

1.修改selector模式,默认为单节点:standalone,如果使用集群可使用nacos为注册中心(也支持zk,kubernetes,consul等),配置nacos地址和namespace。

skywalking搭建集群remoteClient skywalking配置es集群_java_05

2.修改storage模式,默认为h2,我们的es集群为es7,所以替换为es7;修改nameSpace为当前es集群的名称(一一对应),clusterNodes为集群地址,中间用“,”分隔。

skywalking搭建集群remoteClient skywalking配置es集群_elasticsearch_06

  • 启动skyWalking
/xxx/skyWalking/apache-skywalking-apm-bin-es7/bin/startup.sh

显示启动成功且日志文件没有报错,证明启动成功。日志地址为/xxx/skyWalking/apache-skywalking-apm-bin-es7/logs。其中skywalking-oap-server.log为服务端日志;

webapp.log为dashborad为展示UI日志。

skywalking搭建集群remoteClient skywalking配置es集群_开发工具_07


验证应用启动成功端口正常监听

skywalking搭建集群remoteClient skywalking配置es集群_elasticsearch_08

然后可以打开浏览器进行查看 ip地址:8768

skywalking搭建集群remoteClient skywalking配置es集群_开发工具_09

三、agent启动客户端部署

将apache-skywalking-apm-bin-es7/agent文件夹拷贝到微服务的每个服务发布容器中,位置可以根据情况调整,建议放在jar包同级目录。

  • 修改agent的配置
vi ../agent/config/agent.config

一般配置下面两项即可:

1.agent.service_name:客户端服务名,在apm系统中显示的服务名称。

2.collector.backend_service:SW上传的服务地址。

skywalking搭建集群remoteClient skywalking配置es集群_开发工具_10


skywalking搭建集群remoteClient skywalking配置es集群_开发工具_11

  • 核对agent服务器时间与skw服务器时间,两者必须保持一致
  • 在微服务启动脚本中加入探针(放入java -jar之间)
-javaagent:../skywalking-agent.jar

四、通过UI查看微服务分布式调用情况

打开浏览器进行查看 ip地址:8768

skywalking搭建集群remoteClient skywalking配置es集群_JAVA_12