网站空间管理,北京seo排名,爱心建站网,网站建设三网合一是什么##xff08;1#xff09;prometheus介绍 prometheus是一款 强大的监控系统和时序系统
采集数据#xff1a; 在目标主机上安装exporter, exporter组件会在目标处收集监控数据, 并暴露一个http接口供prometheus查询, prometheus通过pull的方式来采集数据;
目前exporter已经采…#1prometheus介绍 prometheus是一款 强大的监控系统和时序系统
采集数据 在目标主机上安装exporter, exporter组件会在目标处收集监控数据, 并暴露一个http接口供prometheus查询, prometheus通过pull的方式来采集数据;
目前exporter已经采集绝大多数的第三方数据, 比如nginx, mysql等; 支持的exporter列表https://prometheus.io/docs/instrumenting/exporters/prometheus组件 prometheus server : 负责收集和存储指标数据支持表达式查询和告警的生成prometheus exporter altermanager PushgatewayWeb UI #2安装 Prometheus serverprometheus支持多种安装方式, 例如docker, ansible; 1方式一:二进制安装 test -d /tools || mkdir /tools; cd /tools
wget https://github.com/prometheus/prometheus/releases/download/v2.4.3/prometheus-2.4.3.linux-amd64.tar.gz
tar xvfz prometheus-2.4.3.linux-amd64.tar.gz
cd prometheus-2.4.3.linux-amd64
./prometheus --version
./prometheus --config.fileprometheus.yml #启动 2方式二安装 docker安装 docker run -d -p 9090:9090 prom/prometheus 3配置文件 # cat prometheus.yml
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global evaluation_interval.
rule_files:# - first_rules.yml# - second_rules.yml# A scrape configuration containing exactly one endpoint to scrape:
# Here its Prometheus itself.
scrape_configs:# The job name is added as a label jobjob_name to any timeseries scraped from this config.- job_name: Prometheusstatic_configs:- targets: [localhost:9090]labels:instance: Prometheus- job_name: mysqlstatic_configs:- targets: [192.168.1.42:9104]labels:instance: db1- job_name: linux01static_configs:- targets: [192.168.1.42:9100]labels:instance: db1global 块Prometheus 的全局配置比如 scrape_interval 表示 Prometheus 多久抓取一次数据evaluation_interval 表示多久检测一次告警规则
alerting 块关于 Alertmanager 的配置这个我们后面再看
rule_files 块告警规则这个我们后面再看
scrape_config 块这里定义了 Prometheus 要抓取的目标我们可以看到默认已经配置了一个名称为 prometheus 的 job这是因为 Prometheus 在启动的时候也会通过 HTTP 接口暴露自身的指标数据这就相当于 Prometheus 自己监控自己虽然这在真正使用 Prometheus 时没啥用处但是我们可以通过这个例子来学习如何使用 Prometheus可以访问 http://localhost:9090/metrics 查看 Prometheus 暴露了哪些指标 #3学习 PromQL 1进入prometheus的http页面, http://localhost:9090 Alerts 展示了定义的所有告警规则Status 可以查看各种 Prometheus 的状态信息Graph页面 提供的一种特殊表达式来查询监控数据这个表达式被称为 PromQLPrometheus Query Language通过 PromQL 不仅可以在 Graph 页面查询数据而且还可以通过 Prometheus 提供的 HTTP API 来查询 2) 数据模型 一条 Prometheus 数据由一个指标名称metric和 N 个标签labelN 0组成的promhttp_metric_handler_requests_total{code200,instancePrometheus,jobPrometheus} 14数据的指标名称为 promhttp_metric_handler_requests_total 并且包含三个标签 code、instance 和 job ,这条记录的值为 14Prometheus 是一个时序数据库相同指标相同标签的数据构成一条时间序列 3Prometheus 的数据分类 Counter 用于计数 例如请求次数、任务完成数、错误发生次数这个值会一直增加不会减少
Gauge 就是一般的数值可大可小例如温度变化、内存使用变化
Histogram 是直方图或称为柱状图常用于跟踪事件发生的规模例如请求耗时、响应大小 ,它特别之处是可以对记录的内容进行分组提供 count 和 sum 的功能
Summary: 和 Histogram 十分相似也用于跟踪事件发生的规模不同之处是它提供了一个 quantiles 的功能可以按百分比划分跟踪的结果。例如quantile 取值 0.95表示取采样值里面的 95% 数据 4PromQL 入门 up : 表示 Prometheus 能否抓取 target 的指标用于 target 的健康检查
up{jobprometheus} 指定某个 label 来查询 不仅可以使用 号还可以使用 !、~、!~
up{job!prometheus}
up{job~192\.168\.0\.107.}
up{job~server|mysql} ~ 是根据正则表达式来匹配
http_requests_total[5m] 查出 5 分钟内所有抓取的 HTTP 请求数 注意它返回的数据类型是 Range vector没办法在 Graph 上显示成曲线图, 会用在 Counter 类型的指标上并和 rate() 或 irate() 函数一起使用rate(http_requests_total[5m]) 计算的是每秒的平均值适用于变化很慢的 counter
irate(http_requests_total[5m]) 计算的是每秒瞬时增加速率适用于变化很快的 counter
PromQL 还支持 count、sum、min、max、topk 等 聚合操作 #4安装 Grafana虽然 Prometheus 提供的 Web UI 也可以很好的查看不同指标的视图但是这个功能非常简单只适合用来调试。要实现一个强大的监控系统还需要一个能定制展示不同指标的面板能支持不同类型的展现方式曲线图、饼状图、热点图、TopN 等这就是仪表盘Dashboard功能。因此 Prometheus 开发了一套仪表盘系统 PromDash不过很快这套系统就被废弃了官方开始推荐使用 Grafana 来对 Prometheus 的指标数据进行可视化这不仅是因为 Grafana 的功能非常强大而且它和 Prometheus 可以完美的无缝融合。 1docker安装 docker run -d -p 3000:3000 grafana/grafana 2访问 http://localhost:3000/ , 默认用户名和密码是admin和admin 3配置数据源 要注意的是这里的 Access 指的是 Grafana 访问数据源的方式有 Browser 和 Proxy 两种方式。Browser 方式表示当用户访问 Grafana 面板时浏览器直接通过 URL 访问数据源的而 Proxy 方式表示浏览器先访问 Grafana 的某个代理接口接口地址是 /api/datasources/proxy/由 Grafana 的服务端来访问数据源的 URL如果数据源是部署在内网用户通过浏览器无法直接访问时这种方式非常有用。 参考文档 https://www.aneasystone.com/archives/2018/11/prometheus-in-action.html转载于:https://blog.51cto.com/1000682/2361984