[TOC]
### **主机CPU使用率**
```
1 - avg(irate(node_cpu_seconds_total{instance="ip:port",mode="idle"}[5m])) # Label为`instance=ip:port`这台主机的cpu使用率
1 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance) # 一次性统计每台主机的cpu使用率
```
### **主机内存使用率**
```
(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes
```
### **主机磁盘使用率**
```
(node_filesystem_size_bytes{fstype=~"xfs|ext4"} - node_filesystem_free_bytes) / node_filesystem_size_bytes
```
### **主机磁盘IO**
https://mp.weixin.qq.com/s/koS0a1zvM6WQQtpa_uHWkQ
https://www.cnblogs.com/Leslieblog/p/11157958.html
```
# 吞吐量-写速率(MiB/s)
irate(node_disk_written_bytes_total{}[5m]) / 1024 / 1024
# 吞吐量-读速率(MiB/s)
irate(node_disk_read_bytes_total{}[5m]) / 1024 / 1024
# IOPS-读速率(次/秒)
irate(node_disk_reads_completed_total{}[5m])
# IOPS-写速率(次/秒)
irate(node_disk_writess_completed_total{}[5m])
# 利用率(磁盘处理IO的时间占比)
irate(node_disk_io_time_seconds_total{}[5m])
```
### **主机网络IO速率**
```
# 收包速率(MiB/s)
irate(node_network_receive_bytes_total{}[5m]) / 1024 / 1024
# 发包速率(MiB/s)
irate(node_network_transmit_bytes_total{}[5m]) / 1024 / 1024
```
### **文件句柄使用率**
```
node_filefd_allocated / node_filefd_maximum
```
- (一)快速开始
- 安装Prometheus
- 使用NodeExporter采集数据
- AlertManager进行告警
- Grafana数据可视化
- (二)探索PromQL
- 理解时间序列
- Metrics类型
- 初识PromQL
- PromQL操作符
- PromQL内置函数
- rate和irate
- 常见指标的PromQL
- 主机CPU使用率
- 主机内存使用率
- 主机磁盘使用率
- 主机磁盘IO
- 主机网络IO
- API的响应时间
- (三)Promtheus告警处理
- 自定义告警规则
- 示例-对主机进行监控告警
- 部署AlertManager
- 告警的路由与分组
- 使用Receiver接收告警信息
- 集成邮件系统
- 屏蔽告警通知
- 扩展阅读
- AlertManager的API
- Prometheus发送告警机制
- 实践:接收Prometheus的告警
- 实践:AlertManager
- (四)监控Kubernetes集群
- 部署Prometheus
- Kubernetes下的服务发现
- 监控Kubernetes集群
- 监控Kubelet的运行状态
- 监控Pod的资源(cadvisor)
- 监控K8s主机的资源
- KubeStateMetrics
- K8S及ETCD常见监控指标
- ETCD监控指标
- Kube-apiserver监控指标
- (五)其他
- Prometheus的relabel-config
- Target的Endpoint
- Prometheus的其他配置
- (六)BlackboxExporter
- 安装
- BlackboxExporter的应用场景
- 在Promtheus中使用BlackboxExporter
- 参考