apm工具-skywalking6.4(docker安裝)

skywalking簡介

SkyWalking:一個開放源碼,從微服務和雲本地基礎設施可觀測性平臺,收集、分析、聚合和可視化數據。提供了一種簡便的方法讓你看清你的分佈式系統,可以看清整個微服務的調用鏈路。它是一個現代,專門爲雲本機,容器和分佈式系統提供監控的APM(應用性能管理(Application Performance Management))。
在這裏插入圖片描述

service map

面對以上圖情況, 我們就需要一些可以幫助理解系統行爲、用於分析性能問題的工具,以便發生故障的時候,能夠快速定位和解決問題,這時候 APM(應用性能管理)工具就該閃亮登場了。

目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking,這裏主要介紹 SkyWalking ,它是一款優秀的國產 APM 工具,包括了分佈式追蹤、性能指標分析、應用和服務依賴分析等。

下面是 SkyWalking 6.x 的架構圖:

在這裏插入圖片描述

官網簡介(https://github.com/apache/skywalking)
服務介紹:

  • oas(Observability Analysis Platform):用於接收微服務代理上傳的鏈路信息,並存儲。
  • ui:用於展示鏈路信息。
  • 存儲:用於保存鏈路數據,可以使用es或者mysql等存儲。

skywalking服務器安裝

docker-compose安裝方式(https://github.com/apache/skywalking-docker/blob/master/6/6.4/compose/docker-compose.yml)

注意默認oap安裝的時區是0時區,所以你在界面右下角選擇應該也是零時區,否則差8個小時,可以將oap默認時區修改爲東八區,界面也就默認東八區查詢

version: '3.3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.1
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
  oap:
    image: apache/skywalking-oap-server:6.4.0
    container_name: oap
    depends_on:
      - elasticsearch
    links:
      - elasticsearch
    restart: always
    ports:
      - 11800:11800
      - 12800:12800
    environment:
      SW_STORAGE: elasticsearch
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
      TZ: Asia/Shanghai
  ui:
    image: apache/skywalking-ui:6.4.0
    container_name: ui
    depends_on:
      - oap
    links:
      - oap
    restart: always
    ports:
      - 8080:8080
    environment:
      SW_OAP_ADDRESS: oap:12800

執行命令:

[root@ip_192_168_1_134 cent]# docker-compose up -d
Starting elasticsearch ... done
Starting oap           ... done
Starting ui            ... done

查看所有服務:

[root@ip_192_168_1_134 cent]# docker ps
CONTAINER ID        IMAGE                                                 COMMAND                  CREATED             STATUS              PORTS                                                          NAMES
2e53a46e4b58        apache/skywalking-ui:6.4.0                            "bash docker-entrypo…"   17 minutes ago      Up 12 minutes       0.0.0.0:8080->8080/tcp                                         ui
b26d892b7a5e        apache/skywalking-oap-server:6.4.0                    "bash docker-entrypo…"   17 minutes ago      Up 10 minutes       0.0.0.0:11800->11800/tcp, 1234/tcp, 0.0.0.0:12800->12800/tcp   oap
ccdf1f078973        docker.elastic.co/elasticsearch/elasticsearch:6.8.1   "/usr/local/bin/dock…"   17 minutes ago      Up 12 minutes       0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp  

其中 8080端口是ui端口,瀏覽器訪問:http://ip:8080

在這裏插入圖片描述

skywalking代理

可以理解每個微服務都是一個上傳鏈路信息的埋點,需要在應用啓動注入代理工具,對代碼無侵入。
skywalking同時支持java,donetcore,支持跨語言調用鏈路等,這也是優於pinpoint的主要點。

java代理

java代理安裝文檔(https://github.com/apache/skywalking/blob/v6.4.0/docs/en/setup/service-agent/java-agent/README.md)

下載完整安裝包
參考(https://github.com/apache/skywalking/blob/master/docs/en/setup/README.md)

下載Binary Distribution (Windows),目錄結構:

其中agent目錄用於設置java代理,目錄結構:

在這裏插入圖片描述

springboot應用中啓動方式:

java -Denv=uat  -Dskywalking.agent.service_name=ums -Dskywalking.collector.backend_service=192.168.1.134:11800 -Dskywalking.plugin.mysql.trace_sql_parameters=true -javaagent:F:/soft/apache-skywalking-apm-bin/agent/skywalking-agent.jar -jar ums-app-1.0.12-SNAPSHOT.jar
  • skywalking.collector.backend_service:表示oap收集器地址。
  • skywalking.agent.service_name:表示當前微服務名稱
  • skywalking.plugin.mysql.trace_sql_parameters:表示是否抓取sql語句的參數,默認是false。
  • -javaagent:F:/soft/apache-skywalking-apm-bin/agent/skywalking-agent.jar:指定代理jar

-D配置項在 agent/config/agent.config配置也可,但是不夠靈活。

忽略端點

某些端口比如consul,apollo,數據庫的關閉動作等都不需要,
在這裏插入圖片描述

skywalking中可選插件中有apm-trace-ignore-plugin可以通過端點名稱忽略日誌
在這裏插入圖片描述

拷貝agent/optional-plugins/apm-trace-ignore-plugin-6.4.0.jar到plugins目錄

agent/config目錄新建apm-trace-ignore-plugin.config文件添加配置:

trace.ignore_path=/v1/agent/**,/v1/event/**,/v1/catalog/**,/v1/health/**,Mysql/JDBI/Statement/executeQuery,Mysql/JDBI/Connection/close

多個端點path使用,隔開。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章