feat: 新增skywalking的elasticsearch和mysql版本的docker-compose

This commit is contained in:
2025-02-20 20:58:43 +08:00
parent 099d312ba7
commit 579751494b
53 changed files with 1407239 additions and 0 deletions
@@ -0,0 +1,81 @@
# 可参考 https://github.com/apache/skywalking/blob/master/docker/docker-compose.yml
version: '3.8'
# 网桥 -> 方便相互通讯
networks:
skywalking:
ipam:
driver: default
config:
- subnet: "172.24.0.0/24"
services:
# es存储
elasticsearch:
image: registry.cn-shanghai.aliyuncs.com/odboy/elasticsearch:7.14.1 # 原镜像`elasticsearch:7.14.1`
container_name: elasticsearch # 容器名
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./elasticsearch/data:/usr/share/elasticsearch/data"
- "./elasticsearch/logs:/usr/share/elasticsearch/logs"
- "./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
# - "./elasticsearch/config/jvm.options:/usr/share/elasticsearch/config/jvm.options"
- "./elasticsearch/plugins/ik:/usr/share/elasticsearch/plugins/ik" # IK中文分词插件
environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai
LANG: en_US.UTF-8
TAKE_FILE_OWNERSHIP: "true" # 权限
discovery.type: single-node
ES_JAVA_OPTS: "-Xmx512m -Xms512m"
ELASTIC_PASSWORD: "elastic123456" # elastic账号密码
ports:
- "9200:9200"
- "9300:9300"
networks:
skywalking:
ipv4_address: 172.24.0.83
oap:
image: registry.cn-shanghai.aliyuncs.com/odboy/skywalking-oap-server:9.5.0 # 原镜像`apache/skywalking-oap-server:9.5.0`
container_name: oap
restart: unless-stopped
privileged: true # 获取宿主机root权限
environment:
TZ: Asia/Shanghai
JAVA_OPTS: "-Xmx2048M -Xms2048M"
# 配置见 https://github.com/apache/skywalking/blob/master/oap-server/server-starter/src/main/resources/application.yml
SW_STORAGE: elasticsearch # 指定es存储
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
SW_ES_USER: elastic
SW_ES_PASSWORD: elastic123456 # tips: 密码不能为纯数字,启动会出问题
# volumes:
# - "./skywalking/mysql-connector-java-8.0.28.jar:/skywalking/ext-libs/mysql-connector-java-8.0.28.jar"
ports:
- "11800:11800" # agent 上报数据的端口,这是 gRPC 端口
- "12800:12800" # ui 读取数据的端口, 这是 http 端口
depends_on:
- elasticsearch
links:
- elasticsearch
networks:
skywalking:
ipv4_address: 172.24.0.81
# 可视化界面
oap-ui:
image: registry.cn-shanghai.aliyuncs.com/odboy/skywalking-ui:9.5.0 # 原镜像`apache/skywalking-ui:9.5.0`
container_name: oap-ui
restart: unless-stopped
privileged: true # 获取宿主机root权限
depends_on:
- oap
links:
- oap
ports:
- "18080:8080"
environment:
SW_OAP_ADDRESS: http://172.24.0.81:12800
TZ: Asia/Shanghai
networks:
skywalking:
ipv4_address: 172.24.0.82
@@ -0,0 +1,10 @@
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.port: 9200
# 开启es跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
# 开启安全控制
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
@@ -0,0 +1,77 @@
## JVM configuration
################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
################################################################
## Expert settings
################################################################
##
## All settings below this section are considered
## expert settings. Don't tamper with them unless
## you understand what you are doing
##
################################################################
## GC configuration
8-13:-XX:+UseConcMarkSweepGC
8-13:-XX:CMSInitiatingOccupancyFraction=75
8-13:-XX:+UseCMSInitiatingOccupancyOnly
## G1GC Configuration
# NOTE: G1 GC is only supported on JDK version 10 or later
# to use G1GC, uncomment the next two lines and update the version on the
# following three lines to your version of the JDK
# 10-13:-XX:-UseConcMarkSweepGC
# 10-13:-XX:-UseCMSInitiatingOccupancyOnly
14-:-XX:+UseG1GC
14-:-XX:G1ReservePercent=25
14-:-XX:InitiatingHeapOccupancyPercent=30
## JVM temporary directory
-Djava.io.tmpdir=${ES_TMPDIR}
## heap dumps
# generate a heap dump when an allocation from the Java heap fails
# heap dumps are created in the working directory of the JVM
-XX:+HeapDumpOnOutOfMemoryError
# specify an alternative path for heap dumps; ensure the directory exists and
# has sufficient space
-XX:HeapDumpPath=data
# specify an alternative path for JVM fatal error logs
-XX:ErrorFile=logs/hs_err_pid%p.log
## JDK 8 GC logging
8:-XX:+PrintGCDetails
8:-XX:+PrintGCDateStamps
8:-XX:+PrintTenuringDistribution
8:-XX:+PrintGCApplicationStoppedTime
8:-Xloggc:logs/gc.log
8:-XX:+UseGCLogFileRotation
8:-XX:NumberOfGCLogFiles=32
8:-XX:GCLogFileSize=64m
# JDK 9+ GC logging
9-:-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict"></entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,31 @@
也
了
仍
从
以
使
则
却
又
及
对
就
并
很
或
把
是
的
着
给
而
被
让
在
还
比
等
当
与
于
但
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,25 @@
不
也
了
仍
从
以
使
则
却
又
及
对
就
并
很
或
把
是
的
着
给
而
被
让
但
@@ -0,0 +1,316 @@
丈
下
世
世纪
两
个
中
串
亩
人
介
付
代
件
任
份
伏
伙
位
位数
例
倍
像素
元
克
克拉
公亩
公克
公分
公升
公尺
公担
公斤
公里
公顷
具
册
出
刀
分
分钟
分米
划
列
则
刻
剂
剑
副
加仑
勺
包
匙
匹
区
千克
千米
升
卷
厅
厘
厘米
双
发
口
句
只
台
叶
号
名
吨
听
员
周
周年
品
回
团
圆
圈
地
场
块
坪
堆
声
壶
处
夜
大
天
头
套
女
孔
字
宗
室
家
寸
对
封
尊
小时
尺
尾
局
层
届
岁
师
帧
幅
幕
幢
平方
平方公尺
平方公里
平方分米
平方厘米
平方码
平方米
平方英寸
平方英尺
平方英里
平米
年
年代
年级
度
座
式
引
张
成
战
截
户
房
所
扇
手
打
批
把
折
担
拍
招
拨
拳
指
掌
排
撮
支
文
斗
斤
方
族
日
时
曲
月
月份
期
本
朵
村
束
条
来
杯
枚
枝
枪
架
柄
柜
栋
栏
株
样
根
格
案
桌
档
桩
桶
梯
棵
楼
次
款
步
段
毛
毫
毫升
毫米
毫克
池
洲
派
海里
滴
炮
点
点钟
片
版
环
班
瓣
瓶
生
男
画
界
盆
盎司
盏
盒
盘
相
眼
石
码
碗
碟
磅
种
科
秒
秒钟
窝
立方公尺
立方分米
立方厘米
立方码
立方米
立方英寸
立方英尺
站
章
笔
等
筐
筒
箱
篇
篓
篮
簇
米
类
粒
级
组
维
缕
缸
罐
网
群
股
脚
船
艇
艘
色
节
英亩
英寸
英尺
英里
行
袋
角
言
课
起
趟
路
车
转
轮
辆
辈
连
通
遍
部
里
重
针
钟
钱
锅
门
间
队
阶段
隅
集
页
顶
顷
项
顿
颗
餐
首
@@ -0,0 +1,33 @@
a
an
and
are
as
at
be
but
by
for
if
in
into
is
it
no
not
of
on
or
such
that
the
their
then
there
these
they
this
to
was
will
with
@@ -0,0 +1,37 @@
乡
井
亭
党
区
厅
县
园
塔
家
寺
局
巷
市
弄
所
斯基
楼
江
河
海
湖
省
维奇
署
苑
街
觀
观
诺夫
路
部
镇
阁
山
子
娃
@@ -0,0 +1,131 @@
丁
万
万俟
上官
东方
乔
于
令狐
仲孙
任
何
余
候
傅
公冶
公孙
公羊
冯
刘
单
单于
卢
史
叶
司徒
司空
司马
吕
吴
周
唐
夏
夏侯
太叔
姚
姜
孔
孙
孟
宇文
宋
宗政
尉迟
尹
崔
常
康
廖
张
彭
徐
慕容
戴
文
方
易
曹
曾
朱
李
杜
杨
林
梁
欧阳
武
段
毛
江
汤
沈
淳于
潘
澹台
濮阳
熊
王
田
申屠
白
皇甫
石
秦
程
罗
肖
胡
苏
范
董
蒋
薛
袁
许
诸葛
谢
谭
贺
贾
赖
赫连
赵
轩辕
邓
邱
邵
邹
郑
郝
郭
金
钟
钟离
钱
长孙
闻人
闾丘
阎
陆
陈
雷
韩
顾
马
高
魏
鲜于
黄
黎
龙
龚
@@ -0,0 +1,56 @@
# Elasticsearch plugin descriptor file
# This file must exist as 'plugin-descriptor.properties' at
# the root directory of all plugins.
#
# A plugin can be 'site', 'jvm', or both.
#
### example site plugin for "foo":
#
# foo.zip <-- zip file for the plugin, with this structure:
# _site/ <-- the contents that will be served
# plugin-descriptor.properties <-- example contents below:
#
# site=true
# description=My cool plugin
# version=1.0
#
### example jvm plugin for "foo"
#
# foo.zip <-- zip file for the plugin, with this structure:
# <arbitrary name1>.jar <-- classes, resources, dependencies
# <arbitrary nameN>.jar <-- any number of jars
# plugin-descriptor.properties <-- example contents below:
#
# jvm=true
# classname=foo.bar.BazPlugin
# description=My cool plugin
# version=2.0.0-rc1
# elasticsearch.version=2.0
# java.version=1.7
#
### mandatory elements for all plugins:
#
# 'description': simple summary of the plugin
description=IK Analyzer for Elasticsearch
#
# 'version': plugin's version
version=7.14.1
#
# 'name': the plugin name
name=analysis-ik
#
# 'classname': the name of the class to load, fully-qualified.
classname=org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin
#
# 'java.version' version of java the code is built against
# use the system property java.specification.version
# version string must be a sequence of nonnegative decimal integers
# separated by "."'s and may have leading zeros
java.version=1.8
#
# 'elasticsearch.version' version of elasticsearch compiled against
# You will have to release a new version of the plugin for each new
# elasticsearch release. This version is checked when the plugin
# is loaded so Elasticsearch will refuse to start in the presence of
# plugins with the incorrect elasticsearch.version.
elasticsearch.version=7.14.1
@@ -0,0 +1,4 @@
grant {
// needed because of the hot reload functionality
permission java.net.SocketPermission "*", "connect,resolve";
};
+8
View File
@@ -0,0 +1,8 @@
docker-compose -f docker-compose.yml -p skywalking up -d
chmod -R 777 ./elasticsearch
echo '等待skywalking-opa-server启动...'
sleep 30000
echo '重启skywalking-opa-ui...'
docker ps|grep skywalking-ui|grep 9.5.0|awk '{print $1}'|xargs -I{} docker restart {}
docker ps|grep skywalking-ui|grep 9.5.0|awk '{print $1}'|xargs -I{} docker restart {}
docker ps|grep skywalking-ui|grep 9.5.0|awk '{print $1}'|xargs -I{} docker logs -f {}
+43
View File
@@ -0,0 +1,43 @@
# Apache SkyWalking
分布式系统的应用程序性能监控工具,特别为微服务、云原生和基于容器(Kubernetes)架构设计。
- https://github.com/apache/skywalking
- https://skywalking.apache.org
### 部署方式1
```shell
docker-compose -f docker-compose.yml -p skywalking up -d
# 运行后,给当前目录下所有文件赋予权限(读、写、执行)
# chmod -R 777 ./elasticsearch
```
### 部署方式2
```shell
sh install.sh
```
访问 http://127.0.0.1:18080
### Java项目配置
下载`Java Agent` https://skywalking.apache.org/downloads/
> eg: https://dlcdn.apache.org/skywalking/java-agent/8.15.0/apache-skywalking-java-agent-8.15.0.tgz
修改`skywalking-agent\config\agent.config`中配置参数 或 在jvm运行的时候指定
在java项目运行启动的时候,添加如下运行参数
```shell
-javaagent:D:\skywalking-agent\skywalking-agent.jar \
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.235.104:11800
-DSW_AGENT_NAMESPACE=yourAppEnv \
-DSW_AGENT_NAME=yourAppName
```
项目跑起来之后,如果访问不了,就多重启几次oap-ui
调用下接口,就可以去SkyWalking中查看拓扑图,追踪等信息了