Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Linux网站汇总
  • Shell使用详解
  • 自动化运维脚本集合
  • 模拟占用磁盘内存CPU
  • Linux释放缓存
  • Linux监控进程磁盘邮件预警
  • 《Nginx教程》笔记
  • Linxu服务器文件双向同步-rsync+sersync
  • Linux文件清空的几种方法
  • Linux日志自动清理方案
  • Linux执行脚本加密
  • Linux安装包制作
  • Crontab详解
  • Linux上传下载百度网盘文件
  • 内网穿透
  • 内网穿透-无需公网服务器
  • 一文搞定Jenkins自动化部署程序
  • Linux配置代理请求
  • Linux监控之夜莺
  • Proxmox安装
  • Proxmox创建CentOS虚拟机
  • Proxmox创建Windows虚拟机
  • Debian系统安装OpenVPN
  • Docker快速部署OpenVPN
  • 用户登录时执行检查脚本
  • 一键配置Linux镜像源
  • RustScan端口扫描
  • 前置机、堡垒机、跳板机区别
  • Linux添加回收站功能
  • Linux系统详细信息监控-Grafana+Prometheus
    • 一键安装Node Exporter
    • 安装prometheus
      • 创建数据存储目录
      • 创建配置文件
      • 下载运行Prometheus
    • 安装Grafana
      • 创建数据目录
      • 下载运行Grafana
      • 配置Grafana监控Linux服务器
      • 登录
      • 首次登录后设置密码
      • 添加数据源
      • 选择prometheus
      • 填写prometheus地址
      • 导入模板
  • 再见XShell:轻量又高性能的SSH工具AI加持快人一步
  • Unbuntu安装deb文件
  • Ubuntu远程连接时分辨率问题
  • Ubuntu中Clash报错
  • Linux可视化监控
  • Vim复制自动缩进问题处理
  • 无所不能的BusyBox:如何用它打造极小的Linux环境
  • 运维
Jast-zsh
2024-09-10
目录

Linux系统详细信息监控-Grafana+Prometheus

[toc]


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

先来几张效果图:

image-20240830222502610

image-20240830222607872

image-20240830222637672

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

# 安装prometheus

# 创建数据存储目录

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

# 创建配置文件

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

  - 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"
1
2
3
4
5
6
7
8
9
10
11
12

完整的配置文件内容为

# 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"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

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

设置配置文件权限

chmod 777 /etc/prometheus.yml
1

# 下载运行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
1
2
3
4
5
6
7

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

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
1
2
3
4
5
6
7
参数 说明
-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
1

# 下载运行Grafana

docker run -d -p 3000:3000 --name=grafana \
  --user "$(id -u)" \  
  --volume "$PWD/grafana/data:/var/lib/grafana" \
  grafana/grafana  
1
2
3
4

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

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
1
2
3
4
5

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

# 配置Grafana监控Linux服务器

# 登录

默认账号密码admin/admin

image-20240830142719831

# 首次登录后设置密码

image-20240830142745346

# 添加数据源

image-20240830142924970

# 选择prometheus

image-20240830142945524

# 填写prometheus地址

image-20240830143022372

最下方点击保存

image-20240830143101480

# 导入模板

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

image-20240830143232463

输入名称和数据源导入

image-20240830143325078

监控效果

image-20240830222502610

image-20240830222607872

image-20240830222637672

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

上次更新: 2024/09/11, 21:00:03
Linux添加回收站功能
再见XShell:轻量又高性能的SSH工具AI加持快人一步

← Linux添加回收站功能 再见XShell:轻量又高性能的SSH工具AI加持快人一步→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式