天天看點

skywalking使用方法_skywalking 6.1 簡明指南

skywalking

分布式系統的應用程式性能監視工具,專為微服務、雲本機架構和基于容器(Docker、K8s、Mesos)架構而設計

背景

随着微服務架構的流行,一些微服務架構下的問題也會越來越突出,比如一個請求會涉及多個服務,而服務本身可能也會依賴其他服務,整個請求路徑就構成了一個網狀的調用鍊,而在整個調用鍊中一旦某個節點發生異常,整個調用鍊的穩定性就會受到影響,是以會深深的感受到 “銀彈” 這個詞是不存在的,每種架構都有其優缺點 。

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

安裝

JDK 1.8

wget https://mirrors.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz

tar zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local

mv /usr/local/jdk1.8.0_151/ /usr/local/jdk

cat < /etc/profile.d/java_home.sh

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

EOF

source /etc/profile

ElasticSearch 要求 6.3+

wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.7.0/elasticsearch-6.7.0.rpm

rpm -ivh elasticsearch-6.7.0.rpm

修改配置檔案

[[email protected] ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml

cluster.name: my-application

node.name: node-1

path.data: /home/work/elk

path.logs: /home/work/elk/logs

network.host: 0.0.0.0

http.port: 9200

啟動服務

systemctl daemon-reload

systemctl enable elasticsearch.service

systemctl start elasticsearch.service

systemctl status elasticsearch.service

curl localhost:9200

skywalking 6.1 服務端

wget http://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/6.1.0/apache-skywalking-apm-6.1.0.tar.gz

tar zxvf apache-skywalking-apm-6.1.0.tar.gz -C /usr/local

目錄結構

[[email protected] apache-skywalking-apm-bin]# ls -l

total 80

drwxrwxr-x 7 1001 1002 118 Apr 30 17:00 agent

drwxr-xr-x 2 root root 241 May 9 14:59 bin

drwxr-xr-x 2 root root 175 May 17 11:30 config

-rw-rw-r-- 1 1001 1002 27549 Apr 30 16:48 LICENSE

drwxrwxr-x 3 1001 1002 4096 May 9 14:59 licenses

drwxr-xr-x 2 root root 98 May 9 15:09 logs

drwxr-xr-x 2 root root 78 May 9 15:55 mesh-buffer

-rw-rw-r-- 1 1001 1002 29638 Apr 30 16:48 NOTICE

drwxrwxr-x 2 1001 1002 8192 Apr 30 17:07 oap-libs

-rw-rw-r-- 1 1001 1002 1978 Apr 30 16:48 README.txt

drwxr-xr-x 3 root root 88 May 9 15:55 trace-buffer

drwxr-xr-x 2 root root 53 May 9 14:59 webapp

配置檔案

[[email protected] config]# egrep -v "^#|^$" config/application.yml

cluster:

standalone:

# Please check your ZooKeeper is 3.5+, However, it is also compatible with ZooKeeper 3.4.x. Replace the ZooKeeper 3.5+

# library the oap-libs folder with your ZooKeeper 3.4.x library.

core:

default:

# Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate

# Receiver: Receive agent data, Level 1 aggregate

# Aggregator: Level 2 aggregate

role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator

restHost: ${SW_CORE_REST_HOST:0.0.0.0}

restPort: ${SW_CORE_REST_PORT:12800}

restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}

gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}

gRPCPort: ${SW_CORE_GRPC_PORT:13800}

downsampling:

- Hour

- Day

- Month

# Set a timeout on metric data. After the timeout has expired, the metric data will automatically be deleted.

recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:90} # Unit is minute

minuteMetricsDataTTL: ${SW_CORE_MINUTE_METRIC_DATA_TTL:90} # Unit is minute

hourMetricsDataTTL: ${SW_CORE_HOUR_METRIC_DATA_TTL:36} # Unit is hour

dayMetricsDataTTL: ${SW_CORE_DAY_METRIC_DATA_TTL:45} # Unit is day

monthMetricsDataTTL: ${SW_CORE_MONTH_METRIC_DATA_TTL:18} # Unit is month

storage:

elasticsearch:

nameSpace: ${SW_NAMESPACE:""}

#設定elk的ip

clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:172.16.103.64:9200}

indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}

indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}

receiver-sharing-server:

default:

receiver-register:

default:

receiver-trace:

default:

bufferPath: ${SW_RECEIVER_BUFFER_PATH:../trace-buffer/} # Path to trace buffer files, suggest to use absolute path

bufferOffsetMaxFileSize: ${SW_RECEIVER_BUFFER_OFFSET_MAX_FILE_SIZE:100} # Unit is MB

bufferDataMaxFileSize: ${SW_RECEIVER_BUFFER_DATA_MAX_FILE_SIZE:500} # Unit is MB

bufferFileCleanWhenRestart: ${SW_RECEIVER_BUFFER_FILE_CLEAN_WHEN_RESTART:false}

sampleRate: ${SW_TRACE_SAMPLE_RATE:10000} # The sample rate precision is 1/10000. 10000 means 100% sample in default.

slowDBAccessThreshold: ${SW_SLOW_DB_THRESHOLD:default:200,mongodb:100} # The slow database access thresholds. Unit ms.

receiver-jvm:

default:

receiver-clr:

default:

service-mesh:

default:

bufferPath: ${SW_SERVICE_MESH_BUFFER_PATH:../mesh-buffer/} # Path to trace buffer files, suggest to use absolute path

bufferOffsetMaxFileSize: ${SW_SERVICE_MESH_OFFSET_MAX_FILE_SIZE:100} # Unit is MB

bufferDataMaxFileSize: ${SW_SERVICE_MESH_BUFFER_DATA_MAX_FILE_SIZE:500} # Unit is MB

bufferFileCleanWhenRestart: ${SW_SERVICE_MESH_BUFFER_FILE_CLEAN_WHEN_RESTART:false}

istio-telemetry:

default:

envoy-metric:

default:

query:

graphql:

path: ${SW_QUERY_GRAPHQL_PATH:/graphql}

alarm:

default:

telemetry:

none:

啟動服務端

bin/startup.sh

浏覽器通路ip:8080 端口 ,使用者密碼 admin/admin

skywalking 6.1 用戶端

[[email protected] apache-skywalking-apm-bin]# egrep -v "^#|^$" agent/config/agent.config

agent.service_name=${SW_AGENT_NAME:Micros}

collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:172.16.103.64:13800}

logging.level=${SW_LOGGING_LEVEL:DEBUG}

傳送到要監控的機器上

Java

https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/README.md

nodejs

https://github.com/SkyAPM/SkyAPM-nodejs