阅读 113

Prometheus 了解一下(prometheus+grafana构建应用监控(三))

介绍

Prometheus是用来收集存储服务器的实时数据(比如:CPU、硬盘、服务响应、日志等),通过其丰富的运算函数,可以计算得到很多的服务性能指标(比如:CPU占用率、api响应时长、api返回500数量等),可用于集成监控告警系统中。

架构图

基本原理

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。

关键流程

  1. Prometheus Daemon 负责定时去目标上抓取 metrics(指标)数据,每个抓取目标需要暴露一个 http 服务的接口给它定时抓取。Prometheus 支持通过配置文件、文本文件、Zookeeper、Consul、DNS SRV Lookup 等方式指定抓取目标。Prometheus 采用 PULL 的方式进行监控,即服务器可以直接通过目标 PULL 数据或者间接地通过中间网关来 Push 数据。

  2. Prometheus 在本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中。

  3. Prometheus 通过 PromQL 和其他  API 可视化地展示收集的数据。Prometheus 支持很多方式的图表可视化,例如 Grafana、自带的 Promdash 以及自身提供的模版引擎等等。Prometheus 还提供HTTP API的查询方式,自定义所需要的输出。

  4. PushGateway 支持 Client 主动推送 metrics 到 PushGateway,而 Prometheus  只是定时去 Gateway 上抓取数据。

  5. Alertmanager 是独立于 Prometheus 的一个组件,可以支持 Prometheus 的查询语句,提供十分灵活的报警方式。

Exporter的概念

exporter是 Prometheus 的一类数据采集组件的总称,负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取,默认的抓取地址为 http://current_ip:9100/metrics

node-exporter是Prometheus官方推荐的exporter,类似的还有

  • HAProxy exporter

  • Collectd exporter

  • SNMP exporter

  • MySQL server exporter

...

运行

1.启动 node_exporter 容器 node-exporter 是 Prometheus 官方推荐的exporter

docker run --name node_exporter -d -v "/proc:/host/proc" -v "/sys:/host/sys" -v "/:/rootfs" prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)" 复制代码

2.编辑配置文件prometheus/prometheus.yml

global:   scrape_interval:     15s   evaluation_interval: 15s scrape_configs:   - job_name: 'prometheus'     static_configs:     - targets: ['localhost:9090']   - job_name: 'webservers'     static_configs:     - targets: ['<node exporter node IP>:9100'] 复制代码

3.启动prometheus容器

docker run --name prometheus -d -p 9090:9090 -v ~/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus 复制代码

4.访问prometheus web http://localhost:9090/


作者:Zioyi
链接:https://juejin.cn/post/7028853171321569311


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐