## **安装NodeExporter**
从官网(`https://prometheus.io/download/#node_exporter`)下载最新版本(`0.18.1`)的二进制的NodeExporter,解压
```
$ wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
$ tar xzvf node_exporter-0.18.1.linux-amd64.tar.gz
```
同样,我们使用`systemd`来管理这个服务。我们把解压后的整个`node_exporter-0.18.1.linux-amd64`文件夹移动到`/usr/local/`目录下,并重命名为`node_exportor`
```
$ mv ./node_exporter-0.18.1.linux-amd64 /usr/local/node_exporter
```
然后创建文件`/usr/lib/systemd/system/node_exporter.service`,内容如下
```
[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
关于启动参数可以使用命令`/usr/local/node_exporter/node_exporter --help`查看。
然后启动`node_exporter`,并查看是否启动成功
```
$ systemctl daemon-reload && systemctl enable node_exporter
$ systemctl start node_exporter && systemctl status node_exporter
```
我们可以通过 `IP:PORT/metrics`来查看NodeExporter的数据,如下:
![](https://img.kancloud.cn/10/d9/10d9f96857e7bc0b3fce529c982311a5_652x448.png)
## **配置Prometheus抓取NodeExporter的数据**
当`node_exporter`启动成功后,我们便可以配置`prometheus`,去抓取`node_exporter`的数据。`node_exporter`默认的端口是9100。
一开始的时候,prometheus只有一个抓取对象,就是抓取自已的数据。即一开始时,`/usr/local/prometheus/prometheus.yml`的`scrape_configs:`的内容如下:
```
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
```
修改配置文件`/usr/local/prometheus/prometheus.yml`,加入新的`job`,抓取`node_exporter`的数据,添加完后`scrape_configs:`的完整内容如下:
```
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
labels:
instance: peng01
```
然后重启prometheus
```
$ systemctl restart prometheus
```
然后,我们去到prometheus的`Status -> Targets`,就可以看到上面的两个target,均为`UP`状态
![](https://img.kancloud.cn/98/89/9889cb083e8470db357241337c306388_1032x535.png)
接下来,我们通过Prometheus来查看一下主机的内存使用率,输入以下查询语句然后就可以看到内存使用率的曲线图(注意:其实在截这个图时,我们的node-exporter与prometheus已经运行了很长一段时间,如果你的运行时间不长,看到的曲线会比较少)
```
(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100
```
![](https://img.kancloud.cn/e0/2f/e02f9d44b4b53137b69a2472622942de_1338x668.png)
- (一)快速开始
- 安装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
- 参考