zoukankan      html  css  js  c++  java
  • prometheus监控

    介绍

      Prometheus是一个开源监控系统,它前身是SoundCloud的警告工具包。从2012年开始,许多公司和组织开始使用Prometheus。该项目的开发人员和用户社区非常活跃,越来越多的开发人员和用户参与到该项目中。目前它是一个独立的开源项目,且不依赖与任何公司。为了强调这点和明确该项目治理结构,Prometheus在2016年继Kurberntes之后,加入了Cloud Native Computing Foundation。

    安装步骤

    • 安装prometheus,监控服务
    • 安装node-exporter,节点数据收集服务
    • 安装alertmanager,报警服务
    • 安装grafana,图形化展示服务

    一、安装prometheus

    # 下载
    wget https://github.com/prometheus/prometheus/releases/download/v2.12.0/prometheus-2.12.0.linux-amd64.tar.gz
    tar xf prometheus-2.12.0.linux-amd64.tar.gz
    cd prometheus-2.12.0.linux-amd64
    # 根据下面yml配置文件配置需要信息
    vim prometheus.yml
    # 启动
    ./prometheus 
    # 访问prometheus
    http://192.168.1.24:9090

    配置修改:prometheus.yml

    global:
      # 每隔15秒向pushgateway采集一次指标数据
      scrape_interval:    15s 
      # 每隔15秒根据所配置的规则集,进行规则计算
      evaluation_interval: 15s 
    
    alerting:
      alertmanagers:
      - static_configs:
      # 设置altermanager的地址,altermanager报警规则服务
        - targets: ['192.168.1.24:9093']
    
      # 指定所配置报价模板文件,下面给出模板配置
    rule_files:
      - "rules.yml"
    
    scrape_configs:
      # 用于获取被控主机数据,可以添加多条
      - job_name: '测试-25'
        static_configs:
        - targets: ['192.168.1.25:9100']

    使用systemctl管理

    vi  /etc/systemd/system/prometheus.service
    [Unit]
    Description=Prometheus Monitoring System
    Documentation=Prometheus Monitoring System
     
    [Service]
    ExecStart=/usr/local/prometheus/prometheus 
      --config.file=/usr/local/prometheus/prometheus.yml 
      --web.listen-address=:9090
     
    [Install]
    WantedBy=multi-user.target

    二、监控机安装node-exporter

    # 下载
    wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
    tar xf node_exporter-0.18.1.linux-amd64.tar.gz
    cd node_exporter-0.18.1.linux-amd64
    # 启动
    ./node_exporter
    # 访问
    http://192.168.1.24:9100

    使用systemctl管理

    --collector.systemd 开启system 服务的监控

    vi  /etc/systemd/system/node_exporter.service
    [Unit]
    Description=node_exporter service
    
    [Service]
    ExecStart=/usr/local/node_exporter/node_exporter 
        --collector.systemd 
        --collector.systemd.unit-whitelist=(chronyd|sshd|nginx).service
    
    TimeoutStopSec=10
    Restart=on-failure
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target

    常用查询

    • cpu使用总量
    node_cpu_seconds_total
    • mode标签值为idle的为空闲
    node_cpu_seconds_total{mode='idle'}
    • 获取5分钟内的CPU平均空闲情况
    avg(irate(node_cpu_seconds_total{mode='idle'}[5m])) by (instance)
    • 获取CPU5分钟内使用率
    100 - (avg(irate(node_cpu_seconds_total{mode='idle'}[5m])) by (instance) *100)
    • 获取空闲内存
    (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes)
    • 获取空闲内存率
    (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100
    • 获取内存使用率
    100 - ((node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100)
    • 剩余磁盘空间
    node_filesystem_free_bytes
    • 磁盘空间总大小
    node_filesystem_size_bytes
    • 获取磁盘空闲率
    node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100
    • 获取磁盘使用率
    100 - (node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100)
    • 配置node_exporter启动参数
    --collector.systemd --collector.systemd.unit-whitelist=(chronyd|sshd|nginx).service
    • 查询nginx状态
    node_systemd_unit_state{name="nginx.service", state="active"}

    说明:

    存活状态
    node_systemd_unit_state使用这个监控项查看,里面也有很多标签,
    name=“docker.service”,标签name表示服务的名称,
    state=“active”,state表示服务的状态,active表示活动的,对应的监控值也是1,如果为1则表示正常,不为1表示异常


    作者:Outsrkem
    出处:https://www.cnblogs.com/outsrkem/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    apache+mysql+php+phpmyadmin搭建
    Redis学习笔记(1)Redis安装和启动
    Zlib 引用中出现的问题
    约数
    AC自动机
    当我们说“一切皆对象”时,我们到底在说什么
    Google翻译,3个步骤灭绝人类
    Linux下Gcc生成和使用静态库和动态库详解(转)
    Java基础&笔试题
    SQL基础&笔试题
  • 原文地址:https://www.cnblogs.com/outsrkem/p/14402492.html
Copyright © 2011-2022 走看看