这本书上面的,写的特别详细
https://www.kancloud.cn/yetship/prometheus_practice/
推荐公众号:卖逗搞it(讲的很好)
一、安装
1、先关闭selinux、firewalld、iptables
2、wget
1、 wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
2、 tar -xvf go1.8.3.linux-amd64.tar.gz -C /usr/local/
3、 vim /etc.profile
4、 export PATH=$PATH:/usr/local/go/bin
3、prometheus
1、wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz
2、tar -xvf prometheus-2.28.1.linux-amd64.tar.gz -C /usr/local/
3、ln -sv /usr/local/prometheus-2.28.1.linux-amd64/ /usr/local/Prometheus
4、 vim /usr/loacl/Prometheus/prometheus.yml
5、 ./prometheus
prometheus.yml配置文件
4、被监控主机
重复1、2
3、下载/node_exporter-1.2.0.linux-amd64/node_exporter
4、解压
5、执行nohup /usr/local/node_exporter-1.2.0.linux-amd64/node_exporter &
二、Prometheus
Prometheus 存储的是时序数据
<metric name>{<label name>=<label value>, ...}
- 四种时序类型
Counter, Gauge, Histogram, Summary
比如这个,Histogram展示的是这个电上面有多少数据
Summary 取值,中位数0.5,来和685来计算(原本应该是0.36和685计算)
Counter
Counter 类似于计数器,一般用于统计:CPU 时间/API 访问次数还有异常发生的总次数这类的数据,这类的数据的特点就是变化是定向的,也就是说要么是一直增加(比较常见),要么是一直减少的。
例如 Prometheus server 中 http_requests_total, 表示 Prometheus 处理的 http 请求总数,我们可以使用 delta, 很容易得到任意区间数据的增量,这个会在 PromQL 一节中细讲。
Gauge
Gauge 表示搜集的数据是一个瞬时的,与时间没有关系,可以任意变高变低,往往可以用来记录内存使用率、磁盘使用率等。
例如 Prometheus server 中 go_goroutines, 表示 Prometheus 当前 goroutines 的数量。
Histogram
Histogram 由 _bucket{le=""},_bucket{le="+Inf"}, _sum,_count 组成,主要用于表示一段时间范围内对数据进行采样,(通常是请求持续时间或响应大小),并能够对其指定区间以及总数进行统计,通常我们用它计算分位数的直方图。
例如 Prometheus server 中 prometheus_local_storage_series_chunks_persisted, 表示 Prometheus 中每个时序需要存储的 chunks 数量,我们可以用它计算待持久化的数据的分位数。
Summary
Summary 和 Histogram 类似,由 {quantile="<φ>"},_sum,_count 组成,主要用于表示一段时间内数据采样结果,(通常是请求持续时间或响应大小),它直接存储了 quantile 数据,而不是根据统计区间计算出来的。
例如 Prometheus server 中 prometheus_target_interval_length_seconds。
Histogram vs Summary
都包含 _sum,_count
Histogram 需要通过 _bucket 计算 quantile, 而 Summary 直接存储了 quantile 的值。
1、基本概念
语法
过滤
匹配正则来过滤
metrice{条件}
对lable进行过滤
materi{lable=“”,url=“”}
时间范围的选择
三、常见问题
- 常见安装问题
被监控主机连接不上,查看配置的yml中的端口是否和9090重复了,重复的话改
web访问不了,防火墙,iptables,selinux是否关闭
启动失败:目前我也不知道
level=error ts=2021-07-26T02:09:36.578Z caller=main.go:917 err="opening storage failed: reloadBlocks: invalid block sequence: block time ranges overlap: [mint: 1626960510399, maxt: 1626962400000, range: 31m29s, blocks: 2]: <ulid: 01FB8EPG6C8P6FXGDVSF0NJ0F1, mint: 1626955205283, maxt: 1626962400000, range: 1h59m54s>, <ulid: 01FBBRWYQ3A32XG3JYC8DWF18E, mint: 1626960510399, maxt: 1626962400000, range: 31m29s>"