[完结12章]高薪运维必备Prometheus监控系统企业级实战

landmandw · · 111 次点击 · 开始浏览    置顶

学习地址1:https://pan.baidu.com/s/1nLECsCaKhbWj7ZB1NmMUBA 提取码:wpje 学习地址2:https://share.weiyun.com/9kDTz6ve 密码:97hsha 一、什么是Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由 SoundCloud 公司开发。 Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。 Prometheus 应该是为数不多的适合 Docker、Mesos、Kubernetes 环境的监控系统之一。 二、Prometheus 优势 易于管理: Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等); 唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险。 强大的查询语言 PromQL: Prometheus 内置一个强大的数据查询语言 PromQL,通过 PromQL 可以实现对监控数据的查询、聚合。 同时 PromQL 也被应用于数据可视化(如 Grafana)以及告警中。 高效: 对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而 Prometheus 可以高效的处理这些数据。 可扩展: Prometheus 支持联邦集群,可以让多个 Prometheus 实例产生一个逻辑集群; 当单实例 Prometheus 处理的任务量过大时,通过使用功能分区(sharding)+ 联邦集群(federation)可以对其进行扩展。 易于集成: 目前官网提供了多种语言的客户端 SDK,基于这些 SDK 可以快速让应用程序纳入到监控系统中,同时还支持与其它的监控系统集成。 可视化: Prometheus Server 自带一个 UI,通过这个 UI 可以方便对数据进行查询和图形化展示; 同时还可以对接 Grafana 可视化工具展示精美监控指标。 三、Zabbix和Prometheus区别 1.和Zabbix类似,Prometheus也是一个近年比较火的开源监控框架,和Zabbix不同之处在于Prometheus相对更灵活点,模块间比较解耦,比如告警模块、代理模块等等都可以选择性配置。服务端和客户端都是开箱即用,不需要进行安装。zabbix则是一套安装把所有东西都弄好,很庞大也很繁杂。 2.zabbix的客户端 agent 可以比较方便的通过脚本来读取机器内数据库、日志等文件来做上报。而 Prometheus 的上报客户端则分为不同语言的SDK和不同用途的 exporter 两种,比如如果你要监控机器状态、mysql性能等,有大量已经成熟的 exporter 来直接开箱使用,通过http 通信来对服务端提供信息上报(server去pull信息);而如果你想要监控自己的业务状态,那么针对各种语言都有官方或其他人写好的 sdk供你使用,都比较方便,不需要先把数据存入数据库或日志再供zabbix-agent采集。 3.zabbix的客户端更多是只做上报的事情,push模式。而Prometheus则是客户端本地也会存储监控数据,服务端定时来拉取想要的数据。 4.界面来说zabbix比较陈旧,而prometheus比较新且非常简洁,简洁到只能算一个测试和配置平台。要想获得良好的监控体验,搭配Grafana还是二者的必走之路。 四、监控的目的 google指出,监控分为白盒监控和黑盒监控之分。 白盒监控:通过监控内部的运行状态及指标判断可能会发生的问题,从而做出预判或对其进行优化。 黑盒监控:监控系统或服务,在发生异常时做出相应措施。 监控的目的如下: 1、根据历史监控数据,对为了做出预测 2、发生异常时,即使报警,或做出相应措施 3、根据监控报警及时定位问题根源 4、通过可视化图表展示,便于直观获取信息 五、Prometheus 的特点: 多维数据模型:由度量名称和键值对标识的时间序列数据 时间序列数据:按照时间顺序记录系统、设备状态变化的数据,每个数据称为一个样本;服务器指标数据、应用程序性能监控数据、网络数据等都是时序数据 ●内置时间序列(Time Series)数据库:Prometheus ;外置的远端存储通常会用:InfluxDB、OpenTSDB 等 ●promQL 一种灵活的查询语言,可以利用多维数据完成复杂查询 ●基于 HTTP 的 pull(拉取)方式采集时间序列数据 ●同时支持 PushGateway 组件收集数据 ●通过静态配置或服务发现发现目标 ●支持作为数据源接入 Grafana 六、 Prometheus常用命令参数有哪些 1 Prometheus查看版本号 ./prometheus --version 2 监听端口号:通过命令行参数指定,示例: --web.listen-address=:9090 。 3 指定配置文件路径:通过命令行参数,示例:--config.file=./prometheus.yml。 4 持久化存储路径:在配置文件中指定,通常是指定一个磁盘文件路径,用于保存时间序列数据,示例: --storage.tsdb.path=/data/prometheus 。 5 如果在运行状态重新加载需要在启动Prometheus的时候后面加上--web.enable-lifecycle

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

111 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传