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
- 集群验证是否成功
浏览器访问ip:9200/_cat/health
集群健康状态
浏览器访问ip:9200/_cat/nodes
集群节点状态
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
- 修改skw主配置文件
vi /xxx/skyWalking/apache-skywalking-apm-bin-es7/config/application.yml
1.修改selector模式,默认为单节点:standalone,如果使用集群可使用nacos为注册中心(也支持zk,kubernetes,consul等),配置nacos地址和namespace。
2.修改storage模式,默认为h2,我们的es集群为es7,所以替换为es7;修改nameSpace为当前es集群的名称(一一对应),clusterNodes为集群地址,中间用“,”分隔。
- 启动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日志。
验证应用启动成功端口正常监听
然后可以打开浏览器进行查看 ip地址:8768
三、agent启动客户端部署
将apache-skywalking-apm-bin-es7/agent文件夹拷贝到微服务的每个服务发布容器中,位置可以根据情况调整,建议放在jar包同级目录。
- 修改agent的配置
vi ../agent/config/agent.config
一般配置下面两项即可:
1.agent.service_name:客户端服务名,在apm系统中显示的服务名称。
2.collector.backend_service:SW上传的服务地址。
- 核对agent服务器时间与skw服务器时间,两者必须保持一致
- 在微服务启动脚本中加入探针(放入java -jar之间)
-javaagent:../skywalking-agent.jar
四、通过UI查看微服务分布式调用情况
打开浏览器进行查看 ip地址:8768