掘金 后端 ( ) • 2024-04-24 09:35

前言

在现代的系统监控领域,Prometheus 和 Grafana 是一对常见的搭档,它们能够提供强大的监控和可视化能力,帮助我们实时地了解系统的状态和性能。Prometheus 是一个开源的监控系统,它通过拉取目标暴露的指标来获取监控数据。而 Grafana 则是一个开源的数据可视化工具,它可以将 Prometheus 收集到的数据通过图表的方式展示出来,以便用户能更直观地监控系统和应用程序。

在这篇技术博文中,我将详细介绍如何在 CentOS 系统上安装和配置 Prometheus 的一个重要组件 —— node_exporternode_exporter 负责收集主机级别的性能指标,并将这些指标暴露给 Prometheus 服务器。我们还将介绍如何将这些监控数据接入到 Prometheus,并使用 Grafana 来创建一个漂亮的监控面板。

接下来,我们将一步步通过实际操作来完成整个过程。我会从 node_exporter 的安装和配置开始,然后配置 Prometheus 以收集 node_exporter 暴露的指标,最后通过 Grafana 创建仪表板来可视化这些指标。无论你是系统管理员还是开发人员,掌握这些技能都将有助于你更好地维护和优化你的系统。

希望这篇博文能够帮助你轻松地入门和使用 Prometheus 和 Grafana 进行系统监控。让我们开始吧!

安装node_exporter

  1. 下载安装包并上传到服务器

    https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
    
  2. 解压安装包到指定安装路径,并重命名

    tar -zxvf node_exporter-1.7.0.linux-amd64.tar.gz -C /home/lbs/software/exporter
    mv /home/lbs/software/exporter/node_exporter-1.7.0.linux-amd64 /home/lbs/software/exporter/node_exporter
    
  3. node_exporter目录下新增管理脚本manage_script.sh

    注意替换NODE_EXPORTER_ROOT的值为自己的安装路径

    echo "#!/bin/bash
    
    # node_exporter的根目录路径
    NODE_EXPORTER_ROOT="/home/lbs/software/exporter/node_exporter"
    # node_exporter的pid文件名称
    PID_FILE="node_exporter.pid"
    # node_exporter的日志文件名称
    LOG_FILE="node_exporter.log"
    
    function start {
        # 从根目录路径组合出完整的命令路径
        local cmd="$NODE_EXPORTER_ROOT/node_exporter"
        nohup $cmd > $LOG_FILE 2>&1 &
        echo $! > $PID_FILE
        echo "Started Node Exporter, pid: $(cat $PID_FILE)"
    }
    
    function stop {
        kill $(cat $PID_FILE)
        rm $PID_FILE
        echo "Stopped Node Exporter"
    }
    
    function status {
        if [ -f $PID_FILE ]; then
            local pid=$(cat $PID_FILE)
    
            if ps -p $pid > /dev/null; then
                echo "Node Exporter is running, pid: $pid"
                echo "Start time: $(ps -p $pid -o lstart=)"
                echo "Running time: $(ps -p $pid -o etime=)"
                echo "Started by user: $(ps -p $pid -o user=)"
            else
                echo "Node Exporter is not running"
            fi
        else
            echo "Node Exporter is not running"
        fi
    }
    
    case $1 in
        "start")
            start
            ;;
        "stop")
            stop
            ;;
        "status")
            status
            ;;
        *)
            echo "Usage: $0 {start|stop|status}"
            ;;
    esac" > manage_script.sh
    chomd +x manage_script.sh
    
  4. 使用manage_script.sh脚本启动node_exporter

    /home/lbs/software/exporter/node_exporter/manage_script.sh start
    
  5. 使用manage_script.sh查看node_exporter状态

    /home/lbs/software/exporter/node_exporter/manage_script.sh status
    

配置promethues

  1. 编辑prometheus.yml配置文件,在文件的内容的最后新增如下内容:

    注意缩进格式,并替换IP为自己主机的IP

      - job_name: "node"
        static_configs:
          - targets: ["10.0.0.87:9100"]
    
  2. 重启promethues使其新增配置生效

    也有热加载配置文件的方式,需要的百度即可

  3. 登录grafana页面,新增node_exporter面板

    面版ID号为: 1860

    image.png

    image.png

    image.png

    image.png

总结

通过本文的介绍,我们了解了如何在 CentOS 环境中安装和配置 node_exporter,以及如何将其与 Prometheus 和 Grafana 结合使用。通过这些步骤,我们可以轻松地将系统的监控工作自动化,更加直观地通过 Grafana 面板来观察系统的健康状况和性能指标。

如今,随着云计算和微服务架构的流行,系统监控变得更加重要。一个可靠的监控系统能够帮助我们在问题发生之前就进行预警,从而减少系统的停机时间,提高用户满意度。希望你能将本文的内容应用到实际的工作中,构建出强大的监控系统以支撑你的业务运行。

感谢你的阅读,如果你有任何问题或建议,欢迎在评论区留言讨论。