prometheus系列【2】安装与基础使用
段落引用这个教程网上很多。我们这次使用docker安装,比较简便。
下载镜像
# prometheus服务端
docker pull prom/prometheus
# prometheus面板ui
docker pull grafana/grafana
# 告警(按需处理)
docker pull prom/alertmanager
- 这里为了测试方式我们先起一个node_exporter
- exporter可参考第一篇的介绍,是prometheus的客户端,收集数据使用的。node_exporter是用户监控主机的基础数据的,所以官方建议不在容器中部署。
- 可在https://prometheus.io/download/这里下载,或者点我下载
准备
- 拉取到这三个镜像后,进行编写配置启动。具体操作可参考如下:
- 这里我们使用一个文件夹存放所有的东西,我们在/home目录新建prometheus文件夹。
启动node_exporter
- 在/home/prometheus文件夹新建node_exporter文件夹,然后下载完成后解压到这个文件夹
1. chmod -r 755 node_exporter
2. nohup ./node_exporter &
完成后访问 http://ip:9100/metrics 若可以看到metrics信息则代表启动成功.
启动prometheus服务端
- 在/home/prometheus文件夹新建prometheus-server文件夹
- 编写prometheus.yml
global:
scrape_interval: 60s
evaluation_interval: 60s
# 若不需要告警,则不需要配置此处,也不需要rules.yml配置文件
rule_files:
- "/etc/prometheus/rules.yml"
scrape_configs:
# 可参考使用,本例子中未使用这个
- job_name: 'federate-jvm'
scrape_interval: 20s
scrape_timeout: 10s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{kubernetes_namespace=~"^375-.*"}'
static_configs:
- targets:
- 10.100.72.187:9090
-
# 可配置上文启动的node_exporter
- job_name: demo
static_configs:
- targets: ['111.11.11.111:9100','111.11.11.112:9100']
# 若不需要告警,则不需要配置此处
alerting:
alertmanagers:
- static_configs:
- targets: ["111.11.11.111:9093"]
- 编写rules.yml
groups:
- name: machine_mem_alerting
rules:
- alert: 主机内存利用率
# 这里是具体的promQl,这里是 (1- 可用内存量/总内存量) * 100 得到占用百分比,若大于80则触发规则
expr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) *100 >80
# 每分钟查询一次
for: 1m
# 告警级别
labels:
severity: red
# 一些参数
annotations:
# 这里的值都是取自prometheus,具体值具体查询
summary: " {{ $labels.instance }} 当前值为{{ .Value }} "
description: "{{ $labels.instance }} 内存利用率查过80%"
- 至此我们编写好了prometheus服务端的配置文件,我们可以启动prometheus看看
# 将刚才编写好的配置文件挂载到prometheus中,这样可以随时修改配置restart即可
docker run -d \
--name=prometheus \
-p 9090:9090 \
-v /home/prometheus/:/etc/prometheus/ \
prom/prometheus
启动成功后,可访问http://ip:9090/graph 可以进到prometheus页面,粘贴我们刚才配置的promQl
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) *100
点击Execute 便可以查询到当前node的内存占用率
启动grafana
- 在/home/prometheus文件夹下新建grafana文件夹,并赋予权限,作为grafana数据存储的地方
mkdir /home/prometheus/grafana
chmod 777 -R /home/prometheus/grafana
- 启动grafana
docker run -d \
-p 3000:3000 \
--name=grafana \
-v /home/prometheus/grafana:/var/lib/grafana \
grafana/grafana
启动成功后,可访问http://ip:3000/ 若访问到登录页面,则启动正常。
- 使用admin/admin登录
- 点击create a data source,选择prometheus,填入http://ip:9090/并Save & Test,成功即可
- 因为我们使用了官方的Node_exporter,所以官方提供了相关的grafana面板。我们可以点击!
import按钮并输入8919 加载即可。然后就可以看到我们配置的面板啦!
这里不具体说grafana的深入使用,大家可具体查询,因为这里的东西比较多。
以上便是prometheus的基础安装,就安装来说还是比较简单的。但是要是想玩好prometheus主要还是熟悉使用promQl,这样才可以在grafana配置出高大上的面板,告警也可以更精确。
下一篇我们来介绍prometheus的告警
时在中春,阳和方起