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/这里下载,或者点我下载

准备

  1. 拉取到这三个镜像后,进行编写配置启动。具体操作可参考如下:
  2. 这里我们使用一个文件夹存放所有的东西,我们在/home目录新建prometheus文件夹。

启动node_exporter

  1. 在/home/prometheus文件夹新建node_exporter文件夹,然后下载完成后解压到这个文件夹
	1. chmod -r 755 node_exporter
	2. nohup ./node_exporter &

完成后访问 http://ip:9100/metrics 若可以看到metrics信息则代表启动成功.

启动prometheus服务端

  1. 在/home/prometheus文件夹新建prometheus-server文件夹
  2. 编写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"]
  1. 编写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%"
  1. 至此我们编写好了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

  1. 在/home/prometheus文件夹下新建grafana文件夹,并赋予权限,作为grafana数据存储的地方
mkdir /home/prometheus/grafana
chmod 777 -R /home/prometheus/grafana
  1. 启动grafana
docker run -d \
  -p 3000:3000 \
  --name=grafana \
  -v /home/prometheus/grafana:/var/lib/grafana \
  grafana/grafana

启动成功后,可访问http://ip:3000/ 若访问到登录页面,则启动正常。

  1. 使用admin/admin登录
  2. 点击create a data source,选择prometheus,填入http://ip:9090/并Save & Test,成功即可
  3. 因为我们使用了官方的Node_exporter,所以官方提供了相关的grafana面板。我们可以点击!

import按钮并输入8919 加载即可。然后就可以看到我们配置的面板啦!

这里不具体说grafana的深入使用,大家可具体查询,因为这里的东西比较多。
以上便是prometheus的基础安装,就安装来说还是比较简单的。但是要是想玩好prometheus主要还是熟悉使用promQl,这样才可以在grafana配置出高大上的面板,告警也可以更精确。

下一篇我们来介绍prometheus的告警

posted @ 2020-03-31 16:32  faylinn  阅读(376)  评论(0编辑  收藏  举报
、、、