欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apache SkyWalking分布式链路追踪系统安装部署

程序员文章站 2022-07-03 16:56:07
...

目录

1、环境及介质说明

2、部署ElasticSearch

2.1、ElasticSearch配置文件修改

2.2、ES启动

2.2.1、添加用户加入组

2.2.2、切用户启动

2.2.3、查看ES服务是否启动成功

2.2.4、关闭ES服务

3、部署Apache Skywalking

3.1、application.yml

3.2、webapp.xml

3.3、启动Apache Skywalking

4、Skywalking探针Agent

5、微服务启动方式

6、部署过程中遇到的问题

6.1、时间一致性

6.2、网络互通性

6.3、xshell连接服务器断开连接问题

7、集群部署


1、环境及介质说明

本次部署采用单机模式,因此只需要一台机器,部署ES过程中发现ES必须部署在/root/usr/local目录下,否则无法启动。

注意:JDK版本必须为1.8,ES版本为5.X,本次采用ES5.6.13版本。

部署服务路径:

ES-5.6.13:/opt/elasticsearch/elasticsearch-5.6.13

Apache Skywalking 5.0.0-GA:/root/apache/apache-skywalking-apm-incubating

2、部署ElasticSearch

2.1、ElasticSearch配置文件修改

文件位置:\elasticsearch-5.6.13\config\elasticsearch.yml

vim elasticsearch.yml 打开elasticsearch.yml修改为如下:

#cluster.name集群名称
cluster.name: CollectorDBCluster
#node名称
node.name: node-1

##########推荐配置,请勿修改############
network.host: 0.0.0.0
network.publish_host: 26.47.30.127
network.bind_host: 0.0.0.0

#线程池队列大小
thread_pool.bulk.queue_size: 1000

2.2、ES启动

说明:ES的启动不能使用root账号启动,需要新建用户,并修改es目录权限。详细步骤见下。

2.2.1、添加用户加入组

#1)添加一个用户:elasticsearch
    useradd elasticsearch

#2)给用户elasticsearch设置密码,连续输入2次
    passwd elasticsearch

#3)创建一个用户组 es
    groupadd es

#4)分配 elasticsearch 到 es 组
    usermod -G elasticsearch es

#5)这里注意下,如果提示用户“es”不存在,那么是因为服务器版本问题,你可以换成 
    usermod -G es  elasticsearch ,也就是用户和用户组对调一下使用。

#6)在elasticsearch 根目录下,给定用户权限。-R表示逐级(N层目录), * 表示 任何文件
    chown -R elasticsearch.es *

2.2.2、切用户启动

[email protected]:/opt/elasticsearch/elasticsearch-5.6.13/bin# ./elasticsearch

#1) 切换到elasticsearch用户
    su elasticsearch

#2) 切到elasticsearch-5.6.13目录下执行命令
    [email protected]:~/elasticsearch-5.6.13$ chmod +x bin/elasticsearch   

#3) 切到bin目录下执行
    ./elasticsearch -d

若启动报错参考:https://blog.csdn.net/weixin_38447578/article/details/84293526

2.2.3、查看ES服务是否启动成功

方式1:执行以下命令

ps aux | grep elasticsearch

方式2:浏览器访问 http://192.168.98.1:9200

看返回结果是否为以下值,build_date 时间根据实际时间显示。

http:192.168.98.1:9200
{
  "name" : "node-1",
  "cluster_name" : "CollectorDBCluster",
  "cluster_uuid" : "0PjTNtPEQrCfb2bd0Xzysw",
  "version" : {
    "number" : "5.6.13",
    "build_hash" : "4d5320b",
    "build_date" : "2018-10-30T19:05:08.237Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

2.2.4、关闭ES服务

查看进程号,然后杀死进程。

3、部署Apache Skywalking

3.1、application.yml

文件位置:\apache-skywalking-apm-incubating\config\application.yml

注:application.yml中所有host节点的值都配置为真实的IP地址。

3.2、webapp.xml

文件位置:\apache-skywalking-apm-incubating\webapp\webapp.xml

修改访问ip:listOfServers: 192.168.98.1:10800

配置用户名和密码,访问skywalking UI界面时候登陆时候需要输入。默认用户名:admin,密码:admin。

3.3、启动Apache Skywalking

[email protected]:~/apache-skywalking-apm-incubating/bin# ./startup.sh

切到\apache-skywalking-apm-incubating的bin目录下,执行./statup.sh

UI使用8080端口,收集器使用10800端口

启动后查看8080和10800端口占用情况

netstat -nlp|grep 8080、netstat -nlp|grep 10800

web地址,IP:8080(有时机器自带tomcat,占用了8080,需要换一个端口,在webapp.xml中)

4、Skywalking探针Agent

配置文件位置:\apache-skywalking-apm-incubating\agent\config\agent.config

#1)agent.namespace名称,这里需要注意,相关联的微服务需要配置成同一个名称,否则会导致调用链断开,例如项目中有六个微服务,则统一配置成xxx-namespace。
agent.namespace=xxx-namespace

#2)微服务应用名称(该名称就是显示在skywalking界面上的)
agent.application_code=application1

#3)Skywalking收集器server的端口
collector.servers=192.168.98.1:10800

5、微服务启动方式

以以下demo为例,红色部分为探针应用于微服务中。

java -javaagent:/root/microservice/spring-cloud-department/agent/skywalking-agent.jar -jar depart-micro-0.0.1-SNAPSHOT

6、部署过程中遇到的问题

6.1、时间一致性

如果ES和Skywalking分开部署,需要保证服务器的时间完全一致,否则回导致服务调用链滞后显示。假设ES时间比Sky walking时间晚了5分钟,调用请求链在2019-12-10 10:00, ES的时间为2019-12-10 10:00,skywalking服务器为2019-12-10 10:05。UI界面上是看不到本次调用信息的,5分钟后才能看到。

6.2、网络互通性

需要保证ES服务器和Skywalking服务器之间网络是互通的,否则调用链信息无法写入ES中,可以查看探针agent的日志。

6.3、xshell连接服务器断开连接问题

如果是使用xshell登陆远程机器执行,防止xshell窗口关闭导致应用down掉,比如以下命令(根据实际情况修改skywalking-agent.jar位置,微服务jar名称)

nohup java -javaagent:/opt/soft/apache-skywalking-apm-incubating/agent/skywalking-agent.jar  -jar service-registry-0.0.1-SNAPSHOT.jar  >> registry.log 2>&1 &

7、集群部署

参考官网部署方案:

https://github.com/apache/incubator-skywalking/blob/v5.0.0-GA/docs/en/Deploy-backend-in-cluster-mode.md