Skywalking(8.7)安装以及docker镜像打包
Skywalking安装以及docker镜像打包
Skywalking版本:apache-skywalking-apm-es7-8.7.0
ES版本:7.17.2
一.下载Skywalking的安装包
下载地址:Index of /dist/skywalking/8.7.0 (apache.org)
上传到服务器安装目录并解压
#这里选择的安装目录是/usr/local
cd /usr/local
tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz

二.查看并修改配置文件
#进入解压好的目录
cd apache-skywalking-apm-bin-es7
#编辑配置文件
vi config/application.yml
在配置文件中找到图片所在的位置

此处修改的地方为
SW_STORAGE:elasticsearch7,elasticsearch7是该文档中的一个es数据存储的配置项。
然后修改es存储的地址,在图片中如下位置修改:

然后退出保存
- storage.elasticsearch7,配置项,设置使用 Elasticsearch 7.X 版本作为存储器,本次安装选用的es7,所以需要配置es的地址。
- storage.elasticsearch,配置项,设置使用 Elasticsearch 6.X 版本作为存储器。所以无需做任何改动。
- storage.h2,配置项,设置使用 H2 作为存储器。
如服务器出现端口占用,还可以选择更改Skywalking的端口。
vi webapp/webapp.yml

三.启动Skywalking
cd bin/
ls

这里可以看见有三个启动脚本,分别是oap启动脚本,webServer的启动脚本,和同时启动两个服务的脚本startup.sh。
因为是首次安装,所以先启动oap,执行oapService.sh,然后看日志输出。打开 logs/skywalking-oap-server.log 日志文件,查看是否有错误日志。首次启动时,因为 SkyWalking OAP 会创建 Elasticsearch 的索引,所以会一直打印日志,如下图。

最终,我们看到如下日志,基本可以代表 SkyWalking OAP 服务启动成功:
org.eclipse.jetty.server.Server - 444 [main] INFO [] - Started
因为首次启动oap会创建大量索引,所以需要花费较长时间。
然后启动webappServer,执行webappService.sh,然后通过ip加配置的端口访问UI页面,能成功进入就算安装成功。

四.使用Nginx,配置oap-server 域名
在配置SkyWalking Agent的时候,oap在接收代理数据的时候报错。所以需要通过Nginx配置grpc 通信
在Nginx中作如下配置:
# grpc 代理配置
server {
listen 11800 http2; # grpc方式对外暴露端口
server_name localhost;
# access_log logs/access.log main;
location / {
grpc_pass grpc://<Sktwalking主机IP>:11800; # 此处配置grpc服务的ip和端口
}
}
需要注意http2 和 http的端口不能重复。
一般Nginx安装的时候默认是没有ngx_http_v2_module模块的,所以需要安装,教程地址。
五.配置SkyWalking Agent
此处选择使用Dockerfile,在打包的时候把探针打入Java后端的镜像。
Dockerfile文件:
# 配置了sky-walking的dockerfile
FROM <jdk11基础镜像>
MAINTAINER uni
WORKDIR /usr/app
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
ARG APP_NAME="app"
ARG PORT=10001
ENV JAVA_OPTS="-Xms512m -Xmx512m" \
SPRING_PROFILES_ACTIVE=$PROFILE \
APPLICATION_NAME=$APP_NAME \
SW_AGENT_COLLECTOR_BACKEND_SERVICES="<通过Nginx代理后的地址>:11800"
ADD ./target/${APPLICATION_NAME}.jar ${APPLICATION_NAME}.jar
# 将agent文件夹放入容器,jenkins配置里,docker build前一步,cp到target文件夹下的
ADD ./target/agent/ /usr/local/agent
EXPOSE ${EXPORT}
ENTRYPOINT exec java ${JAVA_OPTS} -javaagent:/usr/local/agent/skywalking-agent.jar -Dskywalking.agent.service_name=$APPLICATION_NAME -Dskywalking.collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES} -jar -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} ${APPLICATION_NAME}.jar
APPLICATION_NAME=$APP_NAME是docker打包时传入的后端服务名称的值,SPRING_PROFILES_ACTIVE=$PROFILE用于指定运行环境。文档中的target/agent/,这个agent文件是,apache-skywalking-apm-bin-es7目录下的agent文件夹,我这里是提前cp到,Dockerfile打包目录下的target目录下的。同样,请确保你的后端Jar包文件和agent处于同一目录。
执行打包命令
docker build --build-arg APP_NAME=<自己的项目名> --build-arg PROFILE=test --build-arg PORT=8080 -f Dockerfile -t <自己的harbor私服地址>/<自己的项目名>:test-1 .
这里的APP_NAME换成自己的项目名,PROFILE是你的运行环境,这边默认为test,-t后面是自己的镜像名,一般默认是私服地址+项目名+tag
#然后上传自己打包的镜像到私服
docker push <自己的harbor私服地址>/<自己的项目名>:test-1
然后在目标服务器用docker运行测试,看项目是否启动。成功配置的结果,如下图:

Skywalking(8.7)安装以及docker镜像打包的更多相关文章
- docker教程——docker镜像打包上传
在开始使用URLOS进行docker应用开发之前,我们先来了解一下docker镜像的打包方法.首先,安装URLOS,安装完成之后,docker也随之安装到了主机里.执行以下命令安装URLOS: cur ...
- 关于docker安装、docker镜像、docker容器等
1.Ubuntu安装docker sudo apt install docker.io 注意以下命令需在root下进行 sudo -s 2.查看docker当前容器 docker ps -a 3.启动 ...
- docker镜像打包save,载入load,启动run
docker打包,针对的是镜像,而不是运行中的容器. 查看当前系统的镜像文件:docker images 将当前运行中的,已经自定义修改后的容器保存为新的镜像. docker commit ce11e ...
- docker镜像打包成tar包,上传到另一台服务器
需要打包的服务器操作: 一.需要打包的服务器执行以下操作 docker save -o node.tar.gz calico/node # docker save -o 要打镜像包的名称 镜像 ...
- BI系统打包Docker镜像及容器化部署的具体实现
在过去的几年中,"云"作为明星热词站在了各种新潮技术之中,你可能使用过,但说不清它的原理:或者是没用过,但听过它的大名:也可能连它的名字都没听过,但你对这只蓝色鲸鱼一定十分眼熟.作 ...
- PyCharm使用之利用Docker镜像搭建Python开发环境
在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...
- Docker 镜像(image)
版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...
- Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】
一.前言 Jenkins作为CI.CD的先驱者,虽然现在的风头没有Gitlab强了,但是还是老当益壮,很多中小公司还是使用比较广泛的.最近小编经历了一次Jenkins发包,感觉还不错,所以自己学习了一 ...
- Docker探索系列2之镜像打包与DockerFile
preface docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建 ...
- Windows10下的docker安装与入门 (三) 创建自己的docker镜像并且在容器中运行它
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
随机推荐
- TOP GP 把已经编译的per反编回对应版本的4fd(画面档)
由于GP5.1,5.2,5.3的genero对应版本画面档开发互不兼容,下面提供各版本之间互转的操作方法: xshell切换到要反编译的per档目录,执行以下命令,就会在同目录下生成对应4fd档资料 ...
- 几个易错的python小知识点
大家好,我是暴走の海鸽~ 本期整理了几个基础python防坑小常识,希望对大家有所帮助. 1. type == object? 执行以下代码的结果是什么: >>> isinstanc ...
- 基于ZXing.NET实现的二维码生成和识别客户端
一.前言 ZXing.Net的一个可移植软件包,是一个开源的.多格式的1D/2D条形码图像处理库,最初是用Java实现的.已经过大量优化和改进,它已经被手动移植.它与.Net 2.0..Net 3.5 ...
- Hall定理(霍尔定理)证明及推广
引言 网络上有许多Hall定理的证明,但是对于Hall定理的几个推广的介绍却少之又少,因此本文来简单介绍一下 注:为了使这篇文章看起来简单易懂,本文将不会使用图论语言,会图论的朋友们可以自行翻译为图论 ...
- Redis 6 学习笔记 1 —— NoSQL数据库介绍,Redis常用数据类型
NoSQL数据库介绍(了解) 技术的分类1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN,2.进一步地,解决系统功能扩展性的问题:Struts. ...
- 高效技巧揭秘:Java轻松批量插入或删除Excel行列操作
摘要:本文由葡萄城技术团队原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在职场生活中,对Excel工作表的行和列进行操作是非常普遍的需求 ...
- java_3.运算符、if条件结构
运算符.if条件结构 关系运算符 == != < > >= <= 1.关系运算符运算的结果是boolean类型 2.可以使用boolean类型的变量接收关系运算的结果 publ ...
- 自动化混沌工程 ChaosMeta V0.6 版本发布
混沌工程 ChaosMeta 的全新版本 V0.6.0 现已正式发布!该版本包含了许多新特性和增强功能,在编排界面提供了包括流量注入.度量等各类节点的支持,可视化支撑演练全流程.解决混沌工程原则中&q ...
- [学习笔记]TypeScript查缺补漏(二):类型与控制流分析
@ 目录 类型约束 基本类型 联合类型 控制流分析 instanceof和typeof 类型守卫和窄化 typeof判断 instanceof判断 in判断 内建函数,或自定义函数 赋值 布尔运算 保 ...
- Boruvka 算法
Boruvka算法解决某些问题超级好用. 这些问题形如,给你n个点,每个点有点权,任意两个点之间有边权,边权为两个点权用过某种计算方式得出. 求最小生成树. 通常用 \(O(log n)\) 的时间可 ...

