介绍
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表示异常
Original: https://www.cnblogs.com/outsrkem/p/14402492.html
Author: Outsrkem
Title: prometheus监控
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578475/
转载文章受原作者版权保护。转载请注明原作者出处!