prometheus入门(一)
时间:2022-07-25
本文章向大家介绍prometheus入门(一),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
prometheus入门(一)
大纲
- 基础架构介绍
- 官方站点以及后期用到的软件包介绍
- prometheus以及各类exporter的使用
- 告警配置
- 高可用架构
- docker&k8s监控
基础架构介绍
官方站点: https://prometheus.io 官方架构图:
大体组成部分以及流程介绍
- 数据采集: 主要是由各类的exporter采集上报,如图中的1所表示的地方
- 数据处理: server端,图中2所在的位置,主要的功能是定期抓取上面数据采集的数据,然后将数据落盘和根据告警条件向alertmanager发送告警提示;还有就是根据webUI或者grafana去展示
- 告警处理: alertmanager根据server定义的阈值和告警去通过不同的媒介(email,pagerduty)向定义的告警接收方发送告警
- 数据展示: 自身存在prometheusUI这个web界面,利用promSQL去查询和展示数据,也有对应的API,通过grafana或者其他二次开发产品将prometheus数据加以展示
官方站点以及后期用到的软件包介绍
- 各类组件包下载地址: https://prometheus.io/download/
- 相对核心的组件:
- promethues: 服务端程序 https://github.com/prometheus/prometheus
- alertmanager:定义告警媒介,告警组以及静默 https://github.com/prometheus/alertmanager
- pushgateway: 用于跨机房数据传递,相当于是一个数据代理 https://github.com/prometheus/pushgateway
- 数据采集组件
- blackbox_exporter: 采集黑盒信息,比方说http探针,icmp探测 https://github.com/prometheus/blackbox_exporter
- consul_exporter: 采集consul注册中心监控信息 https://github.com/prometheus/consul_exporter
- graphite_exporter: 采集garphite监控系统信息 https://github.com/prometheus/graphite_exporter
- haproxy_exporter: 采集haproxy监控信息 https://github.com/prometheus/haproxy_exporter
- memcached_exporter: 采集memcached监控信息 https://github.com/prometheus/memcached_exporter
- mysql_exporter: 采集mysql监控信息 https://github.com/prometheus/mysqld_exporter
- node_exporter: 采集基础监控信息 https://github.com/prometheus/node_exporter
- statsd_exporter: 采集TCP或者UDP数据,并发送给prometheus https://github.com/prometheus/statsd_exporter
prometheus以及各类exporter的使用
- 注意事项:
- 操作系统为centos7+
- 数据存储可以使用本地或者influxdb
- 数据默认的保存时间是15天
- 可以根据不同的业务场景采用不同的expoter或者其组合
- 大体部署如下:
prometheus的安装
> wget https://github.com/prometheus/prometheus/releases/download/v2.18.1/prometheus-2.18.1.linux-amd64.tar.gz
> tar xf prometheus-2.18.1.linux-amd64.tar.gz
> mv prometheus-2.18.1.linux-amd64/* /usr/local/bin/
------------写入启动文件
> cat /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/usr/local/bin/prometheus
--config.file=/etc/prometheus/prometheus.yml
--web.listen-address=:9090
[Install]
WantedBy=multi-user.target
-------准备配置文件
> cat /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
prometheus配置文件简介
- 配置问价是yaml格式的
- 字段介绍:
- global: 全局配置,配置抓取的间隔和评估时间
- remoteDB: 远端数据库存储配置,主要使用influxdb
- alertManager: 配置alertmanager告警发送
- rules: 告警阈值的定义
- scrape_configs: 定义锁抓取的exporter地址,后期加入exporter主要在这操作即可
服务配置检测与启动
> promtool check config /etc/prometheus/prometheus.yml # 检测配置文件正确性
> systemctl enable prometheus && systemctl start prometheus #服务启动与开机自启动
- 设置 IntelliJ IDEA 主题和字体的方法
- 修改 IntelliJ IDEA 模板注释中的 user 内容
- Android仿京东、天猫商品详情页
- C# checked和unchecked运算符
- 迭代子模式
- WCF系列教程之WCF中的会话
- SortedList<TKey,TValue> 和 SortedDictionary<TKey,TValue>
- Spring Boot入门
- React Native在Android平台运行gif的解决方法
- WCF系列教程之WCF客户端异常处理
- 巧用Using跳过异常捕获
- Android WindowManager详解
- C# 委托进阶
- WCF系列教程之客户端异步调用服务
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Apache NIFI 讲解(读完立即入门)
- 了解NiFi最大线程池和处理器并发任务设置
- 深入理解 Apache NIFI Connection
- 【Go语言探险】线上奇怪日志问题的排查
- 探索 Apache NIFI 集群的高可用
- 面试被问:Spring Boot中Tomcat是如何启动的?
- Spring Boot 实现定时任务的动态增删启停等管理!
- Apache NIFI ExecuteScript组件脚本使用教程
- Redis必会的性能监控指标汇总
- 带你体验Apache NIFI新建数据同步流程(NIFI入门)
- Spring JPA 存储库接口定义
- 如何给Apache开源项目贡献代码
- 深入解析Apache NIFI的调度策略
- Linux 帮助命令及工具(tldr,man,help,info)
- Json Jolt教程