首页 > 其他分享 >Skywalking(8.7)安装以及docker镜像打包

Skywalking(8.7)安装以及docker镜像打包

时间:2024-01-10 15:12:40浏览次数:34  
标签:NAME 8.7 skywalking 配置 agent Skywalking 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)

image-20240105110418630

上传到服务器安装目录并解压

#这里选择的安装目录是/usr/local
cd /usr/local
tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz

image-20240105115542247

二.查看并修改配置文件

#进入解压好的目录
cd apache-skywalking-apm-bin-es7
#编辑配置文件
vi config/application.yml

在配置文件中找到图片所在的位置

image-20240108093627399

此处修改的地方为SW_STORAGE:elasticsearch7elasticsearch7是该文档中的一个es数据存储的配置项。

然后修改es存储的地址,在图片中如下位置修改:

image-20240108093857684

然后退出保存

  • storage.elasticsearch7,配置项,设置使用 Elasticsearch 7.X 版本作为存储器,本次安装选用的es7,所以需要配置es的地址。
  • storage.elasticsearch,配置项,设置使用 Elasticsearch 6.X 版本作为存储器。所以无需做任何改动。
  • storage.h2,配置项,设置使用 H2 作为存储器。

如服务器出现端口占用,还可以选择更改Skywalking的端口。

vi webapp/webapp.yml

image-20240108100011551

三.启动Skywalking

cd bin/
ls

image-20240108100054090

这里可以看见有三个启动脚本,分别是oap启动脚本,webServer的启动脚本,和同时启动两个服务的脚本startup.sh。

因为是首次安装,所以先启动oap,执行oapService.sh,然后看日志输出。打开 logs/skywalking-oap-server.log 日志文件,查看是否有错误日志。首次启动时,因为 SkyWalking OAP 会创建 Elasticsearch 的索引,所以会一直打印日志,如下图。

image-20240108102440907

最终,我们看到如下日志,基本可以代表 SkyWalking OAP 服务启动成功:

org.eclipse.jetty.server.Server - 444 [main] INFO  [] - Started

因为首次启动oap会创建大量索引,所以需要花费较长时间。

然后启动webappServer,执行webappService.sh,然后通过ip加配置的端口访问UI页面,能成功进入就算安装成功。

image-20240108103429497

四.使用Nginx,配置oap-server 域名

在配置SkyWalking Agent的时候,oap在接收代理数据的时候报错。所以需要通过Nginx配置grpc 通信

image-20240108161636711

在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运行测试,看项目是否启动。成功配置的结果,如下图:

image-20240104180902903

标签:NAME,8.7,skywalking,配置,agent,Skywalking,docker
From: https://www.cnblogs.com/blogof-fusu/p/17956503

相关文章

  • 10分钟看懂Docker和K8S
    10分钟看懂Docker和K8S2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。  <imgsrc="https://pic4.zhimg.com/v2-e6390d9358b05d82105fe391762346b3_b.jpg"data-caption=""data-size="normal"data-rawwidth="420"data-rawheight=&......
  • .NET如何创建Dockerfile文件构建镜像?
    创建一个WebApi项目,并且创建一个Dockerfile空文件,添加以下代码,7.0代表的你项目使用的SDK的版本,构建的时候也需要选择好指定的镜像tagFROMmcr.microsoft.com/dotnet/aspnet:7.0ASbaseWORKDIR/appEXPOSE80EXPOSE443FROMmcr.microsoft.com/dotnet/sdk:7.0ASbuildARGB......
  • jenkins搭建(docker)
    docker-compose.yamlversion:'3'services:jenkins:image:jenkins/jenkinsrestart:alwaysuser:rootcontainer_name:jenkinsvolumes:-/usr/local/jenkins/jenkins_home:/var/jenkins_home-/var/run/docker.sock......
  • 优雅而强力地卸载docker-desktop
    DockerDesktop可正常使用打开DockerDesktop,然后点击troubleshoot:再点击uninstall。DockerDesktop不可用[email protected]%sudo/Applications/Docker.app/Contents/MacOS/Docker--uninstallPassword:打不开DockerDesktop且情况二无法解决sud......
  • 实战-Docker 安装 Nginx
    使用Docker命令安装镜像官方文档:https://hub.docker.com/_/nginxmkdir-p/root/apps/nginxmkdir-p/opt/nginx/confdockerrun-d\--namenginx\-p80:80\-p443:443\-v/root/apps/nginx:/usr/share/nginx/html\-v/opt/nginx/conf:/etc/nginx/......
  • 实战-Docker 安装 MySQL
    使用Docker命令安装镜像官方文档:https://hub.docker.com/_/mysqlrm-rf/opt/mysqlmkdir-p/opt/mysql/data/opt/mysql/init/opt/mysql/confdockerrun-d\--namemysql\-p3306:3306\-eTZ=Asia/Shanghai\-eMYSQL_ROOT_PASSWORD=123456\-v/o......
  • Docker 开放远程访问
    当我们需要打包docker镜像但又不想在本地安装docker时,我们就可以连接远程服务器上的docker,使用它来打包进行。在idea中可以使用docker插件,方便快捷管理远程服务器上的docker容器。但这一切的前提是服务的docker开放了远程访问端口。方式一:直接暴露便捷/usr/lib/systemd/system/doc......
  • docker搭建Grafana+Loki+Promtail日志分析
    环境搭建Grafana搭建dockersearchgrafanadockerpullgrafana/grafanadockerrun-d-p3000:3000--namegrafanagrafana/grafanaLoki搭建创建宿主机目录mkdir-p/usr/local/glp/loki/indexmkdir-p/usr/local/glp/loki/chunkschmod-R777/usr/local/glp/loki/index......
  • docker 容器cpu限额绑定控制、内存使用、io读写控制及容器停止后自动释放资源
    容器控制cpu使用为避免压力测试时导致虚机爆掉,该测试虚机最好含有四个以上的cpu指定容器可以使用宿主机cpu的份额该参数只对多个容器竞争同一个cpu的时间片时有效参数 -c 或者全称 --cpu-shares可以看到控制cpu的参数使用-c或者全称--cpu-shares[root@localhost~]#......
  • SQL Server 2022 基于 Docker 部署
    1、Docker、Docker-Compose安装https://www.cnblogs.com/a120608yby/p/9883175.htmlhttps://www.cnblogs.com/a120608yby/p/14582853.html2、基于Docker-Compose部署SQLServer#vimdocker-compose.ymlversion:'3.9'services:mssql:container_name:mss......