[TOC]
### **下载安装介质**
根据[grafana官网的介绍](https://grafana.com/grafana/download),我们使用rpm包的方式来安装。此时的最新版本是8.2.1,我们选择OSS版本。
```
$ wget https://dl.grafana.com/oss/release/grafana-8.2.1-1.x86_64.rpm
```
### **安装**
```
$ yum -y localinstall ./grafana-8.2.1-1.x86_64.rpm
```
配置文件`/etc/grafana/grafana.ini`保持默认即可,然后启动
```
$ systemctl daemon-reload && systemctl enable grafana-server
$ systemctl start grafana-server
```
### **登录grafana首页**
登录 http://x.x.x.x:3000 ,用户名密码默认为`admin/admin`,首次登录需要更改密码。登录成功后,即可进入到grafana的首页。
### **配置Prometheus数据源**
点击“Configuration”、“Data sources”、“Add data source”,如下:

点击选择Prometheus类型

在配置页面,填写data-source的名字(比如prometheus-local),填写prometheus的地址,其他的都保持默认。然后点击“Save & test”


点击“Save & test”之后,会提示“Data source is working”,表示添加成功且data source正常工作

返回data source列表,可以看到刚才的数据源

### **配置Dashboard与Panel**
假设我们现在要在一个页面上展示主机的CPU、内存等监控信息。那么,我们可以为创建一个Dashboard,名字叫Host;在这个Dashboard中分别为CPU、内存添加Panel。
一个dashboard就是一个页面,一个页面由若干行(row)组成,每一行(row)由若干个面板(Panel)组成。
点击左边的“Dashborad”菜单栏,点击“Manage”,点击“New dashboard”

然后会进入到如下的页面,为dashboard配置Panel

点击“Add an new row”,给这个row命名为“CPU与内存”

然后再返回Dashboard的Manage页面,此时需要保存dashboard,输入名字Host

然后会看到我们刚才创建的dashboard

重新进入到Host这个dashboard中,点击上面的添加panel

点击“Add an empty panel”,进入到panel的配置页面,输入title,数据源选择prometheus-local,输入CPU使用率的计算公式,点击“Apply”

然后我们就可以看到CPU使用率这个Panel添加成功

使用这种方式继续添加内存的Panel,如下:

### **FAQ**
**Q:如何把纵坐标显示为百分比?**
A:进入到Panel的配置页面,在右边的配置栏下拉到下面,找到“Standard Options”,Unit选择“Percent(0-100)”,Min填写0,Max填写100。另外,promql语句也要乘以100。

**Q: 如何配置Threshhold线?**
A:进入到Panel的配置页面,在右边的配置栏下拉到下面,找到“Threshholds”,填写百分比,选择Percentage,选择“As lines”

**Q:如何更改admin用户的默认密码?**
A:如果是非容器安装,则更改[default.ini](https://github.com/grafana/grafana/blob/v8.2.1/conf/defaults.ini#L226)文件中的如下一行:
```
[security]
admin_password = admin
```
如果是容器化安装,则可以使用[环境变量](https://grafana.com/docs/grafana/v8.2/administration/configuration/#override-configuration-with-environment-variables)`GF_SECURITY_ADMIN_PASSWORD`来设置。
### **参考**
- (一)快速开始
- 安装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
- 参考