Heartsuit's Simple Blog

A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。


Project maintained by heartsuit Hosted on GitHub Pages — Theme by mattgraham

云原生之运维监控实践-OpenEuler22.03SP3上安装Prometheus与Grafana实现主机状态监测

目录[-]

背景

如果没有监控,那么最好的情况是没有问题发生,最糟糕的情况则是问题发生了但没有被发现。——《Prometheus监控实战》

去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当时使用的是 docker-compose 在单台机器上部署若依微服务 ruoyi-cloud 项目;在这个基础上,作为演示项目,我们计划实现对所有基础组件和微服务的监控。今天这篇文章主要是记录下搭建 Prometheus 与 Grafana 监控系统的过程,并通过 node-exporter 实现对部署微服务的主机状态进行监控。

首先了解下 Prometheus 与 Grafana 的功能,简述如下。

Note:如果是生产环境部署,建议使用 Kubernetes 环境管理所有容器。

虚机资源

共用到了2台虚机,1台作为应用服务节点,1台运维监控节点。

主机名 IP 说明
svc 192.168.44.168 服务节点
ops 192.168.44.169 监控节点

基本选用当前最新版本,即将安装的 Prometheus 和 Grafana 版本信息如下:

系统环境

[root@ops ~]# uname -a
Linux ops 5.10.0-182.0.0.95.oe2203sp3.x86_64 #1 SMP Sat Dec 30 13:10:36 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@ops ~]# cat /proc/version
Linux version 5.10.0-182.0.0.95.oe2203sp3.x86_64 (root@dc-64g.compass-ci) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Sat Dec 30 13:10:36 CST 2023

ops节点:docker-compose安装Prometheus与Grafana

在这里的 docker-compose 服务中选择当前最新版本,并采用最小化配置:明确了容器名称,指定镜像的版本信息,配置端口映射、配置与数据挂载目录等。

2024-09-29-PrometheusVersion.jpg

2024-09-29-GrafanaVersion.jpg

version : '3.8'
services:
  prometheus:
    container_name: ops-prometheus
    image: prom/prometheus:v2.54.1
    ports:
      - '9090:9090'
    command: '--config.file=/etc/prometheus/config.yml'
    volumes:
      - './prometheus/conf/prometheus.yml:/etc/prometheus/config.yml'
      - './prometheus:/prometheus'

  grafana:
    container_name: ops-grafana
    image: grafana/grafana:11.2.0
    ports:
      - '3000:3000'
    volumes:
      - './grafana/data:/var/lib/grafana'

通过命令: docker-compose up -d 完成镜像拉取、并启动 Prometheus 与 Grafana 服务。

Note: 如果遇到报错信息,可以先给目录及文件赋权限。

chmod 777 -R /opt/monitoring/prometheus
chmod 777 -R /opt/monitoring/grafana/data

验证安装结果

先通过 docker ps 查看容器状态。

[root@ops ~]# docker ps
CONTAINER ID   IMAGE                     COMMAND                   CREATED       STATUS       PORTS                                       NAMES
0daa011e5706   grafana/grafana:11.2.0    "/run.sh"                 6 hours ago   Up 6 hours   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   ops-grafana
a90c10c14ef0   prom/prometheus:v2.54.1   "/bin/prometheus --c…"   6 hours ago   Up 3 hours   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   ops-prometheus

然后通过浏览器查看 Prometheus 与 Grafana 服务的页面。

2024-09-29-PrometheusInstall.jpg

2024-09-29-GrafanaInstall.jpg

Note: Grafana 的默认用户名为:admin;密码:admin。登录成功后建议先修改密码。

svc节点:docker-compose安装node_exporter

有了 Prometheus 与 Grafana 的基础环境,我们来实现对部署微服务的主机状态进行监控:node_exporter是用于收集主机(服务器)性能指标的标准工具,它能够提供关于CPU、内存、磁盘、网络等各类系统资源的详细信息。

在需要监测的主机上,编辑 docker-compose.yml 文件。

2024-09-29-NodeExporterVersion.jpg

version: '3'
services:
  node_exporter:
    container_name: ops-node-exporter
    image: prom/node-exporter:v1.8.2
    ports:
      - "9101:9100"
    restart: unless-stopped

通过命令: docker-compose up -d 完成镜像拉取、并启动 node-exporter 服务。

修改Prometheus配置

在 Prometheus 配置中增加对svc主机的抓取配置。

scrape_configs:
  - job_name: 'ops-node'
    scrape_interval: 10s
    static_configs:
      - targets: ['192.168.44.168:9100']

重启 Prometheus 容器。

[root@ops monitoring]# docker restart ops-prometheus

验证node-exporter安装结果

浏览器访问http://192.168.44.168:9100/metrics

2024-09-29-NodeExporterIndex.jpg

配置Grafana对主机状态的可视化

浏览器访问http://192.168.44.169:3000。

2024-09-29-DataSource1.jpg

2024-09-29-DataSource2.jpg

https://grafana.com/grafana/dashboards/这个页面是 Grafana 的官方仪表板目录,用户可以在这里找到和共享各种现成的 Grafana 仪表板。这些仪表板覆盖了多种监控需求,包括系统性能、应用监控、网络流量等。用户可以根据自己的需求搜索和导入适合的仪表板,提高监控效率和可视化效果。这里我们搜索 Node Exporter ,结果中有个 Node Exporter Full ,点击进去可以查看详细的UI效果,复制仪表板的id,此处是1860。

  1. 在右侧菜单中点击”New”按钮,然后选择”Import”。
  2. 在输入框中,可以直接输入现成仪表板的ID,或者上传JSON文件。常用的主机监控仪表板ID是1860(Node Exporter Full Dashboard)。
  3. 点击”Load”,随后选择已配置好的数据源。
  4. 点击”Import”完成导入。

2024-09-29-GrafanaImport.jpg

2024-09-29-NodeExporter1860.jpg

监控效果

2024-09-29-NodeExporterGrafana.jpg

小总结

本文记录了在 Docker 环境下使用 docker-compose 部署 Prometheus 和 Grafana 监控系统的过程,并通过 node-exporter 实现对主机状态的监控。文章介绍了 Prometheus 和 Grafana 的主要功能,提供了具体的安装步骤、配置文件示例、以及验证和可视化的操作指南。通过这些步骤可以在两台虚拟机上成功部署和运行 Prometheus 和 Grafana ,并实现对微服务主机的监控和数据可视化。

没有监控,你将无法了解你的系统环境、进行诊断故障、制定容量计划,也无法向组织提供系统的性能、成本和状态等信息。我们应该频繁地监控应用程序,以获得以下好处:

从技术角度来看,监控(Monitoring)是衡量和管理技术系统的工具和流程。后续我们将对基础环境组件进行监控,包括: MySQL , Redis , Nacos , Nginx , MinIO , InfluxDB 等等,同时,我们也要对业务服务进行监控,eg: Spring Boot 技术栈的 Actuator 与 JVM 。对于许多基础组件, Prometheus 提供了专门的 Exporter 来收集指标数据。

Reference


If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!


「说点什么吧😊~~😊」: