分布式监控Skywalking安装及使用教程(保姆级教程)

分布式监控Skywalking安装及使用教程(保姆级教程) 分布式监控Skywalking安装及使用教程前言一、Skywalking安装教程1. 安装ElasticSearch前置条件2. 下载Skywalking安装包3. 修改webapp的端口号4.获取elasticsearch的ssl证书5. 修改Skywalking存储至elasticsearch6. 启动skywalking二、使用Skywalking-agent代理java服务1. 准备一个springboot项目的jar包2. 下载Skywalking-agent3. 修改以下agent.config配置4. 启动springboot的jar包三、配置钉钉机器人告警可选四、使用教程五、总结前言本文主要讲解分布式链路追踪监控系统Skywalking的安装及使用教程从0到1图文并茂的保姆级教程。SkyWalking是一款用于分布式系统跟踪和性能监控的开源工具。它可以帮助开发人员了解分布式系统中不同组件之间的调用关系和性能指标从而进行故障排查和性能优化。它支持多种语言和框架包括Java、.NET、Node.js等。它通过在应用程序中插入代理或使用特定的SDK来收集跟踪数据并将这些数据发送到SkyWalking服务器进行分析和展示。分布式跟踪SkyWalking可以追踪分布式系统中各个组件之间的调用链路可以查看请求的流程和耗时情况从而更好地定位问题。性能监控SkyWalking可以监控应用程序的性能指标如请求延迟、吞吐量、错误率等用来评估系统的健康状况并及时发现潜在的性能问题。图表分析SkyWalking提供了丰富的图表分析功能如拓扑图展示、调用链路分析、性能趋势等便于查看系统的运行情况和瓶颈所在。告警和报警SkyWalking可以设置告警规则当系统出现异常或性能指标超过预设阈值时及时通知相关人员以便快速响应和处理。一、Skywalking安装教程1. 安装ElasticSearch前置条件Skywalking的数据存储方式默认为h2内存数据库也支持存储到mysqlElasticsearch由于监控采集的数据量较大并存在很多的数据检索需求推荐将其存储到Elasticsearch中。ElasticSearch官方安装教程包括WindowsMacLinuxDocker安装教程推荐使用Docker安装简单快捷。Skywalking的安装方式包括以下两种下载源码手动编译官方包手动编译流程较为复杂一般情况下我们建议使用官方包。有定制化需求的可手动编译2. 下载Skywalking安装包进入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 PRGDIRdirname $PRG OAP_EXEoapService.sh WEBAPP_EXEwebappService.sh $PRGDIR/$OAP_EXE $PRGDIR/$WEBAPP_EXE3. 修改webapp的端口号我们到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.ymloap核心配置文件alarm-settings.ymlWebhook/钉钉告警配置。4.获取elasticsearch的ssl证书在修改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.jks5. 修改Skywalking存储至elasticsearch我们打开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:srawm3fPVeV5Y9oyB3} trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:/Users/changlongmao/certs/http.jks} trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:Lw8_JAZ2QeS6tT7-oaHyZQ}配置完毕后即可启动。6. 启动skywalkingmac/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-agent代理java服务1. 准备一个springboot项目的jar包这里自行准备在网上有很多。2. 下载Skywalking-agent同样在Skywalking官网滑到下方可以自行下载下载后解压进入到skywalking-agent目录找到config文件夹打开agent.config。3. 修改以下agent.config配置# 服务名称 agent.service_name127.0.0.1::${SW_SERVICE_NAME} 。。。。 。。。。 。。。。。。 # 修改为skywalking部署的地址11800是skywalking的oap服务的端口 collector.backend_service${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}4. 启动springboot的jar包启动命令中指定-javaagent到skywalking-agent的目录nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -DSW_SERVICE_NAMEdemo -jar demo.jar /dev/null 21 启动成功后可以看到日志随意调用这个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 告警: %s. } } webhooks: - url: secret:四、使用教程监控共分三层服务、服务实例、端点每个服务代表一个监控的集体可以部署多个实例每个实例包含多个端点端点包含HTTP/RPC请求。每一层都监控分析拓扑图追踪可逐层查看。五、总结本篇文章从0到1帮助读者学习Skywalking包含安装教程使用教程希望对读者有所帮助留个赞再走谢谢老板??。作者原文链接https://blog.csdn.net/chang_mao/article/details/135998660spm1001.2014.3001.5502著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。