skywalking9.4 使用elasticsearch8.7 做存储

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

名称版本
skywalking9.4
agent8.14
elasticsearch8.7
H21.14.0(安装els 过程中可能会用到)
安装环境window10/11

1.安装elasticsearch8.7

先安装els

1.1 下载

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

修改 elasticsearch-8.7.0\config 中 jvm.options 文件,否则会导致系统卡死
在这里插入图片描述

1.3 启动并修改配置

  1. 进入到bin 文件夹下执行 elasticsearch.bat
    在这里插入图片描述

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

  3. 浏览器中输入ip:9200来查看是否成功,我这里是本地所以使用 http://127.0.0.1:9200
    在这里插入图片描述

  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

在这里插入图片描述
5. 然后重启

1.4 重置密码

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

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

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

手动输入密码

在这里插入图片描述

  • 然后重启els

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

2. 安装skywalking

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

2.1 下载

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
  • 如图所示:在这里插入图片描述

  • 打开浏览器输入 http://skyingwalking安装机器的ip:18182 (uI的端口,上面介绍了)
    在这里插入图片描述
    到这里 skingwalking 的安装就算完成了,下面就是如何使用了

3.安装skywalking-agent

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

3.1 下载

  • 下载地址:选择agents 版本8.14.0
    在这里插入图片描述

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

  • 在这里插入图片描述

  • 然后将解压缩后的文件夹 放到 skywalking 目录,便于管理
    在这里插入图片描述

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 :指定的文件名称

在这里插入图片描述

开发工具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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

4.测试链路追踪

使用IDEA的方式来测试

  1. 发送请求
    在这里插入图片描述

  2. skywalking的UI界面
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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 就有日志了
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值