【SkyWalking】使用PostgreSQL做存储K8s部署
拉取镜像
docker pull apache/skywalking-ui:10.0.1
docker tag apache/skywalking-ui:10.0.1 xxx/xxx/skywalking-ui:10.0.1
docker push xxx/xxx/skywalking-ui:10.0.1docker pull apache/skywalking-oap-server:10.0.1
docker tag apache/skywalking-oap-server:10.0.1 xxx/xxx/skywalking-oap-server:10.0.1
docker push xxx/xxx/skywalking-oap-server:10.0.1
源码制作镜像
# 拉取源码
git clone -b v10.0.1 https://github.com/apache/skywalking.git
# 进入源码目录
cd skywalking# 为了提高maven依赖下载速度,需要在~/.m2目录下创建settings.xml文件
# 修改settings.xml文件,指定私服nexus地址# 必须指定JAVA_HOME变量
export JAVA_HOME=/home/xxx/镜像制作/jdk-17.0.2
# 运行制作镜像脚本
nohup make docker SKIP_TEST=true OAP_NAME=skywalking-oap-server UI_NAME=skywalking-ui HUB=xxx/xxx TAG=10.0.1 &
# 查看制作的镜像
docker image ls | grep skywalking
官网下载程序包制作镜像
# 下载可直接运行的程序包
wget https://dlcdn.apache.org/skywalking/10.0.1/apache-skywalking-apm-10.0.1.tar.gz# 解压&编写Dockerfile&编写构建脚本
[root@k8s1 skywalking]# ll
total 8
drwxr-xr-x 9 root root 201 Jun 7 18:09 apache-skywalking-apm-bin
-rwxr-xr-x 1 root root 317 Jun 7 18:18 docker-build.sh
-rw-r--r-- 1 root root 2604 Jun 7 18:42 Dockerfile
Dockerfile
Dockerfile核心内容如下
FROM xxx/xxx/openjdk-utils:17.0.2
# 维护者
MAINTAINER best572@sina.com# 解决时区问题
ENV TIME_ZONE="Asia/Shanghai"
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone# sleep几秒后,logs目录下才会有日志文件
ENTRYPOINT cd apache-skywalking-apm-bin/bin && ./startup.sh &&\pwd && sleep 10 && ls ../logs &&\tail -fn200 ../logs/skywalking-oap-server.log
构建脚本
version=10.0.1
APP_NAME=skywalking-${version}# 删除旧镜像
#docker rmi -f xxx/xxx/skywalking:$version
# 构建镜像
docker build -t xxx/xxx/skywalking:$version .
docker push xxx/xxx/skywalking:$version
数据库
初始化PostgreSQL数据库
CREATE DATABASE "skywalking" WITH ENCODING = 'UTF8' CONNECTION LIMIT = -1 IS_TEMPLATE = False;
CREATE ROLE skywalking WITH LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT NOREPLICATION NOBYPASSRLS CONNECTION LIMIT -1 PASSWORD 'skywalking';
COMMENT ON ROLE skywalking IS 'skywalking';
GRANT ALL PRIVILEGES ON DATABASE "skywalking" TO skywalking;
GRANT ALL ON SCHEMA PUBLIC TO skywalking;
k8s部署SkyWalking
kubectl apply -f skywalking.yaml
skywalking.yaml如下
---
apiVersion: v1
kind: Service
metadata:name: skywalkingnamespace: kube-publiclabels:app: skywalking
spec:type: NodePortports:- name: oap-httpport: 12800targetPort: 12800nodePort: 12800- name: grpcport: 11800targetPort: 11800nodePort: 11800- name: ui-httpport: 22800targetPort: 8080nodePort: 22800selector:app: skywalking
---
apiVersion: apps/v1
kind: Deployment
metadata:name: skywalkingnamespace: kube-public
spec:replicas: 1revisionHistoryLimit: 0 #Replica Sets中的历史数量selector:matchLabels:app: skywalkingtemplate:metadata:labels:app: skywalkingspec:# 第一次运行的时候初始化一次
# initContainers:
# - name: oap-init
# image: xxx/xxx/skywalking:10.0.1
# imagePullPolicy: Always
# command: [ "sh" ]
# args: ["-c","pwd && ls -lhrt && cd apache-skywalking-apm-bin/bin && ./oapServiceInit.sh && pwd && sleep 10 && ls ../logs"]containers:- name: skywalkingimagePullPolicy: Alwaysimage: xxx/xxx/skywalking:10.0.1# 导入环境变量envFrom:# 使用configMap- configMapRef:# name为configMap中的metadata namename: app-public-cm- secretRef:name: app-public-secretenv:- name: POD_IPvalueFrom:fieldRef:fieldPath: status.podIP- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: SW_STORAGEvalue: "postgresql"- name: SW_JDBC_URLvalue: "jdbc:postgresql://xxx:5432/skywalking"- name: SW_DATA_SOURCE_USERvalue: "skywalking"- name: SW_DATA_SOURCE_PASSWORDvalue: "skywalking"ports:- containerPort: 11800protocol: TCPname: grpc- containerPort: 12800protocol: TCPname: oap-http- containerPort: 8080protocol: TCPname: ui-httplivenessProbe:httpGet:path: /internal/l7checkport: 12800initialDelaySeconds: 300timeoutSeconds: 30periodSeconds: 60successThreshold: 1failureThreshold: 10readinessProbe:httpGet:path: /internal/l7checkport: 12800initialDelaySeconds: 300timeoutSeconds: 30periodSeconds: 10successThreshold: 1failureThreshold: 5startupProbe:httpGet:path: /internal/l7checkport: 12800initialDelaySeconds: 300timeoutSeconds: 30periodSeconds: 10successThreshold: 1failureThreshold: 5resources:requests:cpu: 0.2memory: 1Gilimits:cpu: 1memory: 2GiimagePullSecrets:- name: puller
agent环境变量
- name: SW_AGENT_NAMEvalue: "Your_ApplicationName"
# skywalking oap 地址
- name: SW_AGENT_COLLECTOR_BACKEND_SERVICESvalue: "skywalking.kube-public:11800"
# 日志路径
- name: SW_LOGGING_DIRvalue: "/xxx/skywalking-agent/logs"
# 日志级别,默认: INFO
- name: SW_LOGGING_LEVELvalue: "WARN"
# 日志文件最大数量
- name: SW_LOGGING_MAX_HISTORY_FILESvalue: "10"
- 微服务启动的时候增加启动参数:
-javaagent:/xxx/skywalking-agent/skywalking-agent.jar- skywalking-agent的其它参数由上面的环境变量进行设置
运行截图


参考资料
- skywalking源码
配置文件参考:
https://github.com/apache/skywalking/blob/master/oap-server/server-starter/src/main/resources/application.yml
- K8S部署skywalking9.3版本
- skywalking使用ES做存储在K8S上的部署,使用实践
- skywalking-helm
- skywalking-docker
Since SkyWalking 8.8.0, the Dockerfiles are merged into the OAP repo and the Java agent repo respectively, this repo is archived and not maintained anymore.
- 使用源码制作镜像
- skywalking-oap server 环境变量支持
表格往右拖动,可以看到环境变量名称和默认值。
相关文章:
【SkyWalking】使用PostgreSQL做存储K8s部署
拉取镜像 docker pull apache/skywalking-ui:10.0.1 docker tag apache/skywalking-ui:10.0.1 xxx/xxx/skywalking-ui:10.0.1 docker push xxx/xxx/skywalking-ui:10.0.1docker pull apache/skywalking-oap-server:10.0.1 docker tag apache/skywalking-oap-server:10.0.1 xxx…...
详解大模型微调数据集构建方法(持续更新)
大家好,我是herosunly。985院校硕士毕业,现担任算法t研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算…...
自制植物大战僵尸:HTML5与JavaScript实现的简单游戏
引言 在本文中,我们将一起探索如何使用HTML5和JavaScript来创建一个简单的植物大战僵尸游戏。这不仅是一项有趣的编程挑战,也是学习游戏开发基础的绝佳机会。 什么是植物大战僵尸? 植物大战僵尸是一款流行的策略塔防游戏,玩家需…...
Istio_1.17.8安装
项目背景 按照istio官网的命令一路安装下来,安装好的istio版本为目前的最新版本,1.22.0。而我的k8s集群的版本并不支持istio_1.22的版本,导致ingress-gate网关安装不上,再仔细查看istio的发布文档,如果用istio_1.22版本…...
[数据集][目标检测]室内积水检测数据集VOC+YOLO格式761张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):761 标注数量(xml文件个数):761 标注数量(txt文件个数):761 标注类别…...
17_Vue高级监听器生命周期Vue组件组件通信
文章目录 1. 数据监听器watch2. Vue生命周期3. Vue组件4. Vue组件通信Appendix 1. 数据监听器watch 首先watch需要单独引 import {watch} from vuewatch函数监听ref响应式数据 watch(监听的内容,监听行为)监听行为默认为(newValue,oldValue) let firstname ref…...
【ROS使用记录】—— ros使用过程中的rosbag录制播放和ros话题信息相关的指令与操作记录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、rosbag的介绍二、rosbag的在线和离线录制三、rosbag的播放相关的指令四、其他rosbag和ros话题相关的指令总结 前言 rosbag是ROS(机器人操作系统…...
Laravel 富文本内容
Laravel 获取富文本的纯文本内容-CSDN博客 Laravel 富文本内容里面的图片添加前缀URL-CSDN博客 Laravel 富文本图片的style样式删除-CSDN博客. Laravel 获取富文本中的所有图片-CSDN博客 富文本字体font-famly删除 $data preg_replace(/(<[^>])style["\][^"…...
Spark Python环境搭建与优化:深入剖析四个方面、五个方面、六个方面及七个关键要点
Spark Python环境搭建与优化:深入剖析四个方面、五个方面、六个方面及七个关键要点 在大数据处理领域,Apache Spark凭借其出色的性能和灵活性备受瞩目。而要在Python中利用Spark的强大功能,首先需要搭建一个稳定且高效的Spark Python环境。本…...
【微信小程序开发】小程序中的上滑加载更多,下拉刷新是如何实现的?
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
从 Android 恢复已删除的备份录
本文介绍了几种在 Android 上恢复丢失和删除的短信的方法。这些方法都不能保证一定成功,但您可能能够恢复一些短信或其中存储的文件。 首先要尝试什么 首先,尝试保留数据。如果你刚刚删除了信息,请立即将手机置于飞行模式,方法是…...
如何使用Python中的random模块生成随机数
在Python中,random模块提供了多种用于生成随机数的函数。以下是一些基本示例: 生成随机整数: 使用random.randint(a, b)函数生成一个介于a和b之间的随机整数(包括a和b)。 python复制代码 import random random_int …...
AI大数据处理与分析实战--体育问卷分析
AI大数据处理与分析实战–体育问卷分析 前言:前一段时间接了一个需求,使用AI进行数据分析与处理,遂整理了一下大致过程和大致简要结果(更详细就不方便放了)。 文章目录 AI大数据处理与分析实战--体育问卷分析一、数据…...
C++第二十五弹---从零开始模拟STL中的list(下)
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、函数补充 2、迭代器完善 3、const迭代器 总结 1、函数补充 拷贝构造 思路: 先构造一个头结点,然后将 lt 类中的元…...
STM32/keil把多个c文件编译为静态库lib
把常用的、不经常修改的代码库编译成lib以后,可以加快整个工程的编译速度。 一个常见的应用场景就是,把ST的标准库或HAL库等编译成lib,这样以后再编译整个工程时,就无需再次编译他们了,可以节省编译时间。当然&#x…...
L45---506.相对名次(java)--排序
1.题目描述 2.知识点 (1)String.join(" ", words) 是 Java 中的一个语法,用于将数组或集合中的元素连接成一个单独的字符串,连接时使用指定的分隔符。这里的 " " 是作为分隔符使用的一个空格字符串。 Strin…...
跨网段路由
跨网段路由通常是指在网络中配置路由,以允许不同子网之间的通信。要设置跨网段的永久路由,取决于你是在操作路由器、交换机这样的网络设备,还是在配置个人计算机(如Windows或Linux系统)。下面是两种常见情况下的简要指…...
HO-3D 数据集
// 由于非刚体的追踪比较困难,所以看看刚体数据集 HOnnotate: A method for 3D Annotation of Hand and Object Poses // cvpr20https://arxiv.org/abs/1907.01481 https://github.com/shreyashampali/ho3d https://paperswithcode.com/paper/ho-3d-a-mult…...
Elasticsearch 认证模拟题 - 8
一、题目 在集群中输入以下指令: PUT phones/_doc/1 {"brand":"Samsumg","model":"Galaxy S9","features":[{"type":"os", "value":"Android"},{"type":&q…...
【Postman接口测试】第四节.Postman接口测试项目实战(中)
文章目录 前言五、Postman断言 5.1 Postman断言介绍 5.2 响应状态码断言 5.3 包含指定字符串断言 5.4 JSON数据断言六、参数化 5.1 Postman参数化介绍 5.2 Postman参数化实现 5.3 针对项目登录接口参数化实现 总结 前言 五、Postman断言 5.1 Postman断言介…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
