Why SkyWalking?
Skywalking 是一個優秀的APM(application performance monitor)應用性能監控系統,針對微服務場景設計,可以友善的實作Spring cloud等微服務場景下的性能監控、鍊路追蹤等。
而v8.x版本也支援了日志收集功能,可以取代ELK作為分布式下日志收集的方案。一個系統實作 監控+追蹤+日志 的多個能力,有效降低微服務下運維的複雜度。
下面我們以Spring cloud為例,一起玩轉Skywalking
1. 環境準備與安裝
要實作 監控+追蹤+日志 ,我們需要安裝基礎的 APM 和 Java agent。
進入下載下傳頁面:SkyWalking 下載下傳
下載下傳 SkyWalking APM 以及 Java agent 如下兩個壓縮包:
下載下傳完成後解壓,嘗試運作 /apache-skywalking-apm-bin/bin/startup.bat (或 startup.sh )
通路 http://localhost:8080/ ,即可看到SkyWalking監控UI
以上安裝為直接安裝,如需docker等安裝方式可參考SkyWalking官方文檔
2. 配置SkyWalking日志收集(logback為例)
pom 中依賴 SkyWalking 的 logback 插件包:
<!-- SkyWalking log collection -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.9.0</version>
</dependency>
添加/修改 logback.xml,啟用 SkyWalking 提供的 appender,示例配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<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>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern>
</layout>
</encoder>
</appender>
<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>
3. 配置Java agent
IDEA開發環境下配置Java agent:
打開各個服務應用的 Edit Run/Debug Configurations ,添加如下VM options:
-javaagent:D:/Server/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=yourAppName -Dskywalking.collector.backend_service=localhost:11800
生産環境下配置Java agent:
Tomcat伺服器配置及 以 java -jar 運作的配置方式:具體可參考 SkyWalking官方Java agent配置文檔
4. 啟動微服務下的各個服務應用
然後進入你的spring cloud微服務前端UI做些操作,用以驗證監控和日志。
5. 通路SkyWalking UI控制台 http://localhost:8080/
性能監控 效果示例(該優化哪個接口一清二楚了):
鍊路追蹤 效果示例(慢在哪個環節也看到了):
日志收集 效果示例:
注意:預設SkyWalking用的是H2資料庫存儲,不支援全文檢索方式查日志内容。生産環境建議