Prometheus+Node_exporter+Grafana实现监控主机

news/2024/5/18 21:51:25 标签: prometheus, grafana
Prometheus+Node_exporter+Grafana实现监控主机

如果没有安装相关的配置,首先要进行安装配置,环境是基于Linux,虚拟机的相关环境配置在文末给出,现在先讲解Prometheus+Node_exporter+Grafana的安装和使用。

一.Prometheus安装

虽然虚拟机可以本地安装Prometheus,但是下载的速度可能缓慢,而且后续寻找配置相对麻烦,在配置文件的过程中也不便于操作,因此在本文中我都采用的安装包配置相应环境。另一方面,便于对虚拟机指令的操作和文件传输,我使用远程控制的方式进行操作。

1.FinalShell远程控制连接
  • 在虚拟机开启共享的服务中的远程登录

在这里插入图片描述

  • 虚拟机Ubuntu默认没有安装ssh的server,需要进行安装

    apt-get install openssh-server

  • 允许远程使用root账号ssh连接本机,修改配置vim /etc/ssh/sshd_config其中内容为

    #PermitRootLogin prohibit-password

    PermitRootLogin yes

  • 需要重启系统或者sshd服务

    sudo /etc/init.d/ssh stop
    sudo /etc/init.d/ssh start
    sudo service ssh restart

  • 系统默认开启系统sshd

    sudo systemctl enable ssh

  • 查看虚拟机IP地址后,打开FinalShell新建SS连接
    在这里插入图片描述

  • 连接成功后就可以在可以在终端操作
    在这里插入图片描述

  • 选择usr/local/为安装目录,三个安装包都在此目录下进行安装配置,同时在终端下方鼠标右键点击相应的文件就可以通过Windows实现文件传输给Linux
    在这里插入图片描述

2.配置Go环境
  • 由于Prometheus是由go语言开发的,所以在安装Prometheus之前需要先在监控主机上安装go环境。下载链接:https://pan.baidu.com/s/1gefGeXmoFmjGxSGxgCuQfw 提取码:cz6l

  • 解压安装包:

    tar -xvf go1.13.1.linux-amd64.tar.gz

  • 配置环境变量

    # vim /etc/profile
    // 在最后一行添加
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
    // wq保存退出后source一下
    # source /etc/profile
    
3.安装Prometheus

下载链接:Index of /github-release/prometheus/prometheus/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

  • 将下载后安装包上传至 /usr/local 目录中
    在这里插入图片描述

  • 解压并重新命名为prometheus

    tar -xvf prometheus-2.47.2.linux-amd64.tar.gz
    mv prometheus-2.47.2.linux-amd64/ prometheus

  • 创建services服务文件

    vim /etc/systemd/system/prometheus.service
    [Unit]
    Description=prometheus
    After=network.target
    [Service]
    Type=simple
    ExecStart=/usr/local/prometheus --config.file=/usr/local/prometheus.yml
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    
  • 启动Prometheus,将服务设置为开机自启动

    #重新加载配置文件
    systemctl daemon-reload  
    #开启服务
    systemctl start prometheus.service
    #查看状态
    systemctl status prometheus.service
    #服务开机自启动,不用每次启动
    systemctl enable prometheus.service
    
  • 状态显示正常,那么配置就没有问题,如下图所示样例
    在这里插入图片描述

  • 在虚拟机浏览器访问http:127.0.0.1:9090访问查看
    在这里插入图片描述

二、安装Node_exporter

下载地址:Index of nodejs-local (huaweicloud.com)

  • 下载后将文件上传到/usr/local目录下
    在这里插入图片描述

  • 解压安装包:

    tar -xvf node_exporter-0.17.0.linux-amd64.tar.gz

  • 配置环境变量

    vim /etc/systemd/system/node_exporter.service
    
    [Unit]
    Description=node_exporter Monitoring System
    Documentation=node_exporter Monitoring System
     
    [Service]
    ExecStart=/usr/local/node_exporter --web.listen-address=:9100
     
    [Install]
    WantedBy=multi-user.target
    
  • 设置开机自启动

    #设置开机自启
    systemctl daemon-reload
    systemctl start node_exporter.service
    systemctl status node_exporter.service
    systemctl enable node_exporter.service
    
  • 状态显示正常活动,可以通过虚拟机浏览器访问
    在这里插入图片描述
    在这里插入图片描述

三、安装Grafana可视化面板

下载地址:Index of /grafana/apt/dists/beta/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

  • 下载后将文件上传到/usr/local目录下

在这里插入图片描述

  • 解压并重命名

    tar -xvf grafana-enterprise-10.0.2.linux-amd64.tar.gz

    mv grafana-enterprise-10.0.2.linux-amd64.tar.gz grafana

  • 配置环境变量实现开机自启动vim /usr/lib/systemd/system/grafana.service

    [Unit]
    Description=Grafana
    After=network.target
    [Service]
    Type=notify
    ExecStart=/data/grafana/bin/grafana-server -homepath /data/grafana
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    
    
  • 配置相关指令

    #重新加载服务配置文件
    systemctl daemon-reload
    #启动 grafana
    systemctl start grafana.service
    #查看 grafana状态
    systemctl status grafana.service
    #设置开机自启
    systemctl enable grafana.service
    #重启 grafana
    systemctl restart grafana.service
    #停止 grafana
    systemctl stop grafana.service
    
  • 访问Grafana,访问地址为http:127.0.0.1:3000,初始账号密码为admin和admin(j记得修改)
    在这里插入图片描述

四、监控多台Linux服务器
  • 首先被监控的主机要安装node_exporter提供数据接口,配置的过程和主机配置Node_exporter一样,可参考上文。

  • 配置prometheus server端可以拉取node信息

    vim /usr/local/prometheus/prometheus.yml

  • 在文件最后添加内容

      - job_name: 'linux'
        static_configs:
          - targets: ['192.168.45.143:9100','192.168.45.22:9100']
    
  • 添加完成后重新启动prometheus

    systemctl restart prometheus.service

  • 此时如果相应的端口没开放还是看不到数据的,添加的主机都需要开放相应的9100端口,Prometheus才能拉取到数据。

    firewall-cmd --zone=public --add-port=9100/tcp --permanent

开放指定端口
      firewall-cmd --zone=public --add-port=1935/tcp --permanent
 命令含义:
--zone #作用域
--add-port=1935/tcp  #添加端口,格式为:端口/通讯协议
--permanent  #永久生效,没有此参数重启后失效
  • 获取到主机数据

在这里插入图片描述

五、Grafana添加数据源展示
  • 选择数据源并配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 可视化模版并导入
    在这里插入图片描述

  • 最后监控数据可以显示了
    在这里插入图片描述
    今天就记录这些了,希望有所帮助!
    在这里插入图片描述


http://www.niftyadmin.cn/n/5143268.html

相关文章

win7系统怎么修改ip地址

在Windows 7操作系统中,修改IP地址是一项常见的网络配置任务。有时,由于网络环境的变化,我们需要修改计算机的IP地址以适应新的网络配置。下面虎观代理小二二将详细介绍如何在Win7系统中修改IP地址。 一、了解修改IP地址的必要性 在某些情况…

第十二章 ObjectScript 系统标志和限定符 (qspec) - 标志

文章目录 第十二章 ObjectScript 系统标志和限定符 (qspec) - 标志 示例取消Negation标志Flags 第十二章 ObjectScript 系统标志和限定符 (qspec) - 标志 类库中的许多方法都接受 qspec 参数,通过该参数,可以控制将外部源导入 IRIS、控制代码的编译方式以…

监听dom变化,监听dom属性变化

一、利用new MutationObserver const config {attributes: true, // 监听属性变化childList: true, // 监听子节点变subtree: true // 监听后代元素变化};jianting new MutationObserver(() > {this.changeFun()});jianting.observe(dom, config) /监听 jianting.disconne…

阿里云ECS经济型e实例ecs.e-c1m1.large性能测评

阿里云服务器ECS经济型e实例2核2G配置规格ecs.e-c1m1.large,CPU采用Intel Xeon Platinum架构处理器,e系列云服务器是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器。目前云服…

使用JPA时设置Null值:set null

方式一:使用JPA 方式二:使用EntityManager 方式三:原生SQL private Object mergeExt(Object o) {String tableName o.getClass().getSimpleName();StringBuffer sb new StringBuffer();String sqlHeader "update " tableName …

wordpress上传限制2M修改为256M的两种方式

方式一:修改php.ini 上传文件限制大小主要是php的php.ini配置决定的,所以只要找到php的配置文件,并且修改里面的配置即可,linux查看php的版本和配置文件位置的命令: php -i | grep "Configuration File" 一…

206. 反转链表、Leetcode的Python实现

博客主页:🏆看看是李XX还是李歘歘 🏆 🌺每天分享一些包括但不限于计算机基础、算法等相关的知识点🌺 💗点关注不迷路,总有一些📖知识点📖是你想要的💗 ⛽️今…

【案例】3D地球

效果图&#xff1a; 直接放源码 <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta name"viewport" content"initial-scale1.0, user-scalableno" …