SkyWalking服务监控简单配置【Windows版本】
SkyWalking是什么
skywalking是一个可观测性分析平台和应用性能管理系统专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
下载
官网:https://skywalking.apache.org/
下载地址:https://skywalking.apache.org/downloads/
中文文档:https://skyapm.github.io/document-cn-translation-of-skywalking/
配置开始
本人使用版本9.1.0,目录如下,下载的agent放到目录下即可
配置nacos
进入目录config,编辑application.yml文件
修改如下配置
cluster:
selector: ${SW_CLUSTER:nacos}
.
.
.
nacos:
serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:192.168.3.145:8848}
# Nacos Configuration namespace
namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"develop-hhs"}
# Nacos auth username
username: ${SW_CLUSTER_NACOS_USERNAME:"nacos"}
password: ${SW_CLUSTER_NACOS_PASSWORD:"nacos"}
# Nacos auth accessKey
accessKey: ${SW_CLUSTER_NACOS_ACCESSKEY:""}
secretKey: ${SW_CLUSTER_NACOS_SECRETKEY:""}
internalComHost: ${SW_CLUSTER_INTERNAL_COM_HOST:""}
internalComPort: ${SW_CLUSTER_INTERNAL_COM_PORT:-1}
服务配置,打开idea,修改启动配置
agent配置路径添加,修改每个服务的服务名,最后一个可不变
-javaagent:D:\chromeDownload\skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=skywalking-alarm-service
-Dskywalking.collector.backend_service=127.0.0.1:11800
即可看到对应的服务已被监控到
配置数据库【采用mysql】
还是修改config下application.yml
storage:
selector: ${SW_STORAGE:mysql}
.
.
.
mysql:
properties:
jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/skywalking?rewriteBatchedStatements=true"}
dataSource.user: ${SW_DATA_SOURCE_USER:root}
dataSource.password: ${SW_DATA_SOURCE_PASSWORD:123456}
dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
maxSizeOfBatchSql: ${SW_STORAGE_MAX_SIZE_OF_BATCH_SQL:2000}
asyncBatchPersistentPoolSize: ${SW_STORAGE_ASYNC_BATCH_PERSISTENT_POOL_SIZE:4}
重新启动看到如下内容【自动创建了表】
自定义链路追踪
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<!-- 版本号和skywalking服务版本号保持一致 -->
<version>9.1.0</version>
</dependency>
在service业务方法层添加注解
@Trace // skywalking自定义链路追踪注解
@Tags({
@Tag(key = "result", value = "returnedObj"), // skywalking自定义链路追踪记录返回值,returnedObj值是固定的
@Tag(key = "id", value = "arg[0]") // skywalking自定义链路追踪记录入参,arg[X]对应入参下标
})
即可以看到对应的日志内容,方便我们排查问题
日志配置及日志上报
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>9.1.0</version>
</dependency>
resource下添加logback-spring.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 引入Spring boot 默认的 logback XML 配置-->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<appender name="console" 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.mdc.TraceIdMDCPatternLogbackLayout">
<!-- 添加SkyWalking 的tid方便查询 主要是这个[%X{tid}] -->
<pattern>[%X{tid}] ${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS} }){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} }</pattern>
</layout>
</encoder>
</appender>
<!--设置Appender-->
<root level="INFO">
<!-- 控制台日志 -->
<appender-ref ref="console"/>
</root>
</configuration>
配置完成后重启服务即可在控制台看到对应的TID,进入页面查询
告警功能
config/alarm-settings.yml文件
里面预先定义了一些常用的告警规则,我们可以在里面进行一些规则的修改
rules:
# Rule unique name, must be ended with `_rule`.
service_resp_time_rule:
metrics-name: service_resp_time
op: ">"
threshold: 1000
period: 1
count: 2
silence-period: 5
message: 服务 {name} 的响应时间在过去的1分钟内超过1000毫秒的次数达到2次。
service_sla_rule:
# Metrics value need to be long, double or int
metrics-name: service_sla
op: "<"
threshold: 8000
# The length of time to evaluate the metrics
period: 10
# How many times after the metrics match the condition, will trigger alarm
count: 2
# How many times of checks, the alarm keeps silence after alarm triggered, default as same as period.
silence-period: 3
message: 服务 {name} 的成功率在过去的10分钟内低于80%的次数达到2次。
service_resp_time_percentile_rule:
# Metrics value need to be long, double or int
metrics-name: service_percentile
op: ">"
threshold: 1000,1000,1000,1000,1000
period: 10
count: 3
silence-period: 5
message: 服务 {name} 的百分位数响应时间在过去的10分钟内超过1000毫秒的次数达到3次,其中包括p50 > 1000, p75 > 1000, p90 > 1000, p95 > 1000, p99 > 1000。
service_instance_resp_time_rule:
metrics-name: service_instance_resp_time
op: ">"
threshold: 1000
period: 10
count: 2
silence-period: 5
message: 服务实例 {name} 的响应时间在过去的10分钟内超过1000毫秒的次数达到2次。
database_access_resp_time_rule:
metrics-name: database_access_resp_time
threshold: 1000
op: ">"
period: 10
count: 2
message: 数据库访问 {name} 的响应时间在过去的10分钟内超过1000毫秒的次数达到2次。
endpoint_relation_resp_time_rule:
metrics-name: endpoint_relation_resp_time
threshold: 1000
op: ">"
period: 10
count: 2
message: 端点关系 {name} 的响应时间在过去的10分钟内超过1000毫秒的次数达到2次。
Webhook(网络钩子)
概述:可以简单理解为是一种Web层面的回调机制
SkyWalking的告警消息会通过 HTTP 请求进行发送,请求方法为 POST,Content-Type 为 application/json,其JSON 数据实基于List<org.apache.skywalking.oap.server.core.alarm.AlarmMessage>进行序列化的
[{
"scopeId": 1,
"scope": "SERVICE",
"name": "serviceA",
"id0": 12,
"id1": 0,
"ruleName": "service_resp_time_rule",
"alarmMessage": "alarmMessage xxxx",
"startTime": 1560524171000
}, {
"scopeId": 1,
"scope": "SERVICE",
"name": "serviceB",
"id0": 23,
"id1": 0,
"ruleName": "service_resp_time_rule",
"alarmMessage": "alarmMessage yyy",
"startTime": 1560524171000
}]
字段说明:
scopeId、scope:所有可用的 Scope 详见 org.apache.skywalking.oap.server.core.source.DefaultScopeDefine
name:目标 Scope 的实体名称
id0:Scope 实体的 ID
id1:保留字段,目前暂未使用
ruleName:告警规则名称
alarmMessage:告警消息内容
startTime:告警时间,格式为时间戳
编辑config/alarm-settings.yml文件
webhooks:
- http://192.168.3.21:8000/monitor/alarm/receive
根据规则,触发告警,接收到之后编写自己的业务逻辑,比如进行邮件提醒之类...
SkyWalking服务监控简单配置【Windows版本】的更多相关文章
- mysql的安装,启动,和基础配置 -----windows版本
下载: 第一步 : 打开网址(进入官网下载) : https://www.mysql.com , 点击downloads之后跳转到https://www.mysql.com/downloads 第二步 ...
- MySQL的安装、启动和基础配置 —— windows版本
下载 第一步:打开网址,https://www.mysql.com,点击downloads之后跳转到https://www.mysql.com/downloads 第二步 :跳转至网址https:// ...
- Redis-环境搭建、创建服务、搭建主从复制-Windows版本
一.搭建Redis环境 1.链接:http://pan.baidu.com/s/1boKAzzL 密码:sh2r 2.不赘述:执行redis-server.再执行redis-cli即可.redis环境 ...
- 对于ssh服务的简单配置,似的自己的服务器更加安全
对于一台服务器,最大的问题莫过于安全.没有安全性的服务器即使再牛*,性能再好,作用再大,也是分分钟被人搞定,而且还是揉虐性的...当然万事没有绝对的安全,我们只是将危险降低而已.本文只针对于ssh服务 ...
- 在linux安装redis单机和集群后,如何在windows上使用redis客户端或者java代码访问错误的原因很简单,就是没有连接上redis服务,由于redis采用的安全策略,默认会只准许本地访问。需要通过简单配置,完成允许外网访问。
这几天在学习在linux上搭建服务器的工作,可谓历经艰辛.可喜最后收获也不少. 这次是在linux上搭建redis服务器后从windows上缺无法访问,连接不上. 仔细回忆以前搭建nginx和ftp的 ...
- mrtg监控网络流量简单配置
Mrtg服务器搭建(监控网络流量) [日期:2012-07-03] 来源:Linux社区 作者:split_two [字体:大 中 小] [实验环境] 监控机:Red Hat linux 5.3 ...
- 如何下载 Nginx (windows 版本)并且简单的使用
官网地址:http://nginx.org/ 进到官网 我这里下载的是 稳定版的 windows版本. 开始我们的简单测试 步骤一:找到nginx的压缩包,(随意找个地方)解压 步骤二:进入conf文 ...
- zabbix分布式监控服务 安装与配置
zabbix安装与配置 一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...
- SpringCloud微服务实战——搭建企业级开发框架(四十四):【微服务监控告警实现方式一】使用Actuator + Spring Boot Admin实现简单的微服务监控告警系统
业务系统正常运行的稳定性十分重要,作为SpringBoot的四大核心之一,Actuator让你时刻探知SpringBoot服务运行状态信息,是保障系统正常运行必不可少的组件. spring-b ...
- 在工作组的环境中配置Windows 2012 R2的远程桌面服务
在工作组的环境中配置Windows 2012 R2的远程桌面服务 How to configure Remote Desktop Service in Windows 2012 R2 workgrou ...
随机推荐
- Q:Linux下处理^M字符
Linux下处理^M字符,很多时候windows环境中编辑过的文件,在Linux下经常会出现^M字符,可以通过以下方式处理该字符. 方法一:vim命令打开文件,然后在vim命令模式下输入以下内容: 1 ...
- git pull报错:Pulling without specifying how to reconcile divergent branches is discouraged.
一.保存内容如下 二.翻译 三.设置为默认即可:git config pull.rebase false
- salesforce零基础学习(一百四十三)零碎知识点小总结(十一)
本篇参考: https://help.salesforce.com/s/articleView?id=release-notes.rn_lab_dynamic_highlights_panel.htm ...
- @Scheduled参数及cron表达式解释
@Scheduled支持以下8个参数:1.cron:表达式,指定任务在特定时间执行:2.fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms:3.fixedDela ...
- VS2019 MSB6006 "CL.exe"已退出,错误代码 5
以下为我的解决过程: 因为我不是干C++的,而且我们内网不通外网,我当初来的时候装的vs2019全家桶,然后他们开发用的是vs2015,项目有用c++做图像处理的东西,我本地的vs2015没有C++模 ...
- cmd - windows操作系统命令提示符常用命令
mklink /j C:\Users\lin_0421\Desktop\note D:\note
- 淘宝 NPM 镜像站
应该有不少开发者已经发现,访问淘宝 NPM 已经会自动 301 跳转到 npmmirror.com 新域名,这是我们独立注册和备案的域名. Web 站点:https://npmmirror.com R ...
- mySql跳过行数获取多少行
LIMIT :需要获取多少条记录 OFFSET :跳过前面的多少行记录从后面开始获取 SELECT * FROM USER LIMIT 32 OFFSET 1 只获取12行记录 跳过第一条记录 SEL ...
- labelImg 工具介绍
1.什么是labelImg 图片标记工具,生成的xml文件用于人工智能数据 2.怎么使用 打开图片文件夹 使用默认工具tooth 选中图片,快捷键w ,鼠标标记图片 [Ctrl+s] 保存
- 【SfM】Colmap和openMVG尝试记录
数据集来源:http://www.maths.lth.se/matematiklth/personal/calle/dataset/dataset.html Colmap与openMVG关于SfM稀疏 ...