文章目录
第一章 Prometheus 监控系统介绍
一、什么是prometheus,如何搭建?
Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。现在,它是一个独立的开源项目,Prometheus在2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。
特点:
1、多维数据模型,通过度量标准名称和键/值对标识的时间序列数据
2、采用PromQL,查询方式灵活
3、采集方式为http pull,可采用网关推送
4、多种动态静态服务发现方式
5、可接入Grafana,支持多种dashbord,panel。
6、大多数组件为go语言,可生产二进制,方便部署
组件:
1、Prometheus server :采取并存储指标
2、Push-Gateway:可以主动上传数据到prometheus
3、Export:用于数据采集器
4、AlertManager:用于报警处理
官方架构图:
二、Prometheus 应用场景
什么时候可以适用prometheus?什么时候不适用prometheus呢?我该如何选择呢?
适用场景
1、监控服务器
可以通过export获取某一台服务器的基础指标,例如cpu、memory、network、disk
2、适用于监控动态的面向服务的体系结构的监视
首先需要有一个体系结构,例如Kubernetes,那么在Kubernetes中对于Pod的增删是会非常频繁的(动态HPA),那么针对频繁操作的Pod,如何监控呢?Prometheus则提供了多种发现机制,可以通过不同的发现机制,实现监控
3、微服务
Prometheus 在微服务中,对于多维数据的采集和查询,有很大的优势。。。。自己百度把
三、如何搭建Prometheus Server
Prometheus 搭建方式可以通过二进制进行搭建,也可以docker
(1)、二进制部署Prometheus Server
1、Github 获取相应的二进制包 下载连接:https://prometheus.io/download/
2、配置Prometheus server 的文件
例如:
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
含义:
Prometheus Server 配置文件 包含三部分,global、rule_files、scrape_configs
global: 全局配置,再次区域配置的文件将全局生效
rule_files:加载报警规则文件
scrape_configs: 决定该Prometheus监控什么样的资源
3、启动Prometheus server
./prometheus --config.file=prometheus.yml
访问方式:http://localhost:9090
(2)、使用docker部署Prometheus
执行命令:
$ docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
4、使用表达式
Prometheus server 启动之后,会监控自己本身,同样也会提供本身的指标,例如:
promhttp_metric_handler_requests_total
可以通过标签检索信息,以及接入grafana,下张讲解!