Loading

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]
WorkingDirectory=/usr/local/prometheus 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]
WorkingDirectory=/usr/local/node_exporter 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表示异常

 

posted @ 2021-02-14 19:44  Outsrkem  阅读(377)  评论(0编辑  收藏  举报