prometheus 详解

prometheus

prometheus 优点

监控软件 有

软件优点缺点
nagios无历史数据
ganglia无法实现报警
openfalcol自动发现 支持用户主动push、支持每周上亿次数据采集告警判定、多维数据展示、点击支撑200万metric上报归档存储社区不完善 功能有待完善
zabbix支持多平台分布式开源监控软件、安装简单多种数据采集灵活集成、提供多找API接口 支持调用脚本、出现问题时可自动远程执行命令项目批量修改不方便、定制开发难度较大、系统级报警较多、无报表功能
prometheus定制换难度较低、监控数据基于时间序列存储数据库内便于对数据聚合、哥哥组件有成熟的高可用方案没有单点故障、适合对云环境监控对kubernetes很好的支持、支持报警收敛安装复杂 监控 告警页面分属于不同组件

prometheus 监控原理及架构

  1. 存储数据库

    • prometheus 监控使用时序数据库 TSDB。
    • 时间作为他的主轴,数据按顺序到达。
    • 大多数操作是插入新数据,偶尔伴随查询,更新数据比较少。
    • 时间序列数据累计速度非常快, 高的容纳率、更快的大规模 查询以及更好的数据压缩。
    • TSDB通常还包括一些共通的時間序列数据分析的功能和操作:数据保留策略、灵活的时间聚合等。
  2. 数据来源

    • 官方的exporter
    • 自定义的SDK接口
      解释: server 通过http的pull 方式采集监控数据,并存储在本地TSDB中
      不能通过网络互通的元数据可以通过pushgateway 组件代理 实现数据采集
  3. 查询语言 promql
    报警方式是通过promql 写规则, 与设置的阈值进行匹配,超过阈值报警,报警组件是独立的,alertmanger

  4. webUI
    server 提供了 简单的UI 也可以使用第三方插件 如grafana

  5. 原理架构图
    原理架构

安装prometheus

  1. 正常linux 系统 centos
  2. 下载二进制安装包 并解压
    官网下载地址https://prometheus.io/download/
wget https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-amd64.tar.gz
tar zxvf prometheus-2.22.0.linux-amd64.tar.gz
mkdir /data
mv prometheus-2.22.0.linux-amd64 /data/prometheus
useradd prometheus -s /sbin/nologin
chown prometheus:prometheus -R /data/prometheus
  1. 封装service
cat << EOF > /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target
[Service]
ExecStart=/data/prometheus/prometheus --config.file=/data/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus/data --web.enable-lifecycle --storage.tsdb.no-lockfile
User=prometheus
[Install]
WantedBy=multi-user.target
EOF
配置参数解释
config.file配置文件
storage.tsdb.path指定 tsdb 路径
storage.tsdb.retention.time指定数据存储时间
web.enable-lifecycle提供类似nginx reload 功能
storage.tsdb.no-lockfilek8s deployment 管理时 开启
  1. 设置开机启动
    systemctl daemon-reload
    systemctl enable prometheus
    systemctl start prometheus
  2. 验证
ss -tunlp |grep prometheus
tcp    LISTEN     0      128      :::9090                 :::*                   users:(("prometheus",pid=9703,fd=9))

此时可以访问 9090端口 访问prometheus web页面

安装grafana

  1. 下载而精致安装包并解压
wget https://dl.grafana.com/oss/release/grafana-7.3.1.linux-amd64.tar.gz
tar zxvf grafana-7.3.1.linux-amd64.tar.gz
mv grafana-7.3.1 /data/grafana
  1. 封装service
cat << EOF > /usr/lib/systemd/system/grafana-server.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
EOF
  1. 设置开机启动
    systemctl daemon-reload
    systemctl enable grafana-server
    systemctl start grafana-server
  2. 验证
ss -tunpl |grep grafana
tcp    LISTEN     0      128    [::]:3000               [::]:*                   users:(("grafana-server",pid=33629,fd=9))

安装alertmanager

  1. 下载二进制安装包 并解压
wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
tar zxf alertmanager-0.21.0.linux-amd64.tar.gz
mv alertmanager-0.21.0.linux-amd64 /data/alertmanager
  1. 封装service
cat << EOF > /etc/systemd/system/alertmanager.service
[Unit]
Description=alertmanager
Documentation=https://prometheus.io/
After=network.target

[Service]
Restart=on-failure
ExecStart=/data/alertmanager/alertmanager --config.file=/data/alertmanager/alertmanager.yml --web.listen-address=:9093
[Install]
WantedBy=multi-user.target
EOF
  1. 设置开机启动
    systemctl daemon-reload
    systemctl enable alertmanager
    systemctl start alertmanager
  2. 验证
ss -tunpl |grep alertmanager
tcp    LISTEN     0      128      :::9093                 :::*                   users:(("alertmanager",pid=10059,fd=8))

此时可以访问 9093 端口 访问alertmanager web页面
安装完毕

优点:

  • 分组 当太多的告警 到来可以分组发送
  • 抑制 如果一个报警规则出发以后后面相同的触发会被抑制
  • 高可用 可以组成alertmanager集群

数据类型

访问 本地 的 prometheus 端口 /metrics 查看 prometheus 监控项
在这里插入图片描述

Prometheus 数据格式
在这里插入图片描述
例如
< --metric-- > < --value-- >
prometheus_http_requests_total{code=“200”,handler="/alerts"} 2

一般metric 格式为 应用名称_监测对象_数值类型_单位
{} 内为标签 可以进行 识别

grafana 数据库连接Prometheus

  1. 登录grafana localhost:3000
    设置默认密码admin admin123 登录后 重新设置密码
    在这里插入图片描述

  2. 添加 prometheus 库

    1. 在这里插入图片描述
    2. 在这里插入图片描述
  3. 查看Prometheus 默认报表
    在这里插入图片描述
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值