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 项目;在这个基础上,作为演示项目,我们计划实现对所有基础组件和微服务的监控。今天这篇文章主要是记录下搭建 PrometheusGrafana 监控系统的过程,并通过 node-exporter 实现对部署微服务的主机状态进行监控。

首先了解下 PrometheusGrafana 的功能,简述如下。

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

虚机资源

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

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

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

系统环境

[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 完成镜像拉取、并启动 PrometheusGrafana 服务。

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

然后通过浏览器查看 PrometheusGrafana 服务的页面。

2024-09-29-PrometheusInstall.jpg

2024-09-29-GrafanaInstall.jpg

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

svc节点:docker-compose安装node_exporter

有了 PrometheusGrafana 的基础环境,我们来实现对部署微服务的主机状态进行监控: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 部署 PrometheusGrafana 监控系统的过程,并通过 node-exporter 实现对主机状态的监控。文章介绍了 PrometheusGrafana 的主要功能,提供了具体的安装步骤、配置文件示例、以及验证和可视化的操作指南。通过这些步骤可以在两台虚拟机上成功部署和运行 PrometheusGrafana ,并实现对微服务主机的监控和数据可视化。

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

从技术角度来看,监控(Monitoring)是衡量和管理技术系统的工具和流程。后续我们将对基础环境组件进行监控,包括: MySQLRedisNacosNginxMinIOInfluxDB 等等,同时,我们也要对业务服务进行监控,eg: Spring Boot 技术栈的 ActuatorJVM 。对于许多基础组件, 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!


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