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;
	}
    
    }
相关推荐
摇滚侠3 天前
Skywalking 应用性能监控和可观测性分析平台 简介
skywalking
Databuff3 天前
skywalking 快速使用入门
skywalking
摇滚侠5 天前
Apache Skywalking 实战 阅读笔记 第三章
笔记·apache·skywalking
摇滚侠6 天前
Apache Skywalking 实战 阅读笔记 第二章
笔记·apache·skywalking
Databuff6 天前
国产开源APM databuff 成为 CNCF 顶级项目opentelemetry 官宣Vendor
运维·开源·skywalking·apm·可观测性·opentelemetry
摇滚侠7 天前
Skywalking 全套教程 环境搭建 01-05
skywalking
摇滚侠7 天前
Apache Skywalking 实战 阅读笔记 第一章
笔记·apache·skywalking
就改了1 个月前
Windows 环境 SkyWalking 完整实操教程
windows·微服务·skywalking
Jul1en_1 个月前
【SpringCloud】SkyWalking 链路追踪知识详解及部署教程
java·后端·spring·spring cloud·skywalking
SRETalk1 个月前
SkyWalking / Jaeger / ARMS 已经有了,还需要统一可观测平台吗
skywalking·apm·jaeger·flashcat·arms