Prometheus入门与进阶实践教程2024

双寿
• 阅读 81

参考资料1:https://pan.baidu.com/s/1FLteIxtDx3hEiokPn2A0vw 提取码: v1nn 参考资料2:https://share.weiyun.com/7hok43wM 密码:qkrm48

一、Prometheus的概念和发展史 Prometheus是一个开源的完整监控解决方案,本文将从指标抓取到查询及可视化展示,以及最后的监控告警,对Prometheus做一个基本的认识。 Prometheus发展速度很快,12年开发完成,16年加入CNCF,成为继K8s之后第二个CNCF托管的项目,目前Github 42k的 ,而且社区很活跃,维护频率很高,基本稳定在 1个月1个小版本的迭代速度。

二、Prometheus的特点 多维数据模型:由度量名称和键值对标识的时间序列数据 时序数据,是在一段时间内通过重复测量(measurement)而获得的观测值的集合;将这些观测值绘制于图形之上,它会有一个数据轴和一个时间轴; 服务器指标数据、应用程序性能监控数据、网络数据等也都是时序数据; 1.内置时间序列(pime series)数据库:Prometheus;外置的远端存储通常会用:InfluxDB、openTsDB等 2.promQL一种灵活的查询语言,可以利用多维数据完成复杂查询 3.基于HTTP的pull(拉取)方式采集时间序列数据 4.同时支持PushGateway组件收集数据 5.通过服务发现或者静态配置,来发现目标服务对象 6.支持作为数据源接入Grafana

三、Prometheus 优势 易于管理: Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等); 唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险。 强大的查询语言 PromQL: Prometheus 内置一个强大的数据查询语言 PromQL,通过 PromQL 可以实现对监控数据的查询、聚合。 同时 PromQL 也被应用于数据可视化(如 Grafana)以及告警中。

高效: 对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而 Prometheus 可以高效的处理这些数据。

可扩展: Prometheus 支持联邦集群,可以让多个 Prometheus 实例产生一个逻辑集群; 当单实例 Prometheus 处理的任务量过大时,通过使用功能分区(sharding)+ 联邦集群(federation)可以对其进行扩展。

易于集成: 目前官网提供了多种语言的客户端 SDK,基于这些 SDK 可以快速让应用程序纳入到监控系统中,同时还支持与其它的监控系统集成。

可视化: Prometheus Server 自带一个 UI,通过这个 UI 可以方便对数据进行查询和图形化展示; 同时还可以对接 Grafana 可视化工具展示精美监控指标。

四、服务注册 被监控服务在Prometheus中是一个Job存在,被监控服务的所有实例在Prometheus中是一个target的存在,所以被监控服务的注册就是在Prometheus中注册一个Job和其所有的target,这个注册分为: 静态注册 动态注册

静态注册:静态的将服务的IP和抓取指标的端口号配置在Prometheus yaml文件的scrape_configs配置下 scrape_configs:

  • job_name: "prometheus" static_configs:
    • targets: ["localhost:9090"] 以上就是注册了一个名为prometheus的服务,这个服务下有一个实例,暴露的抓取地址是localhost:9090

动态注册:动态注册就是在Prometheus yaml文件的scrape_configs配置下配置服务发现的地址和服务名,Prometheus会去该地址,根据你提供的服务名动态发现实例列表,在Prometheus中,支持consul,DNS,文件,K8s等多种服务发现机制。 基于consul的服务发现:

  • job_name: "node_export_consul" metrics_path: /node_metrics scheme: http consul_sd_configs:
    - server: localhost:8500
      services:
        - node_exporter
    我们consul的地址就是:localhost:8500,服务名是node_exporter,在这个服务下有一个exporter实例: localhost:9600

五、Prometheus实战教程:监控mysql数据库 安装mysql数据库 上传mysql安装包到指定目录下,并创建data etc tmp log目录 tar -zxvf mysql-5.7.31.tar.gz cd mysql-5.7.31 mkdir data etc tmp log 上传my.cnf,修改本地路径后、端口号等,进行保存 [mysqld] server_id = 2 binlog_format=Mixed read_rnd_buffer_size = 128M federated basedir = /app/mysql/mysql-5.7.31 ###################### 重要 !按实际目录配置 datadir = /app/mysql/mysql-5.7.31/data ####################### 重要 !按实际目录配置 socket = /app/mysql/mysql-5.7.31/tmp/mysql-5308.sock ################## 按安装目录名+sock,统一放置于/tmp下 init_connect='SET collation_connection = utf8_general_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_general_ci skip-character-set-client-handshake lower_case_table_names=1 max_connections = 1000 wait_timeout=180 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES port = 5308 ####################### 重要 !按实际目录配置 #skip-grant-tables #default_authentication_plugin=mysql_native_password tmp_table_size = 512M event_scheduler=1 join_buffer_size = 512M log_bin_trust_function_creators=1 read_rnd_buffer_size = 32M sort_buffer_size = 64M innodb_buffer_pool_size = 2048M innodb_log_file_size = 64M innodb_file_per_table=1 innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 256M key_buffer_size = 256M read_buffer_size = 32M max_allowed_packet = 100M max_heap_table_size= 256M #binlog_expire_logs_seconds=432 #query_cache_size = 512M` [client] default-character-set=utf8 port = 5308 ################################# 根据实际修改

[mysql] default-character-set=utf8

[mysql.server] user=mysql ############################# 在哪个用户下安装就是哪个 log-err #log log-slow-queries log-update

点赞
收藏
评论区
推荐文章
荀勗 荀勗
5个月前
首个基于Transformer的分割检测+视觉大模型视频课程(附源码+课件)
参考资料地址1:https://pan.baidu.com/s/14g2VTg8JeeZ0pDey7xwGg提取码:2bmp参考资料地址2:https://share.weiyun.com/tnVNHGMD密码:3fj7iy众所周知,视觉系统对于理解和推理
荀勗 荀勗
4个月前
高性能多级网关与多级缓存架构落地实战(完结+附电子书)
参考资料地址1:https://pan.baidu.com/s/12w0TT26aywnoIcogPg8Uw提取码:uzf4参考资料地址2:https://share.weiyun.com/SNltUNLW密码:zi3dc7什么是网关?网关(Gateway
吉太 吉太
4个月前
[2023新版16章]SpringBoot+Vue3 项目实战,打造企业级在线办公系统
参考资料地址1:https://pan.baidu.com/s/1ZJGS0SA9pIUr76VUXioNSg提取码:95bd参考资料地址2:https://share.weiyun.com/jVSDdcBU密码:cruqf9SpringBootVue3
荀勗 荀勗
4个月前
Django+Vue:Python Web全栈开发(基于Django4.1)
参考资料1:https://pan.baidu.com/s/1V06RwdZtg16ugAV0qORBGw提取码:g8um参考资料2:https://share.weiyun.com/j5Xtgnuu密码:brp7w6Django是一个由Python编写的
赵嬷嬷 赵嬷嬷
3个月前
[完结10章]Vue3+Pinia+Vite+TS 还原高性能外卖APP项目
参考资料地址1:https://pan.baidu.com/s/1u0uNBMkOA2NRk3N6myb4Zg提取码:tnlt参考资料地址2:https://share.weiyun.com/Wjw3QpeQ密码:gxrfcwVue3带来的改变,除了其自身
双寿 双寿
3个月前
WPF高级实战课程《知产代理数字化解决方案》下载
参考资料地址1:https://pan.baidu.com/s/1ZlkRAbUu1mQE5JEAlbuTvw提取码:24b2参考资料地址2:https://share.weiyun.com/7RUYskT6密码:adbvfpWPF概念:WPF即Windo
鲍二家的 鲍二家的
2个月前
Prometheus入门与进阶实践(2024最新)|Prometheus教程
学习地址1:https://pan.baidu.com/s/1sjdEUcjlDuEEQ6brw8Vyg提取码:12tu学习地址2:https://share.weiyun.com/7hok43wM密码:qkrm48今天给大家讲讲关于Prometheus的
双寿 双寿
2个月前
实战Flink+Doris实时数仓教程
参考资料1:https://pan.baidu.com/s/1KoaLsoYaB4JMFAI0aDyXg提取码:pr5c参考资料2:https://share.weiyun.com/OL2DSs1X密码:srevyt一、什么是实时数仓实时数据仓库(Real
双寿 双寿
2个月前
C++大厂面试真题宝典 精选100道[完结7章]
参考资料1:https://pan.baidu.com/s/1FoFcRadpRsEPmnSysrEIlA提取码:mqmu参考资料2:https://share.weiyun.com/mzwzUqJU密码:4r3u73给大家整理了一些关于C大厂面试20
双寿 双寿
1个月前
慕课甄选-2024年Flutter零基础极速入门到进阶实战【完结17章】
参考资料1:https://pan.baidu.com/s/1pD7WhaO5FbbGsu0t3sAw提取码:wv6m参考资料2:https://share.weiyun.com/mDuF95rR密码:c7r3ec一、Flutter基础概念Flutter框