skywalking 搭建

skywalking

安装

安装服务器: 172.16.118.101

JDK 信息

[root@localhost logs]# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

下载安装包: /home/kenny/Downloads/apache-skywalking-apm-8.9.1.tar.gz

安装位置:/usr/local/skywalking/apache-skywalking-apm-bin

cd /usr/local/skywalking/apache-skywalking-apm-bin/bin

启动日志收集服务:sh oapService.sh

启动不会有日志输出,需要到日志目录查看相关的日志输出情况

[root@localhost ~]# cd /usr/local/skywalking/apache-skywalking-apm-bin/logs/
[root@localhost logs]# ls
oap.log  skywalking-oap-server.log  webapp-console.log

启动UI服务: sh webappService.sh

默认端口比较容易和其他端口冲突,编辑 webapp.yml 修改端口

[root@localhost skywalking]# vim apache-skywalking-apm-bin/webapp/webapp.yml

server:
  port: 12900

修改好文件后,停掉原来的服务,重新启动,访问 http://172.16.118.101:12900/

修改使用 es 存储数据

Agent

IDEA

VM options 添加代理参数

-javaagent:/Users/kenny/skywalking/skywalking-agent/skywalking-agent.jar

Environment variables

SW_AGENT_COLLECTOR_BACKEND_SERVICES=172.16.118.101:11800;SW_AGENT_NAME=redjujubetree

默认情况下,ThreadPool 是不会被代理,无法获取 traceId 的相关的信息,开启此功能需要将 bootstrap-plugins apm-jdk-threadpool-plugin.jar 拷贝到 plugins 目录下来开启此功能

logback

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <!-- 引入 Spring Boot 默认的 logback XML 配置文件  -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <!-- 控制台 Appender -->
    <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %tid %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    <appender name="console" 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}</Pattern>
            </layout>
        </encoder>
    </appender>

    <!-- 从 Spring Boot 配置文件中,读取 spring.application.name 应用名 -->
    <springProperty name="applicationName" scope="context" source="spring.application.name" />
    <property name="FILE_LOG_PATTERN" value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } %tid --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    <!-- 日志文件的路径 -->
    <property name="LOG_FILE" value="/Users/kenny/IdeaProjects/example/logs/${applicationName}.log"/>
    <!-- 日志文件 Appender -->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}</file>
        <!--滚动策略,基于时间 + 大小的分包策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxHistory>7</maxHistory>
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <!-- 日志的格式化 -->
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>${FILE_LOG_PATTERN}</Pattern>
            </layout>
        </encoder>
    </appender>

    <!-- 设置 Appender -->
    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>

</configuration>

添加用户名和密码

为 skywalking 添加密码登录设置, skywalking 在后期的版本中没有不再支持直接在yaml 文件中配置明文的用户名称和密码,这里我们借助NGINX的验证能力进行操作

安装 htpasswd 工具

centos

shell 复制代码
sudo yum install httpd-tools

生成密码文件

shell 复制代码
htpasswd -c /etc/nginx/.htpasswd skywalking

若需要为已有文件添加新用户:

bash 复制代码
htpasswd /etc/nginx/.htpasswd another_user

修改 Nginx 配置

conf 复制代码
server {
    listen       80;
    server_name  localhost;

    #配置全局密码, 如果需要部分访问需要密码,可以将一下两个配置放在指定的location 映射之下
    auth_basic  "enter the username and password";
    auth_basic_user_file  /usr/local/nginx/password;

	location / {
	    proxy_pass http://127.0.0.1:12900;
	    proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}
    
    }
相关推荐
vip1024p7 天前
分布式监控Skywalking安装及使用教程(保姆级教程)
分布式·skywalking
飞火流星0202714 天前
SkyWalking集成Kafka实现日志异步采集经验总结
kafka·skywalking·skywalking日志采集·skywalking异步采集·skywalking配置·kafka数据压缩算法·kafka客户端工具
stone.eye16 天前
阿里云通过docker安装skywalking及elasticsearch操作流程
elasticsearch·阿里云·docker·skywalking
LUCIAZZZ16 天前
SkyWalking快速入门
java·后端·spring·spring cloud·微服务·springboot·skywalking
m0_7482495416 天前
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
spring boot·后端·skywalking
信徒_19 天前
Zipkin 和 SkyWalking 区别
skywalking
m0_7482313119 天前
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
spring boot·后端·skywalking
DT辰白22 天前
SkyWalking 10.1.0 实战:从零构建全链路监控,解锁微服务性能优化新境界
微服务·架构·skywalking
C1829818257522 天前
skywalking实现原理
skywalking
霍格沃兹测试开发学社测试人社区1 个月前
性能测试丨分布式性能监控系统 SkyWalking
软件测试·分布式·测试开发·skywalking