5分钟部署Prometheus+Grafana批量监控Linux服务器

给你送挂来了,宝~~

详细讲解如何在 Linux 服务器上使用 Docker 容器快速部署 Prometheus 和 Grafana 监控系统,同时通过 node_exporter 采集全面的系统性能数据。整个流程涵盖了从环境配置到搭建一个全面监控平台的每个步骤

1,一键安装Node Exporter

Node Exporter 是 Prometheus 生态系统中的一个关键组件,它专门用于收集和导出 Linux 系统的硬件和操作系统指标,如 CPU 使用率、内存利用率、磁盘 IO、网络统计等。这些数据可以帮助你深入了解服务器的性能表现,从而提高系统的监控和管理效率。

该服务所有需要监控的服务器安装,属于数据采集Agent。

下面是一键安装的脚本,脚本设置了国内加速

#!/bin/bash

定义变量

URL="https://mirror.ghproxy.com/https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz"

TAR_FILE="node_exporter-1.8.2.linux-amd64.tar.gz"

DIR_NAME="node_exporter-1.8.2.linux-amd64"

LISTEN_PORT="9100"

下载文件

echo "Downloading $TAR_FILE..."

wget -c URL -O TAR_FILE

if [ $? -ne 0 ]; then

echo "Error: Failed to download $TAR_FILE."

exit 1

fi

解压文件

echo "Extracting $TAR_FILE..."

tar -zxvf $TAR_FILE

if [ $? -ne 0 ]; then

echo "Error: Failed to extract $TAR_FILE."

exit 1

fi

进入解压后的目录

echo "Changing directory to $DIR_NAME..."

cd $DIR_NAME

if [ $? -ne 0 ]; then

echo "Error: Failed to change directory to $DIR_NAME."

exit 1

fi

后台运行 node_exporter

echo "Starting node_exporter on port $LISTEN_PORT..."

nohup ./node_exporter --web.listen-address=":$LISTEN_PORT" > node_exporter.stdout 2>&1 &

if [ $? -ne 0 ]; then

echo "Error: Failed to start node_exporter."

exit 1

fi

echo "node_exporter started successfully and is listening on port $LISTEN_PORT."

2,安装prometheus

创建数据存储目录

mkdir /data/prometheus_data && chmod 777 /data/prometheus_data

创建配置文件

将需要监控的节点和添加进配置文件

复制代码
- job_name: "node_exporter"
    static_configs:
      - targets:
        - "192.168.1.12:9100"
        - "192.168.1.13:9100"
        - "192.168.1.14:9100"
        - "192.168.1.15:9100"
        - "192.168.1.3:9100"
        - "192.168.1.4:9100"
        - "192.168.1.5:9100"
        - "192.168.1.6:9100"
        - "192.168.1.7:9100"

完整的配置文件内容为:

my global config

global:

scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.

evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

scrape_timeout is set to the global default (10s).

Alertmanager configuration

alerting:

alertmanagers:

  • static_configs:

  • targets:

- alertmanager:9093

Load rules once and periodically evaluate them according to the global "evaluation_interval".

rule_files:

- "first_rules.yml"

- "second_rules.yml"

A scrape configuration containing exactly one endpoint to scrape:

Here it"s Prometheus itself.

scrape_configs:

The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.

  • job_name: "prometheus"

static_configs:

  • targets: ["localhost:9090"]

  • job_name: "node_exporter"

static_configs:

  • targets:

  • "192.168.1.12:9100"

  • "192.168.1.13:9100"

  • "192.168.1.14:9100"

  • "192.168.1.15:9100"

  • "192.168.1.3:9100"

  • "192.168.1.4:9100"

  • "192.168.1.5:9100"

  • "192.168.1.6:9100"

  • "192.168.1.7:9100"

tips:这里格式一定要对齐,否则可能会启动失败

设置配置文件权限

chmod 777 /etc/prometheus.yml

下载运行Prometheus

下载运行服务:

docker run -d \

--name=prometheus \

-p 9090:9090 \

-v /etc/prometheus.yml:/etc/prometheus/prometheus.yml \

-v /data/prometheus_data:/prometheus \

--restart always \

prom/prometheus

如果拉取不了可以用下面这个:

docker run -d \

--name=prometheus \

-p 9090:9090 \

-v /etc/prometheus.yml:/etc/prometheus/prometheus.yml \

-v /data/prometheus_data:/prometheus \

--restart always \

registry.cn-hangzhou.aliyuncs.com/jast-docker/prometheus:latest

访问:http://localhost:9090 验证是否启动生效

3,安装Grafana

创建数据目录

mkdir -p grafana/data

下载运行Grafana

docker run -d -p 3000:3000 --name=grafana \

--user "$(id -u)" \

--volume "$PWD/grafana/data:/var/lib/grafana" \

grafana/grafana

上面的如果用不了,用下面的国内镜像

docker run -d -p 3000:3000 --name=grafana \

--user "$(id -u)" \

--restart always \

--volume "$PWD/grafana/data:/var/lib/grafana" \

registry.cn-hangzhou.aliyuncs.com/jast-docker/grafana:latest

运行完成访问: http://localhost:3000

配置Grafana监控Linux服务器

登录

默认账号密码admin/admin

首次登录后设置密码

添加数据源

选择prometheus

填写prometheus地址

最下方点击保存

导入模板

导入8189模板,官方提供的监控模板

输入名称和数据源导入

监控效果

到此监控已经配置完成,你也可以配置预警值,进行一些告警操作,第一时间发现问题。

稳啦稳啦!!!全都稳啦!!!

相关推荐
牛奶咖啡135 小时前
Prometheus+Grafana构建云原生分布式监控系统(十三)_Prometheus数据模型及其PromQL
云原生·prometheus·prometheus数据类型·promql使用场景·promql表达式解析·promql数据类型·监控系统的方法论与指标
AC赳赳老秦1 天前
外文文献精读:DeepSeek翻译并解析顶会论文核心技术要点
前端·flutter·zookeeper·自动化·rabbitmq·prometheus·deepseek
qq_312920112 天前
Proxmox VE 监控:把集群指标秒级推送到 InfluxDB 2.x,Grafana 大屏一步到位
运维·grafana
牛奶咖啡132 天前
Prometheus+Grafana构建云原生分布式监控系统(十二)_基于DNS的服务发现
云原生·prometheus·dns·搭建自己的dns服务器·使用bind搭建dns服务器·配置正向解析·基于dns的服务发现
A-刘晨阳3 天前
Prometheus + Grafana + Alertmanager 实现邮件监控告警及配置告警信息
运维·云计算·grafana·prometheus·监控·邮件
饺子大魔王的男人3 天前
告别服务器失联!Prometheus+Alertmanager+cpolar 让监控告警不局限于内网
运维·服务器·prometheus
电话交换机IPPBX-3CX4 天前
如何使用 Grafana 可视化你的 3CX 呼叫中心电话系统
grafana·ip pbx·电话交换机·企业电话系统
牛奶咖啡134 天前
Prometheus+Grafana构建云原生分布式监控系统(十一)_基于consul的服务发现
云原生·prometheus·consul的安装部署·consul服务自动发现·consul服务的注册删除·consul服务的更新·实现自动去consul注册服务
Otto_10275 天前
在 OpenStack Rocky 中部署 Prometheus + Grafana
openstack·grafana·prometheus
牛奶咖啡135 天前
Prometheus+Grafana构建云原生分布式监控系统(十)_prometheus的服务发现机制(一)
云原生·prometheus·prometheus服务发现·静态服务发现·动态服务发现·基于文件的服务发现配置实践·prometheus标签重写