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;
	}
    
    }
相关推荐
杰克逊的日记1 天前
SkyWalking的工作原理和搭建过程
云原生·监控·skywalking
醇氧2 天前
【skywalking】index“:“skywalking_metrics-all“},“status“:404}
skywalking
·云扬·6 天前
【PmHub后端篇】Skywalking:性能监控与分布式追踪的利器
分布式·skywalking
大G哥15 天前
【微服务】SpringBoot制作Docker镜像接入SkyWalking详解
spring boot·docker·微服务·架构·skywalking
小黄人V18 天前
使用skywalking进行go的接口监控和报警
数据库·golang·skywalking
Hoking20 天前
SpringBoot应用原生或docker镜像容器集成Skywalking
docker·容器·skywalking
mask哥21 天前
详解最新链路追踪skywalking框架介绍、架构、环境本地部署&配置、整合微服务springcloudalibaba 、日志收集、自定义链路追踪、告警等
java·spring cloud·架构·gateway·springboot·skywalking·链路追踪
小小工匠1 个月前
架构思维: 全链路日志深度解析
微服务·架构·skywalking
y_bccl272 个月前
链路追踪Skywalking
skywalking
乄bluefox2 个月前
SkyWalking+Springboot实战(最详细)
skywalking