前言

随着微服务概念的火热,系统排错的问题也越来越突出 。如何监控分布式链路是每个团队都会遇到的问题。目前市场上开源的APM有,推特的zikpin(在springcloud生态下较为容易),美团的CAT,pinpoint以及skywalking。在此博文记录下skywalking的踩坑实录。

踩坑

在github的skywalking(https://github.com/apache/incubator-skywalking)源码中虽然提供了docker-compose的方式一键部署,但是由于docker中没有skywalking6.0的镜像,所以通过make build的方式将镜像导入docker。
在使用cp命令时,找不到源包。猜测需要先用maven编译才有此目录,奈何每次编译都失败。有此,采用另外一种方式。docker部署es,然后直接在centos用二进制包运行。
在这里插入图片描述

docker-compose

yum update -y
yum install docker epel-release python-pip -y
pip install --upgrade pip
pip install docker-compose

拉取 Portainer

docker pull portainer/portainer

单机运行 Portainer

docker run -d -p 9000:9000 \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --name portainer-web \
    portainer/portainer

修改docker源

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://e7850958.m.daocloud.io

安装es(单机模式)

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2

解决跨域问题:

docker exec -it es /bin/bash
cd config
vi elasticsearch.yml

加入如下两行:

# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"

重启容器:

docker restart es

在linux下:curl http://127.0.0.1:9200,看到如下即安装成功。
在这里插入图片描述

skywalking

官网下载二进制包:http://skywalking.apache.org/downloads/
然后解压缩文件:tar -zxvf 文件
注:skywalking二进制包下的数据库默认为H2,用户需要修改config下的applicaiton.yml,注释掉h2,打开es的开关。
在webapp目录下也可更换web访问端口。
在这里插入图片描述
进入bin目录下 ./startup.sh ((启动报错大部分都是因为访问es出错))。
访问 http://ip:8080
在这里插入图片描述

以上便是本次安装记录,用户也可以根据自己需要将启动文件加入linux启动目录下。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐