首页 > 系统相关 >5分钟部署Prometheus+Grafana批量监控Linux服务器

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

时间:2024-09-03 11:26:03浏览次数:16  
标签:node exporter -- prometheus 192.168 Grafana Prometheus 9100 Linux



文章目录

  • 一键安装Node Exporter
  • 安装prometheus
  • 创建数据存储目录
  • 创建配置文件
  • 下载运行Prometheus
  • 安装Grafana
  • 创建数据目录
  • 下载运行Grafana
  • 配置Grafana监控Linux服务器
  • 登录
  • 首次登录后设置密码
  • 添加数据源
  • 选择prometheus
  • 填写prometheus地址
  • 导入模板



辛苦您也关注下公众号,感谢!




5分钟部署Prometheus+Grafana批量监控Linux服务器_配置文件



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

先来几张效果图:

5分钟部署Prometheus+Grafana批量监控Linux服务器_配置文件_02

5分钟部署Prometheus+Grafana批量监控Linux服务器_配置文件_03

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

一键安装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."

安装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

参数

说明

-d

使容器在后台运行(分离模式)。

--name=prometheus

为容器指定名称 prometheus,便于管理。

-p 9090:9090

将宿主机的 9090 端口映射到容器的 9090 端口,便于访问 Prometheus。

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

挂载宿主机的 Prometheus 配置文件到容器中。

-v /data/prometheus_data:/prometheus

挂载宿主机的目录用于存储 Prometheus 数据,确保数据持久化。

--restart always

设定容器在停止后自动重启,保证持续运行。

prom/prometheus

使用 Prometheus 的官方 Docker 镜像启动容器。

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

安装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

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

首次登录后设置密码

5分钟部署Prometheus+Grafana批量监控Linux服务器_配置文件_06

添加数据源

5分钟部署Prometheus+Grafana批量监控Linux服务器_配置文件_07

选择prometheus

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

填写prometheus地址

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

最下方点击保存

5分钟部署Prometheus+Grafana批量监控Linux服务器_配置文件_10

导入模板

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

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

输入名称和数据源导入

5分钟部署Prometheus+Grafana批量监控Linux服务器_配置文件_12

监控效果

5分钟部署Prometheus+Grafana批量监控Linux服务器_配置文件_13

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

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

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


标签:node,exporter,--,prometheus,192.168,Grafana,Prometheus,9100,Linux
From: https://blog.51cto.com/u_13721902/11907275

相关文章

  • 让 Linux 拥有回收站:轻松找回误删文件的完美解决方案
    文章目录让Linux拥有回收站:轻松找回误删文件的完美解决方案方案设计编写`trash`脚本定期清理回收站总结辛苦您也关注下公众号,感谢!让Linux拥有回收站:轻松找回误删文件的完美解决方案在Linux系统中,使用rm命令删除文件后,文件通常会被直接从系统中移除,难以恢复。为了避......
  • 告别无进度等待:Linux系统中为cp和mv命令加上实时进度条
    文章目录告别无进度等待:Linux系统中为cp和mv命令加上实时进度条一、advcpmv简介二、advcpmv的优势三、安装advcpmv3.1前置准备3.2设置环境变量3.3下载并安装3.4手动安装步骤3.5配置别名四、使用advcpmv4.1查看帮助信息4.2实际操作五、总结辛苦您也关注下公众号,感谢!告......
  • 在Linux中使用C++调用Python程序
    为什么要用C++调Python我们训练部署CNN模型时,服务器用Pytorch测试的精度比我们部署端精度高0.5%。经过多方排查,发现是由于Pytorch预处理图片使用PIL进行图片读取和尺寸调整,但是部署端采用OpenCV进行图片读取和尺寸调整。两种实现方式实现的Resize操作差异非常大。为了快速完成项......
  • Linux--实现简易shell
    文章目录shell定义和功能myshell.cGetCwd()GetUsrName()GetHostName()MakeCommandLineAndPrint()GetUserCommand()SplitCommand()Die()ExecuteCommand()GetHome()Cd()CheckBuildin()CheckRedir()myshell.c完整代码makefile测试函数和进程之间的相似性Shell是一个功能......
  • VMware Workstation 17.5.2 Pro for Linux 更新 OEM BIOS 2.7 支持 Windows Server 20
    VMwareWorkstation17.5.2ProforLinux更新OEMBIOS2.7支持WindowsServer2025VMwareWorkstation17.5.2PromacOSUnlocker&OEMBIOS2.7forLinux在Linux上运行macOSSonoma请访问原文链接:https://sysin.org/blog/vmware-workstation-17-unlocker-linux/,查......
  • linux 硬件 arm架构
    一.ARM:1.时钟晶振:        在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。2.系统复位:        这个复位会使整个芯......
  • Jenkins - 在Rocky Linux系统下安装Jenkins和配置Agent节点
    安装Jenkins主节点下载和安装JenkinsLTS版本本机信息[root@localhost~]#cat/etc/system-releaseRockyLinuxrelease9.4(BlueOnyx)[root@localhost~]#[root@localhost~]#uname-aLinuxlocalhost.localdomain5.14.0-427.33.1.el9_4.x86_64#1SMPPREEMPT_DYNA......
  • 【Linux】Linux系统调试:如何选择strace和ltrace,全面对比
    在调试和诊断Linux程序时,strace和ltrace是两款常用的命令行工具。尽管它们都用于跟踪程序的行为,但它们的关注点和用途有所不同。本文将详细解析strace和ltrace的区别,帮助你选择适合的工具进行调试和诊断。......
  • Linux目录结构命令
    日志查询4剑客(head、tail、less、more)概述Linux日志文件大,通过cat、vi/vim进行查看,系统可能卡死、内存不足推荐使用不会占用系统太多内存的命令,查看日志:head/tail、less/more故障案例:日志查询命令使用★★★★★1)head显示文件的头几行(默认是头十行)head选项 -nn......
  • linux进程间通信——信号量(通俗易懂,看这一篇就够了)
    信号量概念特点信号量实际是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。很多进程会访问同一资源,或者向共享内存写入一些东西,为防止争夺资源混乱。可以给一些进程上锁,让其排队等待工作原理P(sv):如果sv的值大于零,就给它减1;如果它的值为......