什么是全链路监控

Java_全链路监控 - 博客 - 编程圈

一文搞懂全链路监控系统(上)»

一文搞懂全链路监控系统(下)»

链路追踪监控系统:

  • Prometheus »
  • Apache SkyWalking »
  • 阿里 ARMS »
  • 美团 Cat »
  • Zabbix »
  • OpenZipkin »
  • Zipkin + Sleuth
  • Pinpoint
  • Jaeger
  • OpenTelemetry
  • OpenFalcon
  • Nagios
  • EventBridge
  • Hubble
  • ※ Grafana 可视化 »

Prometheus

官网 »

  • 教程

Prometheus 官方文档 »

Prometheus 学习指南 »

耳东@Erdong (infoq.cn) - 博客

Prometheus 操作指南 · github »

Prometheus 中文文档 »

Prometheus(普罗米修斯)监控系统(一) »

Prometheus(普罗米修斯)监控系统(二) »

Prometheus Relabel机制(relabel_config) »

https://blog.csdn.net/weixin_46902396/article/details/118637402

安装

  • 二进制方式安装

下载 »

创建启动脚本

echo 'nohup ./prometheus --web.enable-lifecycle --config.file="/home/prometheus-env/prometheus/prometheus.yml" &'  >> start.sh && chmod +x start.sh
  • docker方式安装
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus

浏览器验证

http://172.32.1.91:9090/

PromQL

PromQL 合集

理解:SQL语句

http_request_total{} # 瞬时向量表达式,选择当前最新的数据
http_request_total{}[5m] # 区间向量表达式,选择以当前时间为基准,5分钟内的数据
http_requests_total offset 5m # 5分钟前的数据
sum(http_requests_total{method="GET"} offset 5m) // 聚合

HTTP API接口调用

  • 在 HTTP API 中使用 PromQL

在HTTP API中使用PromQL

请求:

http://172.32.1.181:9090/api/v1/query?query=node_cpu_seconds_total{cpu="0",mode="idle"}
GET

返回结果:

{"status": "success","data": {"resultType": "vector","result": [{"metric": {"__name__": "node_cpu_seconds_total", // 指标"cpu": "0","instance": "172.32.1.181:9100","job": "localnode", // job_name"mode": "idle"},"value": [1653536219.426, // 时间戳"5306557.85"]}]}
}
  • 应用管理 API

Management API »

准备就绪状态:

GET /-/ready例:
http://172.32.1.181:9093/-/ready

重新加载:

PUT  /-/reload
POST /-/reload

其他

http://172.32.1.181:9090/api/v1/ruleshttp://172.32.1.181:9115/metricshttp://172.32.1.181:9115/probe?module=http_get_2xx&target=baidu.com
http://172.32.1.181:9115/probe?module=http_post_2xx&target=http://172.32.1.181:8282/getToken999

配置文件 prometheus.yml

- job_name: 'yx_blackbox'metrics_path: /probeparams:module: [http_post_2xx]static_configs:- targets:- http://prometheus.io    # Target to probe with http.- https://prometheus.io   # Target to probe with https.- http://example.com:8080 # Target to probe with http on port 8080.relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 172.32.1.181:9115

检查prometheus配置是否正常

./promtool check config prometheus.yml

Prometheus服务发现

Prometheus服务发现

目前支持的服务发现类型主要有如下几种:

1、基于文件的服务发现

2、基于consul的服务发现

3、基于k8s API的服务发现

4、基于eureka的服务发现

5、基于nacos的服务发现

6、基于DNS的服务发现

资源监控

常用资源监控

Prometheus 都可以采集那些指标?-- 常用 Exporter 合集_内容合集_耳东@Erdong_InfoQ写作社区

CPU使用率

通常所说的CPU使用率,就是除了空闲时间外的其他时间占总CPU时间的百分比。

CPU使用率有很多重要指标,具体含义如下:

idle(通常缩写为id),代表空闲时间。注意,它不包括I/O等待时间(iowait)

iowait(通常缩写为wa),代表等待I/O的CPU时间

user(通常缩写为us),代表用户态CPU时间。注意,它包括下面的nice时间,但包括了guest时间。

nice(通常缩写为ni),代表低优先级用户态CPU时间,也就是进程的nice值被调整为1-19之间是的CPU时间。

IPLC是纯内网的专线,稳定性好,延时低,对网络品质有要求的核心产品,可以通过使用IPLC专线服务来提升网络体验和服务。

system(通常缩写为sys),代表内核态CPU时间

irq(通常缩写为hi),代表处理硬中断的CPU时间

softirq(通常缩写为si),代表处理软中断的CPU时间

steal(通常缩写为st),代表当系统运行在虚拟机中的时候,被其他虚拟机占用的CPU时间

guest(通常缩写为guest),代表通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的CPU时间

实战

Prometheus cpu利用率

Prometheus 查询语言 PromQL 的 CPU 使用率计算方法

100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)http://172.32.1.181:9090/api/v1/query?query=100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Nacos

Nacos 监控手册

MySQL

监控MySQL运行状态:MySQLD Exporter »

https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz

Redis

监控Redis · Prometheus中文技术文档 »

https://github.com/oliver006/redis_exporter/releases

Flink

Prometheus监控Flink metrics操作 »

https://github.com/apache/flink/tree/master/flink-metrics/flink-metrics-prometheus

ClickHouse

prometheus 监控clickhouse 集群 »

https://github.com/ClickHouse/clickhouse_exporter

HBase

Prometheus监控实战篇Nginx、Hbase操作详解 »

告警

Prometheus告警处理 »

告警能力在Prometheus的架构中被划分为两个部分,在Prometheus Server中定义告警规则以及产生告警,Alertmanager组件统一处理这些由Prometheus产生的告警。

Alertmanager提供了多种内置第三方告警通知方式,同时还提供了对Webhook通知的支持,通过Webhook用户可以完成对告警更多个性化的扩展。

1、修改 prometheus.yml 文件

rule_files:- /home/prometheus-env/prometheus/rules/*.rules

2、创建配置中对应的文件夹 rules/

3、在所创建的文件夹中创建以 .rules 结尾的规则文件

vi hoststats-alert.rules
groups:
- name: hostStatsAlertrules:- alert: hostCpuUsageAlertexpr: sum(avg without (cpu)(irate(node_cpu_seconds_total{mode!='idle'}[5m]))) by (instance) > 0.85for: 1mlabels:severity: pageannotations:summary: "Instance {{ $labels.instance }} CPU usgae high"description: "{{ $labels.instance }} CPU usage above 85% (current value: {{ $value }})"

4、重新加载Prometheus

curl -X POST http://172.32.1.181:9090/-/reload

5、浏览器验证

http://172.32.1.181:9090/rules

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oVxQ0u57-1654048722120)(vx_images/280623417239695.png)]

6、安装并配置alertmanager.yml

部署AlertManager

邮件通知示例:

global:smtp_smarthost: smtp.gmail.com:587smtp_from: <smtp mail from>smtp_auth_username: <usernae>smtp_auth_identity: <username>smtp_auth_password: <password>route:group_by: ['alertname']receiver: 'default-receiver'receivers:- name: default-receiveremail_configs:- to: <mail to address>send_resolved: true

7、配置 prometheus.yml

# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:- 172.32.1.181:9093

8、测试

cat /dev/zero>/dev/null

http://172.32.1.181:9090/alerts

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2SLHxiht-1654048722121)(vx_images/19673017247026.png)]

http://172.32.1.181:9093/#/alerts

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yhl9SKig-1654048722122)(vx_images/175072817226860.png)]

使用Java自定义Exporter

使用Java自定义Exporter

SkyWalking

官网 »

源码 · GitHub »

SkyWalking 8 官方文档的中文翻译版 »

https://baijiahao.baidu.com/s?id=1721183541175773764&wfr=spider&for=pc

APM

  • 启动

启动脚本在 bin/ 目录下,分客户端和服务端:

只启动oap服务:oapService.sh

只启动ui服务:webappService.sh

同时启动OAP和UI :startup.sh

  • 设置

UI的设置文件是发行包里的webapp/webapp.yml

server:port: 8080

浏览器访问

http://172.32.1.91:8080/

Java Agent

  • 命令行启动
java -javaagent:/home/srt/sky-walking/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=yx-gateway -Dskywalking.collector.backend_service=172.32.1.91:11800 -jar gateway-0.0.1-SNAPSHOT.jarjava -javaagent:/home/srt/sky-walking/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=yx-api -Dskywalking.collector.backend_service=172.32.1.91:11800 -jar api-0.0.1-SNAPSHOT.jar
  • IDEA配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dhZNIiwV-1654048722122)(vx_images/381611914226859.png)]

Agent参数详解

Skywalking如何过滤不需要被监控的接口地址

自定义链路追踪

会有代码入侵

阿里云ARMS

官网 »

ARMS是修改了开源项目pinpoint整合而来,更是加上了arthas,不需要使用-javaagent在项目启动的时候进行导入。有一个致命的缺点的,就是太贵了。

[Prometheus告警规则 (aliyun.com)](

全链路监控及普罗米修斯学习相关推荐

  1. 阿尔萨斯监控平台普罗米修斯监控平台对服务器资源的监控

    一.arthas-阿尔萨斯监控平台 内存监控: 1.打开RDMS,选择应用实例,在'快捷方式'下拉选项中选择arthas 2.打开监控界面,输入:dashboard -i 5000 备注:-i 刷新实 ...

  2. 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯

    DevOps工程师或SRE工程师,可能都知道Prometheus普罗米修斯.Prometheus于2012年由SoundCloud创建,目前已经已发展为最热门的分布式监控系统.Prometheus完全 ...

  3. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  4. 普罗米修斯 软件_监控神器-普罗米修斯Prometheus的安装

    搬砖党的福音:普罗米修斯-监控神器 功能: 在业务层用作埋点系统 Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端).我们可以通过客户 ...

  5. 普罗米修斯 mysql监控_Promethus(普罗米修斯)监控Mysql数据库

    Promethus(普罗米修斯)监控Mysql数据库 这个是基于上面环境搭建的,需要的可以访问方面连接查看. 监控远程MySQL 服务器 IP地址 Prometneus服务器 192.168.116. ...

  6. 监控神器-普罗米修斯Prometheus的安装

    最近看了些AIOPS的资料,对于里面提及的一个普罗米修斯Prometheus起了兴趣,首先是联想到异形,哈哈.去看了一下,普罗米修斯还真是厉害,而且还是开源的,真是搬砖党的福音. 功能: 在业务层用作 ...

  7. 监控神器普罗米修斯Prometheus安装配置

    一.基础环境 环境/组件 版本 下载地址 操作系统 CentOS 7.3 http://archive.kernel.org/centos-vault/7.3.1611/isos/x86_64/Cen ...

  8. Prometheus监控系列--“普罗米修斯“ 入门 | 初识 | 简述 | 超详细

    Prometheus监控软件 常见的监控软件 1.Cacti 2.Nagios 3.zabbix 4.prometheus 5.open-falcaon 运维监控平台设计思路 监控体系 系统层监控 中 ...

  9. metrics类型 普罗米修斯_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  10. 普罗米修斯 mysql监控_普罗米修斯Prometheus监控MySQL

    普罗米修斯Prometheus监控MySQL 添加数据库用户 CREATE USER monitor_prometheus@'192.168.245.%' IDENTIFIED BY 'Abcde@1 ...

最新文章

  1. 【golang程序包推荐分享】go-ini、viper、godoc
  2. 110道 Redis面试题及答案(最新整理)
  3. 关于xshell连接虚拟机和虚拟机连网
  4. 海龟交易代码java_海龟交易算法,实现量化交易(1)数据获取
  5. Linux 网卡信息查看
  6. windows下运行多个tomcat的配置
  7. php控制字数方法,php处理字数过多的方法
  8. python里类的概念
  9. ***error*** (zip#Browse) unzip not available on your system
  10. VS2010关于更改管理帮助设置的路径的解决方案
  11. Android扩大点击事件接收区域范围
  12. linux去掉空行的几种方法
  13. css3 烟 蚊香_CSS3 冒烟的管道 | 烟囱
  14. n1装linux系统升级,N1 降级刷机救砖总结
  15. HTML+CSS系列实战之表格
  16. 男人帮所有手机铃声下载|左永邦手机铃声下载,顾小白手机铃声下载,米琪手机铃声下载,艾米手机铃声下载...
  17. 中国第四个南极科考站
  18. 华为云耀服务器与弹性云服务器的区别
  19. 学遍天下所有的技术,可能吗?
  20. Flash 的fla文件读写 可以直接更改图片路径

热门文章

  1. vb.net多线程例子
  2. Clickhouse优点 缺点 / Doris 优点 缺点
  3. python代码加密解密_Python实现对字符串的加密解密方法示例
  4. 【运筹学】CH2 线性规划与单纯形法1——线性规划问题及其数学模型
  5. 驱动器存在问题-U盘量产-主控SM3255AB
  6. 猕猴桃的红色果肉受到特定的激活-抑制系统的控制
  7. 指纹识别技术的发展前景是怎样的?
  8. 使用VS2015+win7编译WebKit(WebKit-r189384)
  9. wincap的使用总结
  10. 使用Whisper框架快速为项目添加国际化支持