版本号
skywalking:v8.3.0
项目结构
目前项目中使用的skywalking组件由三部分组成
skywalking-oap
skywalking主要链路收集组件,用于收集系统中的链路信息。
skywalking-ui
skywalking主要展示组件,提供了一个ui界面,可以查看各种链路及参数信息。
skywalking-agent
skywalking提供的客户端接入方式,利用探针技术无侵入的结合到客户端中,收集客户端中的链路信息发送到oap中。
注意安装之前必须安装 Elasticsearch,否则无法安装成功,
安装Elasticsearch的过程,如下:
https://blog.csdn.net/xulong5000/article/details/113625357
第一种安装方式 :虚拟机部署
提供
skywalking-oap
|skywalking-ui
的部署方式。
* 下载适合版本的压缩包,下载地址(若使用elasticsearch7以上版本存储数据,需下载对应es7版本的安装包)
wget https://mirror.bit.edu.cn/apache/skywalking/8.3.0/apache-skywalking-apm-es7-8.3.0.tar.gz
解压后进入程序目录
tar -xvf apache-skywalking-apm-es7-8.3.0.tar.gz
cd apache-skywalking-apm-bin-es7/
修改配置文件
vim config/application.yml
数据存储设置
若selector指定elasticsearch7以上版本,安装包必须使用elasticsearch7版本,否则启动时会报错
此处使用ES7存储,必须指定节点地址及名称
\若使用其他数据库存储(MySQL/H2等),需要修改selector标签指定的数据库及相应配置
其余设置项使用默认即可,如有需要可调整
启动skywalking
bin/startup.sh
浏览器打开8080端口,启动成功
第二种安装方式:docker部署(推荐) 推荐理由: 这种方式简单 易懂
提供
skywalking-oap
|skywalking-ui
的部署方式。
配置docker环境
安装docker
yum install -y docker
安装docker-compose
yum install -y docker-compose
启动docker
systemctl start docker
拉取镜像
skywalking-oap-server镜像地址(若使用elasticsearch7以上版本存储数据,需拉取对应es7版本的镜像)
docker pull apache/skywalking-oap-server:8.3.0-es7
skywalking-ui镜像地址
docker pull apache/skywalking-ui:8.3.0
启动方式
使用docker命令启动
启动skywalking-oap-server
docker run --name oap --restart always -d -p 11800:11800 -p 12800:12800 -e SW_STORAGE=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=172.16.5.33:9200 apache/skywalking-oap-server:8.3.0-es7
解释:上面这句语句:要里面oap的意思是 去收集系统中的链路信息,也就是去获取 ES里面的数据,和存储。所以
-e SW_STORAGE=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=172.16.5.33:9200
这句话就是 匹配到之前安装的 ES上面, 一般只需要修改 :172.16.5.33:9200 ,Ip地址 是服务器地址,端口号就是 ES的配置文件yml里面配置的端口号。
这里的端口号。
第一个 11800 就是 oap对外端口号,就是哪里需要用到 oap就用这个端口号。 就是java项目里面 需要把数据日志 推送到oap,oap再存储到ES中
第二个11800就是在容器里面的端口号。
第一个 12800 就是 跟下面的 ui 绑定的端口号,下面ui里面的 -e SW_OAP_ADDRESS=172.16.5.33:12800 地址 中的12800就是这个端口号
第二个 12800就是容器自己的端口号
172.16.5.33:9200 这个就是ES的访问地址,ip+端口号
启动skywalking-ui
docker run --name ui --restart always -d -p 8080:8080 -e SW_OAP_ADDRESS=172.16.5.33:12800 apache/skywalking-ui:8.3.0
说明:
第一个8080 就是 外部访问的端口号,例如访问skywalking ,就可以用 172.16.5.33:8080,当然端口号可以配置为其他的 我在服务器上用的核实 8001
第二个8080就是 docker内部容器的端口号
172.16.5.33:12800 就是 上面安装的oap的地址,已经他的端口号。这里 两个中间件都是安装在同一个服务器上,所以ip地址是一样的,其实也可以分开安装。
查看容器状态
docker ps -a
第三种安装方式,就是用docker 容器编排 :使用docker-compose命令启动(推荐)
在任意一个文件夹下面,创建一个文件,文件为docker-compose.yml
编辑docker-compose.yml文件
version: '2'
services:
oap:
image: 'docker.io/apache/skywalking-oap-server:8.3.0-es7'
container_name: 'skywalking-oap-server'
ports:
- '11800:11800'
- '12800:12800'
restart: always
environment:
- SW_STORAGE=elasticsearch7
- SW_STORAGE_ES_CLUSTER_NODES=172.16.5.33:9200
- TZ=Asia/Shanghai
ui:
image: 'docker.io/apache/skywalking-ui:8.3.0'
container_name: 'skywalking-ui'
ports: - '8080:8080'
restart: always
environment:
- SW_OAP_ADDRESS=172.16.5.31:12800 - TZ=Asia/Shanghai
启动
docker-compose up -d
查看容器启动状态
docker-compose ps
安装成功之后,打开UI地址,就可以看到界面
客户端引用
客户端通过引入skywalking-agent
模块发送链路信息,具体使用方式参考Skywalking-agent使用说明。
常见问题
分片不足
ES运行一段时间后出现以下错误信息
原因是ES7默认分片是1000,可通过接口/_cluster/settings
手动调整
{
"transient":
{
"cluster":
{
"max_shards_per_node":10000
}
}
}