赞
踩
本文主要讲解分布式链路追踪监控系统Skywalking的安装及使用教程,从0到1,图文并茂的保姆级教程。
SkyWalking是一款用于分布式系统跟踪和性能监控的开源工具。它可以帮助开发人员了解分布式系统中不同组件之间的调用关系和性能指标,从而进行故障排查和性能优化。
它支持多种语言和框架,包括Java、.NET、Node.js等。它通过在应用程序中插入代理或使用特定的SDK来收集跟踪数据,并将这些数据发送到SkyWalking服务器进行分析和展示。
Skywalking的数据存储方式默认为h2内存数据库,也支持存储到mysql,Elasticsearch,由于监控采集的数据量较大,并存在很多的数据检索需求,推荐将其存储到Elasticsearch中。
ElasticSearch官方安装教程,包括Windows,Mac,Linux,Docker安装教程,推荐使用Docker安装,简单快捷。
Skywalking的安装方式包括以下两种
手动编译流程较为复杂,一般情况下,我们建议使用官方包。有定制化需求的可手动编译
可手动下载后上传至服务器,或直接执行命令下载:
cd /usr/local
wget https://www.apache.org/dyn/closer.cgi/skywalking/9.7.0/apache-skywalking-apm-9.7.0.tar.gz
下载完成后解压进入安装目录:
tar -zxvf apache-skywalking-apm-9.7.0.tar.gz
cd apache-skywalking-apm-bin
ls
我们到bin目录可以看到一些启动脚本,.bat为Windows下使用,.sh为linux/Mac下使用。
我们./startup.sh即会启动Skywalking的服务,但是在启动之前我们需要修改一些配置文件。
我们vim startup.sh可以看到里面调用了oapService.sh, webappService.sh两个脚本,oapService为Skywalking的核心后端服务,用来接收各个服务的监控数据并解析处理存储到数据库中,webappService为Web项目,用来展示Skywalking的监控数据,图表分析等。
PRG="$0"
PRGDIR=`dirname "$PRG"`
OAP_EXE=oapService.sh
WEBAPP_EXE=webappService.sh
"$PRGDIR"/"$OAP_EXE"
"$PRGDIR"/"$WEBAPP_EXE"
我们到webapp目录编辑application.yml可修改web程序的端口号。
serverPort: 8902
# Comma seperated list of OAP addresses.
oapServices: ${SW_OAP_ADDRESS:-http://localhost:12800}
zipkinServices: ${SW_ZIPKIN_ADDRESS:-http://localhost:9412}
接下来我们到apache-skywalking-apm-bin/config目录下,查看:
这里包含很多配置文件,我们主要使用的有application.yml(oap核心配置文件),alarm-settings.yml(Webhook/钉钉告警配置)。
在修改application.yml配置之前,我们需要获取到elasticsearch的ssl证书,进入elasticsearch的安装目录,可通过以下命令获取es的http.p12证书的密码
bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
通过以下命令将http.p12证书转为http.jks格式证书,将密码设置为上述获取的密码
keytool -importkeystore -srckeystore http.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore http.jks
我们打开apache-skywalking-apm-bin/config/application.yml文件
vim apache-skywalking-apm-bin/config/application.yml
找到storage将h2改为elasticsearch,并将下面配置修改为自己安装的elasticsearch的地址,账户密码,https传输需将trustStorePath配置为http.jks的文件路径,trustStorePass配置为http.jks的密码。
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
namespace: ${SW_NAMESPACE:"skywalking-index"}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"https"}
connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
user: ${SW_ES_USER:"elastic"}
password: ${SW_ES_PASSWORD:"+srawm+3fPVeV5Y9oyB3"}
trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:"/Users/changlongmao/certs/http.jks"}
trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:"Lw8_JAZ2QeS6tT7-oaHyZQ"}
配置完毕后即可启动。
mac/linux:
./apache-skywalking-apm-bin/bin/startup.sh
windows:
./apache-skywalking-apm-bin/bin/startup.bat
访问网址:http://localhost:8902/general
即可成功访问,安装成功,若启动失败可到apache-skywalking-apm-bin/logs目录下查看错误日志。
这里自行准备,在网上有很多。
同样在Skywalking官网,滑到下方
可以自行下载,下载后解压,进入到skywalking-agent目录,找到config文件夹,打开agent.config。
# 服务名称
agent.service_name=127.0.0.1::${SW_SERVICE_NAME}
。。。。
。。。。
。。。。。。
# 修改为skywalking部署的地址,11800是skywalking的oap服务的端口
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
启动命令中指定-javaagent到skywalking-agent的目录
nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -DSW_SERVICE_NAME=demo -jar demo.jar >/dev/null 2>&1 &
启动成功后可以看到日志
随意调用这个jar包的接口,或rpc请求,即可在skywalking中看到监控的数据。
配置Skywalking告警可参考这篇文章Skywalking告警指南。已经讲的非常详细。
笔者采用的是钉钉机器人告警,告警配置范例:
rules: # Rule unique name, must be ended with `_rule`. service_resp_time_rule: metrics-name: service_resp_time op: ">" threshold: 3000 period: 10 count: 2 silence-period: 1440 message: 服务【 {name} 】的平均响应时间在最近10分钟有2分钟超过3秒 service_sla_rule: metrics-name: service_sla op: "<" threshold: 8000 period: 10 count: 2 # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period. silence-period: 1440 message: 服务【 {name} 】的成功率在最近10分钟有2分钟低于80% dingtalkHooks: textTemplate: |- { "msgtype": "text", "text": { "content": "Apache SkyWalking 告警: \n %s." } } webhooks: - url: secret:
监控共分三层,服务、服务实例、端点,每个服务代表一个监控的集体,可以部署多个实例,每个实例包含多个端点,端点包含HTTP/RPC请求。每一层都监控分析,拓扑图,追踪,可逐层查看。
本篇文章从0到1帮助读者学习Skywalking,包含安装教程,使用教程,希望对读者有所帮助,留个赞再走,谢谢老板
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。