Prometheus监控实战应用
1.Prometheus的主要特征及概述
概述:
Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。
时间序列数据特点:
1.性能好
2.存储成本低,高效的压缩算法,节省存储空间,有效降低IO。
Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了200多G(来自官方数据)
特征:
1.多维度数据模型
2.灵活的查询语言
3.不依赖分布式存储,单个服务器节点是自主的
4.以HTTP方式,通过pull模型拉去时间序列数据
5.也可以通过中间网关支持push模型
6.通过服务发现或者静态配置,来发现目标服务对象
7.支持多种多样的图表和界面展示
2.普罗米修斯原理架构图

3.下载安装启动Prometheus
官网下载地址:https://prometheus.io/download/
//下载
wgt https://github.com/prometheus/prometheus/releases/download/v2.35.0/prometheus-2.35.0.linux-amd64.tar.gz
//解压
tar -xf prometheus-2.35.0.linux-amd64.tar.gz -C /usr/local
//改名
mv prometheus-2.35.0.linux-amd64 prometheus
//默认启动
nohup ./prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
//端口检查
lsof -i:9090
ss -naltp |grep 9090
//浏览器访问192.168.0.215:9090
4.web客户端操作
//浏览器访问192.168.0.215:9090
默认监控本机

5.默认图像

6.目录解释

console_libraries目录:
consoles目录:
LICENSE问价:
NOTICE文件:
prometheus文件:默认启动的可执行文件
prometheus.yml配置文件:默认配置文件
promtool文件:
7.配置文件
vi prometheus.yml
global:
scrape_interval: 60s # 拉取时间间隔
evaluation_interval: 60s # 告警时间间隔
- job_name: "prometheus" #监控名称取名字
static_configs:
- targets: ["localhost:9090"] #被监控机器的ip和端口
8.监控指标
指标配置下载:https://prometheus.io/download/
8.1.监控其他机器node_exporter
在其他机器安装node_exporter,端口9100

第一步:下载安装node_exporter
//下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
//解压
tar -xf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local/
//改名
mv node_exporter-1.3.1.linux-amd64 node_exporter
//启动
nohup /usr/local/node_exporter/node_exporter &
//浏览器输入,监控数据,端口9100
http://192.168.0.216:9100/metrics
第二步:配置到prometheus
vi /usr/local/prometheus/prometheus.yml
- job_name: "node"
static_configs:
- targets: ["192.168.0.216:9100"]
labels:
instance: 192.168.0.216
group: node
- targets: ["192.168.0.247:9100"]
labels:
instance: 192.168.0.247
group: node
- targets: ["192.168.0.235:9100"]
labels:
instance: 192.168.0.235
group: node
- targets: ["192.168.0.236:9100"]
labels:
instance: 192.168.0.236
group: node
//重启prometheus
lsof -i:9090
kill -9 xxxx
nohup ./prometheus &
查看:

8.2监控mysql指标mysqld_exporter

第一步:下载安装mysqld_exporter
端口:9104
//下载
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
//解压
tar -xf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local/
//改名
mv mysqld_exporter-0.14.0.linux-amd64 mysqld_exporter
//创建mysqld_exporter需要使用mysql的用户名和密码,文件需要手动创建
vi /usr/local/mysqld_exporter/my.cnf
[client]
host=192.168.0.215
user=root
password=123456
port=3306
//启动mysqld_exporter
nohup ./mysqld_exporter --config.my-cnf=./my.cnf &
//检查端口
lsof -i:9104
第二步:配置到prometheus
vi /usr/local/prometheus/prometheus.yml
- job_name: "sg-215-mysql"
static_configs:
- targets: ["192.168.0.215:9104"]
//重启prometheus
lsof -i:9090
kill -9 xxxx
nohup ./prometheus &
查看:

8.3监控postgres指标postgres_exporter
第一步:下载安装postgres_exporter
//下载
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.10.1/postgres_exporter-0.10.1.linux-386.tar.gz
//解压
tar -xf postgres_exporter-0.10.1.linux-386.tar.gz -C /usr/local/
//改名
mv postgres_exporter-0.10.1.linux-386 postgres_exporter
//添加环境变量
export DATA_SOURCE_NAME="postgresql://postgres:iLoveShark@192.168.0.247:32432/postgres?sslmode=disable"
//启动
nohup ./postgres_exporter &
//浏览器输入:http://192.168.0.215:9187/metrics
第二步:配置到prometheus
- job_name: "postgreSql"
static_configs:
- targets: ["192.168.0.215:9187"]
labels:
instance: 192.168.0.247:32432
group: postgreSql
- targets: ["192.168.0.216:9187"]
labels:
instance: hk-center.pg.rds.aliyuncs.com:5432
group: postgreSql
8.4监控redis指标redis_exporter
第一步:下载安装redis_exporter
//下载
wget https://github.com/oliver006/redis_exporter/releases/download/v1.37.0/redis_exporter-v1.37.0.linux-386.tar.gz
//解压
tar -xf redis_exporter-v1.37.0.linux-386.tar.gz -C /usr/local/
//改名
mv redis_exporter-v1.37.0.linux-386 redis_exporter
//启动
./redis_exporter -help //查看参数
nohup ./redis_exporter -redis.addr 192.168.0.247:30279 & //无密码
nohup ./redis_exporter -redis.addr 192.168.0.247:30279 -redis.password 123456 & //有密码
//浏览器输入:http://192.168.0.215:9121/metrics
第二步:配置到prometheus
- job_name: "redis"
static_configs:
- targets: ["192.168.0.215:9121"]
labels:
instance: 192.168.0.247:30279
group: redis
9.监控站点
9.1blackbox_exporter应用场景
HTTP 测试: 定义 Request Header 信息、判断 Http status / Http Respones Header / Http Body 内容
TCP 测试: 业务组件端口状态监听、应用层协议定义与监听
ICMP 测试: 主机探活机制
POST 测试: 接口联通性
SSL证书过期时间
9.2下载安装blackbox_exporter
https://prometheus.io/download/

//下载
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.20.0/blackbox_exporter-0.20.0.linux-amd64.tar.gz
//解压
tar -xf blackbox_exporter-0.20.0.linux-amd64.tar.gz -C /usr/local/
//改名
mv blackbox_exporter-0.20.0.linux-amd64 blackbox_exporter
//启动
nohup ./blackbox_exporter &
//浏览器输入http://192.168.0.215:9115/
9.3网站监控-prometheus配置
vi /usr/local/prometheus/prometheus.yml
//重启prometheus
lsof -i:9090
kill -9 xxxx
nohup ./prometheus &
网站监控:
- job_name: 'http_status'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets: ['https://admin.d.blueshark.com']
labels:
instance: admin.d.blueshark.com
group: web
- targets: ['https://admin.k.blueshark.com']
labels:
instance: admin.k.blueshark.com
group: web
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: 192.168.0.215:9115
9.4ping检测-prometheus配置
ping检测:
- job_name: 'ping_status'
metrics_path: /probe
params:
module: [icmp]
static_configs:
- targets: ['192.168.0.249']
labels:
instance: 'ping_status'
group: 'icmp'
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: 192.168.0.215:9115
9.5端口检测--prometheus配置
端口检测:
- job_name: 'port_status'
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets: ['192.168.0.215:80', '192.168.0.216:80', '192.168.0.217:80']
labels:
instance: 'port_status'
group: 'port'
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: 192.168.0.215:9115
Prometheus监控实战应用的更多相关文章
- Prometheus监控实战day1-监控简介
福利 Prometheus监控实战PDF电子书下载 链接:https://pan.baidu.com/s/1QH4Kvha5g70OhYQdp4YsfQ 提取码:oou5 若你喜欢该资料,请购买该资料 ...
- prometheus监控实战--基础
1.简介 prometheus就是监控系统+TSDB(时间序列数据库),通过pull方式从exporter获取时间序列数据,存入本地TSDB,被监控端需安装exporter作为http端点暴露指标数据 ...
- Prometheus监控实战day2——监控主机和容器
Prometheus使用exporter工具来暴露主机和应用程序上的指标,目前有很多exporter可供利用.对于收集各种主机指标数据(包括CPU.内存和磁盘),我们使用Node Exporter即可 ...
- prometheus监控实战
第一节.环境和软件版本 1.1.操作系统环境 主机ip 操作系统 部署软件 备注 192.168.10.10 Centos7.9 Grafana.Pushgateway.Blackbox Export ...
- 监控实战Prometheus+Grafana
这期的分享是监控实战,其实不想写这篇的,因为网上相关的文章也挺多的,但是出于光说不练都是假把式,而且也想告诉你:当帅气的普罗米修斯(Prometheus)遇到高颜值的格拉法纳(Grafana)究竟会擦 ...
- K8S(13)监控实战-部署prometheus
k8s监控实战-部署prometheus 目录 k8s监控实战-部署prometheus 1 prometheus前言相关 1.1 Prometheus的特点 1.2 基本原理 1.2.1 原理说明 ...
- prometheus和granfana企业级监控实战v5
文件地址:https://files.cnblogs.com/files/sanduzxcvbnm/prometheus和granfana企业级监控实战v5.pdf
- Docker 监控实战
如今,越来越多的公司开始使用 Docker 了,现在来给大家看几组数据: 2 / 3 的公司在尝试了 Docker 后最终使用了它 也就是说 Docker 的转化率达到了 67%,而转化市场也控制在 ...
- Prometheus监控学习笔记之教程推荐
最近学习K8S和基于容器的监控,发现了如下的教程质量不错,记录下来以备参考 1. K8S最佳实战(包括了K8S的Prometheus监控和EFK日志搜集) https://jimmysong.io/k ...
随机推荐
- 模糊查询like语句该怎么写?
第1种:在Java代码中添加sql通配符. string wildcardname = "%smi%"; list<name> names = mapper.selec ...
- 如何将 memcached 中 item 批量导入导出?
您不应该这样做!Memcached 是一个非阻塞的服务器.任何可能导致 memcached 暂停或瞬时拒绝服务的操作都应该值得深思熟虑.向 memcached 中批量导入数据往往不是您真正想要的!想象 ...
- Hashmap如何同步?
当我们需要一个同步的HashMap时,有两种选择: ●使用Collections.synchronizedMap(..)来同步HashMap. ●使用ConcurrentHashMap的 这两个选项之 ...
- jsp技术之隐藏域
隐藏域 hidden:隐藏域属性,不显示到页面上,但是会提交的表单项 注意:表单中增加了一个隐藏域,是用户的id.稍后修改联系人信息,提交表单时需要使用到 <!-- hidden:隐藏域,不显示 ...
- 遇到的问题之“解决tomcat中文乱码问题”
方案1:在server.xml中添加了 URIEncoding="UTF-8" 属性 路径:C:\stop\apache-tomcat-8.5.69\conf 修改内容 如若方案1 ...
- PID参数整定
PID参数整定方法很多,常见的工程整定方法有临界比例度法.衰减曲线法和经验法.云南昌晖仪表制造有限公司以图文形式介绍以临界比例度法和衰减曲线法整定调节器PID参数方法.临界比例度法一个调节系统,在阶跃 ...
- C# Coding Conventions, Coding Standards & Best Practices
C# Coding Conventions, Coding Standards & Best Practices Cui, Chikun Overview Introduction This ...
- css3 弹性布局和多列布局
弹性盒子基础 弹性盒子(Flexible Box)是css3中盒子模型的弹性布局,在传统的布局方式上增加了很多灵活性. 定义一个弹性盒子 在父盒子上定义display属性: #box{ display ...
- JS:数组中push对象,覆盖问题
发现将对象push进数组,后面的值会覆盖前面的值,最后输出的都是最后一次的值.其实这一切都是引用数据类型惹的祸.如果你也有类似问题,可以继续看下去哦.下面代码模拟:将json对象的每个键值对,单独搞成 ...
- H5扇形
使用H5 canvas绘制的可交互扇形 requestAnimationFrame() 现有动画实现方式的不足 setTimeout和setInterval都不十分精确.为它们传入的第二个参数,实际上 ...