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.ymlserver: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 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
sudo yum install httpd-tools
生成密码文件
htpasswd -c /etc/nginx/.htpasswd skywalking
若需要为已有文件添加新用户:
htpasswd /etc/nginx/.htpasswd another_user
修改 Nginx 配置
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;}}