博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(一)prometheus与grafana介绍与安装
阅读量:6719 次
发布时间:2019-06-25

本文共 4431 字,大约阅读时间需要 14 分钟。

#(1)prometheus介绍

prometheus是一款 强大的监控系统和时序系统采集数据: 在目标主机上安装exporter, exporter组件会在目标处收集监控数据, 并暴露一个http接口供prometheus查询, prometheus通过pull的方式来采集数据; 目前exporter已经采集绝大多数的第三方数据, 比如nginx, mysql等; 支持的exporter列表https://prometheus.io/docs/instrumenting/exporters/prometheus组件:         prometheus server   : 负责收集和存储指标数据,支持表达式查询,和告警的生成        prometheus exporter         altermanager         Pushgateway        Web UI

#(2)安装 Prometheus server

prometheus支持多种安装方式, 例如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.gztar xvfz prometheus-2.4.3.linux-amd64.tar.gzcd prometheus-2.4.3.linux-amd64./prometheus --version./prometheus --config.file=prometheus.yml   #启动

2)方式二安装 docker安装

docker run -d -p 9090:9090 prom/prometheus

3)配置文件

# cat prometheus.yml # my global configglobal:    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 configurationalerting:    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 it's Prometheus itself.scrape_configs:    # The job name is added as a label `job=
` to any timeseries scraped from this config. - job_name: Prometheus static_configs: - targets: ['localhost:9090'] labels: instance: Prometheus - job_name: mysql static_configs: - targets: ['192.168.1.42:9104'] labels: instance: db1 - job_name: linux01 static_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页面,

(一)prometheus与grafana介绍与安装

Alerts 展示了定义的所有告警规则    Status 可以查看各种 Prometheus 的状态信息    Graph页面  提供的一种特殊表达式来查询监控数据,这个表达式被称为 PromQL(Prometheus Query Language)通过 PromQL 不仅可以在 Graph 页面查询数据,而且还可以通过 Prometheus 提供的 HTTP API 来查询

2) 数据模型

一条 Prometheus 数据由一个指标名称(metric)和 N 个标签(label,N >= 0)组成的    promhttp_metric_handler_requests_total{code="200",instance="Prometheus",job="Prometheus"}  14    数据的指标名称为 promhttp_metric_handler_requests_total 并且包含三个标签 code、instance 和 job ,这条记录的值为 14    Prometheus 是一个时序数据库,相同指标相同标签的数据构成一条时间序列

3)Prometheus 的数据分类

Counter 用于计数 例如:请求次数、任务完成数、错误发生次数,这个值会一直增加,不会减少Gauge 就是一般的数值,可大可小,例如:温度变化、内存使用变化Histogram 是直方图,或称为柱状图,常用于跟踪事件发生的规模,例如:请求耗时、响应大小 ,它特别之处是可以对记录的内容进行分组,提供 count 和 sum 的功能Summary: 和 Histogram 十分相似,也用于跟踪事件发生的规模,不同之处是,它提供了一个 quantiles 的功能,可以按百分比划分跟踪的结果。例如:quantile 取值 0.95,表示取采样值里面的 95% 数据

4)PromQL 入门

up :  表示 Prometheus 能否抓取 target 的指标,用于 target 的健康检查up{job="prometheus"}  指定某个 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])  计算的是每秒的平均值,适用于变化很慢的 counterirate(http_requests_total[5m]) 计算的是每秒瞬时增加速率,适用于变化很快的 counterPromQL 还支持 count、sum、min、max、topk 等 聚合操作

#(4)安装 Grafana

虽然 Prometheus 提供的 Web UI 也可以很好的查看不同指标的视图,但是这个功能非常简单,只适合用来调试。要实现一个强大的监控系统,还需要一个能定制展示不同指标的面板,能支持不同类型的展现方式(曲线图、饼状图、热点图、TopN 等),这就是仪表盘(Dashboard)功能。因此 Prometheus 开发了一套仪表盘系统 PromDash,不过很快这套系统就被废弃了,官方开始推荐使用 Grafana 来对 Prometheus 的指标数据进行可视化,这不仅是因为 Grafana 的功能非常强大,而且它和 Prometheus 可以完美的无缝融合。

1)docker安装

docker run -d -p 3000:3000 grafana/grafana

2)访问: , 默认用户名和密码是admin和admin

(一)prometheus与grafana介绍与安装

3)配置数据源

(一)prometheus与grafana介绍与安装

要注意的是,这里的 Access 指的是 Grafana 访问数据源的方式,有 Browser 和 Proxy 两种方式。

Browser 方式表示当用户访问 Grafana 面板时,浏览器直接通过 URL 访问数据源的;
而 Proxy 方式表示浏览器先访问 Grafana 的某个代理接口(接口地址是 /api/datasources/proxy/),由 Grafana 的服务端来访问数据源的 URL,如果数据源是部署在内网,用户通过浏览器无法直接访问时,这种方式非常有用。

参考文档:

转载于:https://blog.51cto.com/1000682/2361984

你可能感兴趣的文章
海淘也疯狂 跨境电商网站8月监测报告
查看>>
【51CTO学院三周年】我的在51CTO学院学习的感想
查看>>
redis+session的共享
查看>>
ls按时间排序输出文件列表
查看>>
03 bash特性
查看>>
Line in和Mic in的区别及使用
查看>>
Linux压缩和解压缩命令
查看>>
Permutations
查看>>
2.9-php使用Redis存储
查看>>
constraint
查看>>
Linux磁盘管理 3月23日课程笔记
查看>>
CentOS 挂载fat32 中文乱码
查看>>
一个好的icon下载网站
查看>>
C++中的substr()
查看>>
【C语言】球体从100米下落问题
查看>>
(问题解决篇)ubuntu更新时,出现错误E: Some index files failed to download。。。
查看>>
Linux学习之路
查看>>
笔记七
查看>>
vsftpd
查看>>
零基础如何学习Python编程
查看>>