快速搭建Prometheus监控

目录

OVERVIEW 概述

https://prometheus.io/docs/introduction/overview/

What is Prometheus? 什么是普罗米修斯?

Prometheus是一个开源系统监控和警报工具包,最初是在SoundCloud上构建的。自 2012 年成立以来,许多公司和组织都采用了 Prometheus,该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

Prometheus 收集其指标并将其存储为时间序列数据,即指标信息与记录它的时间戳一起存储,以及称为标签的可选键值对。

组件架构图

image-1695188713289


快速部署Prometheus & grafana实例

项目链接:dhwark/grafana-tutorial: Grafana 使用教程 (github.com)

docker-compose.yml

此compose文件会启动两个容器:

prometheus是prometheus主程序,包含完整组件

grafana就是监控面板

在启动前请检查防火墙端口规则,grafana默认占用3000端口,Prometheus占用9090端口

准备就绪后使用docker-compose up -d启动服务

compose文件如下:

version: '3.4'
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    hostname: prometheus
    ports:
      - 9090:9090
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana
    container_name: grafana
    hostname: grafana
    ports:
      - 3000:3000
    volumes:
      - ./grafana.ini:/etc/grafana/grafana.ini

node_exporter.sh

node_exporter 使用9100端口

此脚本是在宿主机上安装node_exporter采集数据,程序由go语言编写,无需编译直接运行,建议配置成systemd服务来管理,完整代码如下:

#!/bin/bash


set -e

ip=$(ip a |grep ens32 | sed "2s/^.*inet//;2s/brd.*$//p" -n)

tar -zxf node_exporter-1.5.0.linux-amd64.tar.gz
mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter
touch /usr/lib/systemd/system/node_exporter.service
cat > /usr/lib/systemd/system/node_exporter.service << "EOF"
[Unit]
Description=node_exporter
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter

echo "now node_exporter is running on ${ip}:9100"

prometheus.yml

此文件中需添加你的数据采集对象:

scrape_configs:
- job_name: <节点名>
  static_configs:
  - targets: ['ip:9100'] # 改为你监控端的ip

此处为宿主机就添加宿主机ip,不要使用localhost!

安装完毕node_exporter后可以在:http://ip:9090/targets?search=

查看节点状态,显示up即为采集成功,如果失败请检查配置文件中的ip地址

image-1695188743761


grafana

节点配置完毕就可以开始配置监控面板了,登录grafana页面,默认用户名/密码:admin

  1. 添加数据源,选择Prometheus

image-1695188754086

  1. 填入Prometheus地址

image-1695188770593
点击页面底部的save&test

  1. 找到dashboard页面导入模板

image-1695188779124

grafana支持丰富的模板定义!我们可以在官网找到我们喜欢的模板导入:

Dashboards | Grafana Labs

node_exporter可以使用此模板,中文监控模板id:220417

image-1695188792889

  1. 模板展示

自此我们已经完成了所有组建的部署,并成功开启了一个展示模板!

image-1695188803468