prometheus + node_exporter + grafana监控平台搭建

最近由于工作上的安排,我们产品的运维工作也落到了我头上,接手发现很多运维工作方式比较原始,尤其时在监控方面的欠缺,使得我们处于很被动的局面,所以想着搭建一套监控系统;在做监控平台选型时,比来比去决定还是用prometheus来搭建我们的监控平台,基于我们做这个决定的原因主要有如下几点:

  • 社区活跃,很多人都在用
  • prometheus属于一站式监控告警平台,依赖少,功能齐全。
  • prometheus支持对云或者容器的监控,其他系统主要对主机的监控。
  • 扩展能力比较好,对于后续我们的服务的自定义监控指标集成比较容易。

下面开始搭建:
prometheus :github地址

搭建Prometheus

查阅资料的时候发现很多同学都时直接部署的,这里我推荐用容器的方式部署,这样可以更简洁和便于管理。

  1. 部署服务器安装docker,这里不再赘述docker的安装方式,网上有很多。
  2. 拉去Prometheus镜像
docker pull prom/prometheus
  1. 准备prometheus.yml,这个配置文件是Prometheus的配置文件,我们先准备好,启动Prometheus时会用到。
vim prometheus.yml
global:
  # 全局默认抓取间隔
  scrape_interval: 15s
rule_files:
  - "*rule.yml"
scrape_configs:
  - job_name: 'prometheus'

    # 本任务的抓取间隔,覆盖全局配置
    scrape_interval: 5s

    static_configs:
      # 抓取地址同 Prometheus 服务地址,路径为默认的 /metrics
      - targets: ['localhost:9090']

  1. 启动Prometheus服务,并且把prometheus.yml所在的目录挂载进去。
docker run --name prometheus -d -p 9090:9090 -v /data/prometheus/:etc/prometheus/ prom/prometheus
  1. 用浏览器访问http://服务ip:9090,打开prometheus 页面。
    出现下图的页面,代表Prometheus服务部署成功。
    prometheus + node_exporter + grafana监控平台搭建_第1张图片

搭建node_exporter

node_exporter是负责收集每台物理机的CPU/内存/IO等信息的,所以每台要监控机器都要安装,开发者建议不要用docker部署,所以这个服务我们直接部署在物理机上。

  1. 下载安装包
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
  1. 解压
tar xvfz node_exporter_*
cd node_exporter*

如果调试用,此时执行 ./node_exporter & 就可以运行成功了。
但是由于是监控服务,所以建议设置自启动。

3.设置开机自启动

# 安全起见,创建一个用户用于node_exporter
useradd prometheus

# 把解压后的node_exporter执行文件copy到/usr/bin下 并赋予执行权限
copy node_exporter /usr/bin
chmod +x /usr/bin/node_exporter

# 设置启动参数node_exporter.service
cat > /etc/systemd/system/node_exporter.service << EOF
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
  1. 启动node_exporter
#启动命令
systemctl start node_exporter

#查看状态
systemctl status node_exporter
#出现下面这个状态代表正常
● node_exporter.service - node_exporter
   Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-03-16 15:44:23 CST; 1 weeks 0 days ago
     Docs: https://prometheus.io/
 Main PID: 2858 (node_exporter)
    Tasks: 11 (limit: 4509)
   CGroup: /system.slice/node_exporter.service
           └─2858 /usr/bin/node_exporter

#设置自启动
systemctl enable node_exporter
  1. 配置Prometheus抓去node_exporter数据,此步需要编辑Prometheus的配置文件:prometheus.yml。

vim prometheus.yml

global:
  # 全局默认抓取间隔
  scrape_interval: 15s
rule_files:
  - "*rule.yml"
scrape_configs:
  - job_name: 'prometheus'

    # 本任务的抓取间隔,覆盖全局配置
    scrape_interval: 5s

    static_configs:
      # 抓取地址同 Prometheus 服务地址,路径为默认的 /metrics
      - targets: ['localhost:9090']
   #########node_exporter新增##############
  # 任务名
  - job_name: 'node-exporter'

    # 本任务的抓取间隔,覆盖全局配置
    scrape_interval: 5s

    static_configs:
      # 抓取地址同 Prometheus 服务地址,路径为默认的 /metrics
      - targets: ['机器1IP:9100','机器2IP:9100','机器3IP:9100']
  1. 重启Prometheus
docker restart prometheus
  1. 查看是否配置成功。进入Prometheus后台界面,点击Status-Targets, State如果是UP状态 代表正常,反之就是有问题,排查下是不是node_exporter是否启动,9100端口是不是可以访问。

搭建grafana

granfa是一个可视化的面板,有着非常漂亮和丰富的图表和布局,我们的监控信息就是要用grafana漂亮的显示出来。
grafana安装也是用docker的方式来部署

  1. 安装
#拉去镜像
docker pull grafana/grafana

#启动容器
docker run -d --name=grafana -p 3000:3000 grafana/grafana
  1. 进入grafana后台页面,访问http://grafanaIP:3000/就可以看到grafana的登陆界面,初始密码admin/admin
  2. 添加数据源,点击create a data source,选择Prometheus,在URL输入框输入Prometheus地址http://prometheusIP:9090,点击save&test,如果出现下图的绿色提示,则标示配置有效,否则可能是地址等其他错误,需要自行修改。
    prometheus + node_exporter + grafana监控平台搭建_第2张图片
  3. 创建Dashboard。返回到Home页面,点击Build a dashboard,选择Find dashboards on Grafana.com
    prometheus + node_exporter + grafana监控平台搭建_第3张图片
    选择搜索功能,数据源为Prometheus并输入node_exporter 开始搜索
    prometheus + node_exporter + grafana监控平台搭建_第4张图片
    我么选择搜索结果的第一条“1 Node Exporter for Prometheus Dashboard CN v20191102"
    prometheus + node_exporter + grafana监控平台搭建_第5张图片
    在上图界面,copy它的ID,回到Home界面,选择import dashboard
    prometheus + node_exporter + grafana监控平台搭建_第6张图片
    prometheus + node_exporter + grafana监控平台搭建_第7张图片
    在Grafana.com Dashboard中粘贴刚才复制的ID,并点击Load。
    prometheus + node_exporter + grafana监控平台搭建_第8张图片
    数据源选择Prometheus,然后点击import即可,在这个面板上,Name可以修改为自己想要的,Folder可以对该dashboard分类存放,其他也可以看到作者信息等

这样至此就搭建完毕,看下整体效果吧,prometheus + node_exporter + grafana监控平台搭建_第9张图片
怎么样,是不是很漂亮
下期记录一下怎样配置报警规则。

你可能感兴趣的:(prometheus + node_exporter + grafana监控平台搭建)