skywalking9.4 使用elasticsearch8.7 做存储

这篇具有很好参考价值的文章主要介绍了skywalking9.4 使用elasticsearch8.7 做存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

skywalking 我们使用 elasticsearch 作为日志存储 版本如下

名称 版本
skywalking 9.4
agent 8.14
elasticsearch 8.7
H2 1.14.0(安装els 过程中可能会用到)
安装环境 window10/11

1.安装elasticsearch8.7

先安装els

1.1 下载

  • 下载地址:选择需要的版本,如【Elasticsearch 8.7.0】选择windows版本点击下载即可
  • 解压: 直接解压即可,路径中尽量不要有中路和空格

1.2 修改JVM配置(必须否则卡死)

修改 elasticsearch-8.7.0\config 中 jvm.options 文件,否则会导致系统卡死
skywalking9.4 使用elasticsearch8.7 做存储

1.3 启动并修改配置

  1. 进入到bin 文件夹下执行 elasticsearch.bat
    skywalking9.4 使用elasticsearch8.7 做存储

  2. 如上图,表示启动成功,还有可能提示你没有h2.jar 那么就按照提示下载然后放到指定文件夹下 然后在来执行即可。(可以到logs文件下查看具体日志

  3. 浏览器中输入ip:9200来查看是否成功,我这里是本地所以使用 http://127.0.0.1:9200
    skywalking9.4 使用elasticsearch8.7 做存储

  4. 关闭els,然后修改配置,修改config/elasticsearch.yml 文件
    默认 ES 监听 9200 与 9300 端口,其中 9200 是 ES 对外提供服务的端口;9300 是 ES 进行集群间通信与数据传输的端口,请确保这两个端口没有被占用
    如果需要修改,在下面的配置中进行修改

network.host: 0.0.0.0
http.port: 9200
http.host: 0.0.0.0
transport.host: 0.0.0.0
# 需要开启跨域才能给elasticsearch-head,kibana等连接
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

skywalking9.4 使用elasticsearch8.7 做存储
5. 然后重启

1.4 重置密码

  • 自动重置密码
#bin 目录下
.\elasticsearch-reset-password -u elastic

此命令会自动重置一个新的密码

  • 手动输入密码
#bin 目录下
.\elasticsearch-reset-password -u elastic -i

手动输入密码

skywalking9.4 使用elasticsearch8.7 做存储

  • 然后重启els

到这里els8.7就安装完成了

2. 安装skywalking

再次强调安装环境为windows10/11

2.1 下载

  • 下载地址:选择skywalking APM 如下图所示
    skywalking9.4 使用elasticsearch8.7 做存储
  • 解压:直接用解压工具解压即可(7zip 等解压工具都可以),解压后文件内容如下
    skywalking9.4 使用elasticsearch8.7 做存储

2.2 修改配置文件

默认监听 11800(gRPC)与 12800(HTTP) 端口。
上面解压后的文件内容包含 collector 与UI 2部分,
collector:负责收集日志等信息,此部分配置文件在config文件夹下 application.yml 及日志配置 log4j2.xml
UI:用于数据展示 ,此部分配置文件在 webapp 文件夹下 application.yml 及日志配置 log4j2.xml

  1. 修改collector 配置文件

    • 修改application.yml
    # 其他不用修改 只修改storage 下的配置   上面安装的elasticsearch 就是这里 要用到
    storage:
     selector: ${SW_STORAGE:elasticsearch} # 这里默认是h2 改为 下面的 elasticsearch
     elasticsearch:
       namespace: ${SW_NAMESPACE:"elasticsearch"} #这里的名称要改为 elasticsearch 中的cluster_name,使用http://els的IP地址:9200 这个访问地址即可显示
       clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9200}  # 这里要修改为 http://els的IP地址:9200(如果改过els的端口,要修改填写后的)
       protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
       connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
       socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
       responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
       numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
       user: ${SW_ES_USER:"elastic"}  #这里填写用户名称,一般没做修改就是elastic
       password: ${SW_ES_PASSWORD:"elastic"} # 这里是密码,上面讲过了修改密码的方法,没修改就把默认给的换上,我这里改成了 elastic 
    
    # 如果需要修改端口 
    core:
     selector: ${SW_CORE:default}
     default:
       restHost: ${SW_CORE_REST_HOST:0.0.0.0}
       restPort: ${SW_CORE_REST_PORT:12800}  # 这里是HTTP对外接口
       gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
       gRPCPort: ${SW_CORE_GRPC_PORT:11800} # 这个是grpc接口用于日志收集
    
    • 修改 log4j2.xml
    	<!-- 便于测试,这里的level 都改成debug -->
    	<Configuration status="DEBUG"> 
        <Properties>
            <Property name="log-path">D:/skywalking/logs</Property> <!-- 这里的路劲改为 全路径 便于查找 -->
        </Properties>
        <Appenders>
            <RollingFile name="RollingFile" fileName="${log-path}/skywalking-webapp.log"
                         filePattern="${log-path}/skywalking-webapp-%d{yyyy-MM-dd}-%i.log">
                <PatternLayout>
                    <pattern>%d - %c - %L [%t] %-5p %x - %m%n</pattern>
                </PatternLayout>
                <Policies>
                    <SizeBasedTriggeringPolicy size="102400KB"/>
                </Policies>
                <DefaultRolloverStrategy max="30"/>
            </RollingFile>
        </Appenders>
        <Loggers>
            <logger name="org.apache.zookeeper" level="DEBUG"/>
            <logger name="io.grpc.netty" level="DEBUG"/>
            <Root level="debug">
                <AppenderRef ref="RollingFile"/>
            </Root>
        </Loggers>
    </Configuration>
    
  2. 修改UI配置

    • 修改application.yml 文件
    serverPort: ${SW_SERVER_PORT:-18182} #这里模式8080,可修改,这里修改为18182 
    oapServices: ${SW_OAP_ADDRESS:-http://localhost:12800} #collector的http 接口,没修改端口的无需修改
    zipkinServices: ${SW_ZIPKIN_ADDRESS:-http://localhost:9412} #这里是zipkin接口,没配置无需修改
    
    
    • 修改日志log4j2.xml文件
    <!-- 便于测试,这里的level 都改成debug -->
    	<Configuration status="DEBUG">
        <Properties>
            <Property name="log-path">D:/skywalking/logs</Property> <!-- 这里的路劲改为 全路径 便于查找 -->
        </Properties>
        <Appenders>
            <RollingFile name="RollingFile" fileName="${log-path}/skywalking-webapp.log"
                         filePattern="${log-path}/skywalking-webapp-%d{yyyy-MM-dd}-%i.log">
                <PatternLayout>
                    <pattern>%d - %c - %L [%t] %-5p %x - %m%n</pattern>
                </PatternLayout>
                <Policies>
                    <SizeBasedTriggeringPolicy size="102400KB"/>
                </Policies>
                <DefaultRolloverStrategy max="30"/>
            </RollingFile>
        </Appenders>
        <Loggers>
            <logger name="org.apache.zookeeper" level="DEBUG"/>
            <logger name="io.grpc.netty" level="DEBUG"/>
            <Root level="debug">
                <AppenderRef ref="RollingFile"/>
            </Root>
        </Loggers>
    </Configuration>
    

2.3 修改启动文件(bat文件)

这里需要修改启动文件,保险起见,如果skywaling路径或者jdk路径有空格、中文都会导致闪退
文件路径 在bin 目录下
下面的文件请使用文本编辑器打开 如 notepad++ 等

  • 修改collector的启动文件 oapService.bat
	@echo off
	
	setlocal
	set OAP_PROCESS_TITLE=Skywalking-Collector
	@REM set OAP_HOME=%~dp0%.. #注释此行
	set OAP_HOME=D:\skywalking # 然后指定全路径(修改为你的全路径) 此路径不可有空格
	set OAP_OPTS="-Xms256M -Xmx512M -Doap.logDir=%OAP_HOME%\logs"
	
	set CLASSPATH=%OAP_HOME%\config;.;
	set CLASSPATH=%OAP_HOME%\oap-libs\*;%CLASSPATH%
	
	set SW_JAVA_HOME=C:\jdk11\jdk-11.0.10 #指定jdk 使用11 此路径不可有空格
	# 下面所有的JAVA_HOME  改为  SW_JAVA_HOME
	if defined SW_JAVA_HOME ( 
	 set _EXECJAVA="%SW_JAVA_HOME%\bin\java"
	)
	
	if not defined SW_JAVA_HOME (
	 echo "SW_JAVA_HOME not set."
	 set _EXECJAVA=java
	)
	
	start "%OAP_PROCESS_TITLE%" %_EXECJAVA% "%OAP_OPTS%" -cp "%CLASSPATH%" org.apache.skywalking.oap.server.starter.OAPServerStartUp
	endlocal
  • 修改uI的启动文件 webappService.bat
	@echo off
	
	setlocal
	set WEBAPP_PROCESS_TITLE=Skywalking-Webapp
	@REM set WEBAPP_HOME=%~dp0%.. #注释此行
	set WEBAPP_HOME=D:\skywalking # 然后指定全路径(修改为你的全路径) 此路径不可有空格
	set JARPATH=%WEBAPP_HOME%\webapp
	set WEBAPP_LOG_DIR=%WEBAPP_HOME%\logs
	
	if not exist "%WEBAPP_LOG_DIR%" (
	    mkdir "%WEBAPP_LOG_DIR%"
	)
	
	set SW_JAVA_HOME=C:\jdk11\jdk-11.0.10  #指定jdk 使用11 此路径不可有空格
	
	# 下面所有的JAVA_HOME  改为  SW_JAVA_HOME
	if defined SW_JAVA_HOME (
	 set _EXECJAVA="%SW_JAVA_HOME%\bin\java"
	)
	
	if not defined SW_JAVA_HOME (
	 echo "SW_JAVA_HOME not set."
	 set _EXECJAVA=java
	)
	
	start "%WEBAPP_PROCESS_TITLE%" %_EXECJAVA% -Dwebapp.logDir=%WEBAPP_LOG_DIR% -cp %JARPATH%/skywalking-webapp.jar;%JARPATH% org.apache.skywalking.oap.server.webapp.ApplicationStartUp
	endlocal


2.4 启动

  • 修改完毕后。bin目录下执行 startup.bat
.\startup.bat
  • 如图所示:skywalking9.4 使用elasticsearch8.7 做存储

  • 打开浏览器输入 http://skyingwalking安装机器的ip:18182 (uI的端口,上面介绍了)
    skywalking9.4 使用elasticsearch8.7 做存储
    到这里 skingwalking 的安装就算完成了,下面就是如何使用了

3.安装skywalking-agent

要配合agent 来使用skywalking 进行链路追踪和日志收集

3.1 下载

  • 下载地址:选择agents 版本8.14.0
    skywalking9.4 使用elasticsearch8.7 做存储

  • 解压:使用7zip等解压缩工具,完整目录

  • skywalking9.4 使用elasticsearch8.7 做存储

  • 然后将解压缩后的文件夹 放到 skywalking 目录,便于管理
    skywalking9.4 使用elasticsearch8.7 做存储

3.2 使用方法

3.2.1 查看配置文件

配置文件路径:skywalking-agent/config/agent.config

分析其中的配置 便于下面使用

# 这个是使用项目的名称 我们配置时 skywalking.agent.service_name
gent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
# 探针的命名空间,如果在一个微服务链路中配置的不一致那么 就会追踪不到后面的,所以这里我们不配置
agent.namespace=${SW_AGENT_NAMESPACE:}
# 集群,使用的是单机模式
agent.cluster=${SW_AGENT_CLUSTER:}

# 如果配置了权限,使用时需要添加此参数
agent.authentication=${SW_AGENT_AUTHENTICATION:}

# 不统计的请求类型,如需要其他的类型,自行添加
agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg,span}

# 这个指的是一个项目中的各个微服务的名称,如果不配置默认使用uuid 来代替,会无法识别哪个微服务
agent.instance_name=${SW_AGENT_INSTANCE_NAME:}

# 这里是skywalking收集的地址 默认是127.0.0.1:11800 我这里就是这个默认地址,可以不配置的
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

# 日志级别 默认不修改
logging.level=${SW_LOGGING_LEVEL:INFO}
# 指定日志文件名称 默认不修改
logging.file_name=${SW_LOGGING_FILE_NAME:skywalking-api.log}
# 日志输入类型 默认不修改
logging.output=${SW_LOGGING_OUTPUT:FILE}
# 日志路径 默认不修改
logging.dir=${SW_LOGGING_DIR:}
# 暂时就简单介绍这么多配置,其他配置有需要可查询官网 或者自己测试

3.2.2 将联合微服务项目进行实际使用

介绍主流的3种

jar 包
使用命令时添加指定参数:
java -javaagent:D:\skywalking\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=appName -Dskywalking.agent.instance_name=serive-name -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.logging.file_name=app-agent.log -jar app.jar
# javaagent: 后面跟skywalking-agent.jar(agent项目中那个jar文件)
# appName: 项目名称
# serive-name:微服务名称
# 127.0.0.1:11800 :自己开启的skywalking 收集地址+端口
# app-agent.log :指定的文件名称
war 包
在tomcat 中的启动文件 catalina.sh 或者 catalina.bat 的文件 头部添加
CATALINA_OPTS="$CATALINA_OPTS D:\skywalking\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=appName -Dskywalking.agent.instance_name=serive-name -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.logging.file_name=app-agent.log"; export CATALINA_OPTS
# javaagent: 后面跟skywalking-agent.jar(agent项目中那个jar文件)
# appName: 项目名称
# serive-name:微服务名称
# 127.0.0.1:11800 :自己开启的skywalking 收集地址+端口
# app-agent.log :指定的文件名称

skywalking9.4 使用elasticsearch8.7 做存储

开发工具IDEA
打开项目的启动配置窗口 添加vmOptions
-javaagent:D:\skywalking\skywalking-agent\skywalking-agent.jar
-Dskywalking.agent.service_name=appName
-Dskywalking.agent.instance_name=1-server
-Dskywalking.collector.backend_service=127.0.0.1:11800
-Dskywalking.logging.file_name=1-agent.log

skywalking9.4 使用elasticsearch8.7 做存储
skywalking9.4 使用elasticsearch8.7 做存储
skywalking9.4 使用elasticsearch8.7 做存储

上面3种是常用的3种使用方式

4.测试链路追踪

使用IDEA的方式来测试

  1. 发送请求
    skywalking9.4 使用elasticsearch8.7 做存储

  2. skywalking的UI界面
    skywalking9.4 使用elasticsearch8.7 做存储
    skywalking9.4 使用elasticsearch8.7 做存储
    skywalking9.4 使用elasticsearch8.7 做存储

skywalking9.4 使用elasticsearch8.7 做存储

skywalking9.4 使用elasticsearch8.7 做存储文章来源地址https://www.toymoban.com/news/detail-496127.html

5.配置日志格式,完成skywalking日志收集

  1. 在每个微服务中新建logback.xml 并配置如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds" packagingData="true">
    <!-- 引入springboot 默认的打印日志模板 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <!-- 在原模板中添加 [%red(%tid)] %red() 指定红色可不添加 -->
    <property name="CONSOLE_LOG_PATTERN_SW" value="${CONSOLE_LOG_PATTERN_SW:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} [%red(%tid)] %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>${CONSOLE_LOG_PATTERN_SW}</Pattern>
            </layout>
        </encoder>
    </appender>

<!-- 此处配置grpc 推送给skywalking的日志 -->
    <appender name="grpc" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="stdout"/>
        <appender-ref ref="grpc"/>
    </root>
</configuration>

  1. 然后中重启每个服务,发起请求,然后再去查询log 就有日志了

到了这里,关于skywalking9.4 使用elasticsearch8.7 做存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • skywalking使用ES做存储在K8S上的部署,使用实践

    本来不打算写这块来的,当初觉得这部分相对来说比较简单,主要部署好skywalking-oap server 跟展示端 skywalking-ui就完事了,结果在实际部署过程中发现,通过SSL协议连接ES这块居然是个卡点,搞了半天,网上也没啥文章能照着做通的,唯一让我有实质性帮助的是chatgpt…为了给人

    2024年04月26日
    浏览(23)
  • docker安装es8.x及elasticSearch8部分api使用

    docker中安装es8 1、es8的tar下载地址: tar包下载地址) 2、docker load -i es-name 3、docker run -d --name elasticsearch-8.6.2 -e ES_JAVA_OPTS=“-Xms256m -Xmx256m” -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” elasticsearch:8.6.2 4、8开始以后不支持直接使用http方式访问es: 4.1、cd /usr/share/elasticsearch/config 4

    2024年02月12日
    浏览(36)
  • SpringBoot集成Elasticsearch8.x(6)|(新版本Java API Client使用)

    章节 章节 第一章链接: SpringBoot集成Elasticsearch7.x(1)|(增删改查功能实现) 第二章链接: SpringBoot集成Elasticsearch7.x(2)|(复杂查询) 第三章链接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指标聚合查询) 第四章链接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合

    2024年02月08日
    浏览(38)
  • # SpringBoot集成Elasticsearch8.5.x(5)|( 新版本Java API Client使用)

    章节 章节 第一章链接: SpringBoot集成Elasticsearch7.x(1)|(增删改查功能实现) 第二章链接: SpringBoot集成Elasticsearch7.x(2)|(复杂查询) 第三章链接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指标聚合查询) 第四章链接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合

    2023年04月13日
    浏览(38)
  • 手把手教程:Linux使用docker安装ElasticSearch8.2.3和配套Kibana

    前言 之前用的es一直是比较老的版本,最近做项目的时候觉得该用一个稍微新一点的了,就琢磨了一下新版本的使用,顺便整理下安装流程。之所以要整理这个,是因为新版本的ES跟老版本的安装过程差别太大了,特别是要配套Kibana的情况下。 开放端口 在云服务器控制台配置

    2024年02月11日
    浏览(38)
  • SpringBoot集成Elasticsearch8.x(7)|(新版本Java API Client使用完整示例)

    章节 第一章链接: SpringBoot集成Elasticsearch7.x(1)|(增删改查功能实现) 第二章链接: SpringBoot集成Elasticsearch7.x(2)|(复杂查询) 第三章链接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指标聚合查询) 第四章链接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合查询)

    2024年02月16日
    浏览(48)
  • windows环境基于Elasticsearch8.4.0的IK中文分词器的安装、部署、使用

    目录 问题现象: 解决方法: 1、下载IK中文分词器 2、部署 3、使用 前言(选看)       最近在重温Elasticsearch,看来一下官网,都出到8.4.3版本了。想当初学的时候用的还是5.6.8,版本更新了很多意味着有大变动。           windows环境基于Elasticsearch8.4.0的IK中文分词器的安

    2024年02月13日
    浏览(30)
  • Elasticsearch8 - Docker安装Elasticsearch8.12.2

    最近在学习 ES,所以需要在服务器上装一个单节点的 ES 服务器环境:centos 7.9 目前最新版本是 8.12.2 新增配置文件 elasticsearch.yml 解释一下,前三行是开启远程访问和跨域,最后一行是开启密码访问 Networking | Elasticsearch Guide [8.12] | Elastic 在宿主机创建容器的挂载目录,我的目录

    2024年04月15日
    浏览(36)
  • Docker安装ElasticSearch8.X docker安装elasticsearch8.X完整详细教程

    Docker常用命令大全 Docker ElasticSearch 官方仓库 Docker 生产环境安装Elasticsearch教程 我这边选择的版本是 docker pull elasticsearch:8.8.1 在终端中执行以下命令以拉取 docker pull elasticsearch:8.8.1 根据自己使用过的版本: 使用以下命令创建一个新的 elasticsearch 容器并将其启动: --name 是 容器

    2024年02月15日
    浏览(34)
  • ElasticSearch8 - SpringBoot整合ElasticSearch

    springboot 整合 ES 有两种方案,ES 官方提供的 Elasticsearch Java API Client 和 spring 提供的 [Spring Data Elasticsearch](Spring Data Elasticsearch) 两种方案各有优劣 Spring:高度封装,用着舒服。缺点是更新不及时,有可能无法使用 ES 的新 API ES 官方:更新及时,灵活,缺点是太灵活了,基本是一

    2024年03月25日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包