全网最全部署skywalking笔记

前提准备:docker

创建skywalking的bridge网络

docker network create -d bridge skywalking-bridge

如果不知道啥是bridge网络可以看看b站这个十分钟的视频,用桥接(bridge)网络的原因主要是因为在公司部署遇到了ui服务访问oap服务访问不到的问题,明明让网络把端口开了,还是不能互相通信。但是在我自己买的腾讯云和阿里云就没这个问题,不创建桥接网络照样玩.....所以还闹了是不是内部防火墙也防自己端口的乌龙。

docker网络模式十分钟入门,我也不知道为什么尚硅谷和黑马不讲这个

将8.5.0版本的skywalking的oap和ui服务放入此网络中并启动,这个es7的后缀没关系,高版本和低版本的es都兼容的。

docker run \
--name skywalking-oap \
-p 11800:11800 \
-p 12800:12800 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/local/skywalking/8.5.0/config/application.yml:/skywalking/config/application.yml \
-v /xyb/docker_volume/skywalking8.5.0/config/application.yml:/skywalking/config/application.yml \
-v /usr/local/skywalking/8.5.0/config/alarm-settings.yml:/skywalking/config/alarm-settings.yml \
-v /xyb/docker_volume/skywalking8.5.0/config/alarm-settings.yml:/skywalking/config/alarm-settings.yml \
--network skywalking-bridge \
apache/skywalking-oap-server:8.5.0-es7
docker run \
 --name skywalking-ui \
 --restart always \
 -p 8080:8080 -d \
 --privileged=true \
 -e TZ=Asia/Shanghai \
 -e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
 --network skywalking-bridge \
 -v /etc/localtime:/etc/localtime:ro \
 apache/skywalking-ui:8.5.0

运行完后将application.yml改为es7启动,即可成功访问;能看到我文章的应该都会配application.yml,就是改四个属性(数据库从h2改成elasticsearch7,然后es的ip和账户密码),如果没配es密码那只要改ip和数据库方式就行;对了,如果es也连不上记得也加到同一个bridge网络里,加网络的操作是可以启动完容器后加的,不一定是run命令的时候加,不然生产环境你也不可能重新run对吧。

docker network connect <network_name> <container_name>

link参数的建法,无需建网络

创建oap

docker run \
--name skywalking-oap \
-p 11800:11800 \
-p 12800:12800 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/local/skywalking/8.5.0/config/application.yml:/skywalking/config/application.yml \
-v /xyb/docker_volume/skywalking8.5.0/config/application.yml:/skywalking/config/application.yml \
-v /usr/local/skywalking/8.5.0/config/alarm-settings.yml:/skywalking/config/alarm-settings.yml \
-v /xyb/docker_volume/skywalking8.5.0/config/alarm-settings.yml:/skywalking/config/alarm-settings.yml \
apache/skywalking-oap-server:8.5.0-es7

创建ui,利用--link将ui和oap连接在一起

docker run \
 --name skywalking-ui \
 --restart always \
 -p 8080:8080 -d \
 --privileged=true \
 --link skywalking-oap:skywalking-oap \
 -e TZ=Asia/Shanghai \
 -e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
 -v /etc/localtime:/etc/localtime:ro \
 apache/skywalking-ui:8.5.0

skywalking的坑

1、性能剖析只有8.5.0能用,8.6.0用不了;这玩意版本问题蛮严重的

2、性能剖析如果java应用配置了server.servlet.context-path属性,需要把这个属性带上进行性能剖析,否则也没有数据,记得加上/

3、如果访问ui服务(8080端口)白屏,第一种可能性是ui服务启动的比oap服务快,可以docker logs瞄一眼日志看看;第二种可能性是之前启动失败,浏览器没有缓存js和css,F12检查一下看看关于js和css的请求是不是都报了404,如果是,就ctrl + alt + delete 清理一下缓存就可以了

最后看下效果吧

现在监控的是我自己的博客网站

可变羽翼核心博客系统

仪表盘长这样

拓扑图长这样

追踪长这样

日志长这样,日志还是要对项目引pom文件和log4j2的哈,这个教程很多我这里不赘述了;可以直接看官网

配日志的时候记得把agent的config文件加上这四段话

#  指定要向其报告日志数据的grpc服务器的主机,也就是SkyWalking OAP服务主机地址
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:127.0.0.1}
#  SkyWalking OAP收集数据的端口,默认11800
plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
#  日志信息最大size
plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
#  数据上报超时时间,单位 S
plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}

官方配置日志文档(8.5.0)

性能剖析,8.6.0版本这里某个地方会转圈圈,我就不说啥了

告警功能。这个有配置文件可以配置告警的规则,我就不赘述了,教程很多。

集群的部署应该这几天更新方法,估计是用k8s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值