zoukankan      html  css  js  c++  java
  • Grafana+Prometheus通过node_exporter监控Linux服务器信息



    相关原文地址:
    阿里云:小柒2012:Grafana+Prometheus打造全方位立体监控系统
    简书:虫儿飞ZLEI:Prometheus+node_exporter+grafana打造spring boot项目的监控系统
    CSDN:宫凯宁:【Prometheus】node_exporter的常用配置项详解
    简书:ihujian:docker 安装配置Prometheus+node_exporter+cadvisor



    一、Grafana+Prometheus通过node_exporter监控Linux服务器信息

    Grafana和Prometheus的安装不再赘述,可参考网上教程或本专栏内的其他文章。
    直接讲解node_exporter部分。

    1.1node_exporter下载

    进入官网node_exporter
    https://prometheus.io/download/#node_exporter
    进行下载。

    1.2解压

    tar -zxvf ...node_exporter.tar.gz
    

    1.3启动

    解压后,进入到解压目录,启动node_exporter:

    ./node_exporter
    #这种方式启动会将此进程启动到前台,当把当前的命令行关闭,这个进程也会跟着关闭,可以把进程启动到后台运行:
    nohup ./node_exporter
    
    nohup ./node_exporter> nodeout.file 2>&1 &
    #终端输出存会放在当前目录下的nodeout.file文件中
    

    1.4node_exporter的常用配置项详解

    通常,我们使用./node_exporter来启动node_exporter。但是node_exporter其实存在很多内置参数,下面是常用的参数详解。

    1.4.1node_exporte基本信息配置

    --web.listen-address=":9100"  
    #node_exporter监听的端口,默认是9100,若需要修改则通过此参数。
    
    --web.telemetry-path="/metrics"  
    #获取metric信息的url,默认是/metrics,若需要修改则通过此参数
    
    --log.level="info" 
    #设置日志级别
    
    --log.format="logger:stderr"  
    #设置打印日志的格式,若有自动化日志提取工具可以使用这个参数规范日志打印的格式
    

    修改node_exporter启动端口:

    nohup ./node_exporter> nodeout.file 2>&1 --web.listen-address=":9101" &  
    

    1.4.2通过正则表达式来屏蔽或选择某些监控项

    --collector.diskstats.ignored-devices="^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\d+n\d+p)\d+$"
    #通过正则表达式忽略某些磁盘的信息收集
    
    --collector.filesystem.ignored-mount-points="^/(dev|proc|sys|var/lib/docker/.+)($|/)"  
    #通过正则表达式忽略某些文件系统挂载点的信息收集
    
    --collector.filesystem.ignored-fs-types="^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$"  
    #通过正则表达式忽略某些文件系统类型的信息收集
    
    --collector.netclass.ignored-devices="^$"  
    #通过正则表达式忽略某些网络类的信息收集
    
    --collector.netdev.ignored-devices="^$"  
    #通过正则表达式忽略某些网络设备的信息收集
    
      --collector.netstat.fields="^$"
     #通过正则表达式配置需要获取的网络状态信息
     
    --collector.vmstat.fields="^(oom_kill|pgpg|pswp|pg.*fault).*" 
    #通过正则表达式配置vmstat返回信息中需要收集的选项
    
    

    1.5将node_exporter配置到Prometheus中

    修改Prometheus的配置文件:

    vi /prometheus/prometheus.yml
    

    增加一个job,target是node_exporter的9100的地址:
    在这里插入图片描述
    注意是增加一个job,不是覆盖,之前Prometheus的job不动

    重新启动Prometheus。

    1.6 Docker方式启动node_exporter

    创建一个docker 网络,然后将prometheus和node_exporter 加入到这个网络中

    docker network create -d bridge my-net
    
    docker run -d -p 9090:9090 --name prometheus --network my-net -v ~/prom/prometheus.yml:/etc/prometheus/prometheus.yml quay.io/prometheus/prometheus
    

    当设置了–net=host时,如果在加-p或者-P,则不会管用。

    docker run -d --net="host" --pid="host" --name=node-exporter -v "/:/host:ro,rslave" quay.io/prometheus/node-exporter --path.rootfs /host
    

    修改Prometheus.yml。

    global:
      scrape_interval:     15s # By default, scrape targets every 15 seconds.
      evaluation_interval: 15s # By default, scrape targets every 15 seconds.
    
    rule_files:
      - "rules/rule.yml"
    
    scrape_configs:
      - job_name: 'prometheus'
        scrape_interval: 5s
        static_configs:
          - targets: ['127.0.0.1:9090']
      - job_name: 'node'
        scrape_interval: 8s
        static_configs:
          - targets: ['127.0.0.1:9100']
    

    job_name为node 服务发现的targets应该是机器的外部ip + hostPort

    二、Prometheus+node_exporter+grafana打造spring boot项目的监控系统

    Prometheus,Grafana安装不再追诉,参照网上教程或本专栏内相关博文,node_exporter参照Title 一。

    2.1集成Prometheus到spring boot项目,并利用Prometheus的查询页面查询spring boot项目的监控数据

    添加Maven

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus</artifactId>
            </dependency>
    

    添加配置

    management:
      endpoints:
        web:
          exposure:
            include:  '*'
      metrics:
        tags:
          application: ${spring.application.name}
    

    在spring boot启动类下添加一个bean

    public class BaseMainApp {
        public static void main(String[] args) {
            SpringApplication.run(BaseMainApp.class, args);
        }
    
        //看这里
        @Bean
        MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
            return (registry) -> registry.config().commonTags("application", applicationName);
        }
    }
    

    配置Prometheus的yml配置文件,添加job

    在这里插入图片描述

    然后重新启动Prometheus。

    拦截器的坑

    如果你的spring boot设置了拦截器对访问的url进行拦截的话,一定要记得将下面这个地址开放出来,不然虽然采集到了数据,但是这些数据无法访问的话,Prometheus的查询就查询不到。

    在这里插入图片描述

    配置Grafana

    Grafana配置同node_exporter。
    import dashboard id 4701。

    关于dashboard

    dashboard的网址https://grafana.com/dashboards

    三、搭建相关教程博文

    阿里云:小柒2012:Grafana+Prometheus打造全方位立体监控系统

    简书:虫儿飞ZLEI:Prometheus+node_exporter+grafana打造spring boot项目的监控系统

  • 相关阅读:
    打印机连接向导
    字符串替换
    登入脚本统一公司桌面
    判断文件是否存在
    DOS系统变量
    修改文件访问权限
    【CF1017C】The Phone Number(构造)
    【CF1017B】The Bits(模拟)
    【CF1017A】The Rank(签到)
    【CF1016B】Segment Occurrences(模拟)
  • 原文地址:https://www.cnblogs.com/aixing/p/13327262.html
Copyright © 2011-2022 走看看