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資料庫儲存,不支援全文檢索方式查日誌內容。生產環境建議切換為ElasticSearch儲存。