Prometheus告警延迟的理解
0. 概述在日常的工作中,我经常被问到的一个问题是我的系统指标明明已经达到报警条件了,为什么没有触发报警?还有,为什么这个报警的触发时间会比系统的真实状态差这么多?本文就来探讨一下这个问题。
1. 数据采集,计算和报警当你看这篇文章的时候,我想你应该是知道 Prometheus 使用的是 Go 程序语言,不知道也没关系。如果你知道的话,那么我先告诉你,在 Prometheus 内部,例如各种数据的采集和判断一些监控数据是否符合你设置的报警规则,以及将这些产生出来的报警发送出去的功能都是通过不同的 goroutine 来完成的;如果你不知道 Go 语言,那么可以理解为是通过类似于其他语言中多线程(协程)的形式实现的。
为什么要说这个?因为这在很多时候都是造成延迟的关键所在,在定位问题的时候你需要时刻记住这个机制,这样才能发现真正的问题所在。
在 Prometheus 内部,数据的采集都是通过按照固定的周期:scrape_interval 进行的,这个周期在全局默认是 1m(一分钟),如果你针对特定的 exporter(一个应用用于暴露指标的 endpoint)没有特别指定采集周期,那么就 ...
企业内部Openvpn部署
Openvpn部署文档使用脚本安装openvpn
12345678910111213141516171819202122232425262728$ curl https://www.putianhui.cn/package/script/install_openvpn.shWelcome to this OpenVPN road warrior installer!This server is behind NAT. What is the public IPv4 address or hostname?Public IPv4 address / hostname [47.97.49.22]: # 你的公网ipWhich protocol should OpenVPN use? 1) UDP (recommended) 2) TCPProtocol [1]: 2 # 使用tcp协议What port should OpenVPN listen to?Port [1194]: 11940 # openvpn使用的端口号Select a DNS server for the cl ...
部署bind9内部dns主从及bindpod管理平台
一、安装bind主从1.0 环境介绍
HostName
IP ADDR
部署服务
dns-master
192.168.99.253
Bind9-master、mysql、bindpod
dns-slave
192.168.99.254
Bind9-slave
1.1 配置dns-master服务器设置主机名
12345$ cat > /etc/hostname <<EOFdns-masterEOF$ hostnamectl set-hostname dns-master && bash
安装bind9服务
1yum install -y bind*
获取rndc的key
123456789101112131415$ rndc-confgen # 获取第一个key配置# Start of rndc.conf# 将下面key配置文件复制到/etc/named.confkey "rndc-key" { algorithm hmac-md5; secret "d+tLRbCXGROJbK/ ...
Docker部署分布式MinIO存储集群
Docker部署分布式MinIO存储集群准备3个节点,每个节点创建4个挂载点,由于集群模式下不能使用根磁盘,这里使用docker卷作为挂载点。3节点的集群,故障一个节点时不影响对集群的读写操作。
开始安装所有节点安装docker和docker-compose
1curl https://www.putianhui.cn/package/script/install_docker.sh
创建docker-compose和data挂载目录
1mkdir -p /data/minio/{minio-dockerfile,data01,data02,data03,data04}
所有节点配置主机名解析
12345cat >> /etc/hosts << EOF192.168.99.8 minio-1192.168.99.9 minio-2192.168.99.10 minio-3EOF
配置时间同步,关闭防火墙和selinux。
1ntpdate ntp1.aliyun.com
部署minio集群,3个节点每个节点挂载4个目录
minio-1 ...
Docker部署nexus3
一、安装docker-ce下载docker-ce镜像源并安装
123$ cd /etc/yum.repos.d/ && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ yum install -y docker-ce-18.09.9 && systemctl enable docker && systemctl start docker
配置镜像加速器
12345678910$ cat > /etc/docker/daemon.json << EOF{ "registry-mirrors": ["https://ub816mdv.mirror.aliyuncs.com"], "log-driver": "json-file", "log-opts": { "max-siz ...
电脑端下载Google Play中的软件
电脑端下载Google Play中的软件。
正常情况下电脑打开Google Play搜索到想要下载的软件后,无法在pc本地下载,需要你关联设备才行。
下面介绍一种第三方工具下载的方法。
首先打开Google Play搜索到你想要下载的app,并复制App Store的链接。
复制app的链接后打开https://apps.evozi.com/apk-downloader/将链接复制进去,并点击Generate Downlaod Link生成下载链接
mac使用console线配置华为交换机及web管理
一、mac使用console连接交换机首先使用console线将mac(需要type-c转usb头)和华为交换机的console口连接。
mac上查看是否安装成功com口的驱动程序。
123# 这个tty.usbserial-A9KXFHCD就是我们com口的设备$ ls /dev/* |grep usb/dev/tty.usbserial-A9KXFHCD
安装minicom来通过com连接到交换机
1$ brew install minicom
配置minicom
12345678910111213# 进入到配置$ minicom -s +-----[configuration]------+ | Filenames and paths | | File transfer protocols | | Serial port setup | # 选择此项回车 | Modem and dialing | | ...
Crawlab分布式爬虫部署
一、环境介绍
名称
IP地址
角色
部署方式
crawlab-master
192.168.99.52
master节点
Docker-compose、目录:/data/crawlab、/data/mongo、/data/redis
crawlab-work01
192.168.99.53
work节点
Docker-compose、目录:/data/crawlab
crawlab-work02
192.168.99.54
work节点
Docker-compose、目录:/data/crawlab
二、开始部署Crawlab2.0 安装docker及docker-compose1$ curl https://www.putianhui.cn/package/script/install_docker.sh | bash
2.1 初始化各主机环境设置各角色主机名
12345678910111213141516171819# master节点配置主机名cat ...
docker部署Neo4j及数据迁移
neo4j部署创建neo4j数据挂载目录
12345# 创建neo4j用户$ useradd neo4j# 创建neo4j使用的数据及log目录$ mkdir /data/neo4j/{data,logs,import,plugins,conf} -p
创建neo4j配置文件
1234567891011121314151617181920212223242526272829303132# 创建neo4j配置文件cat > /data/neo4j/conf/neo4j.conf <<EOFdbms.directories.import=importdbms.connector.bolt.enabled=truedbms.connector.http.enabled=truedbms.connector.https.enabled=truedbms.jvm.additional=-XX:+UseG1GCdbms.jvm.additional=-XX:-OmitStackTraceInFastThrowdbms.jvm.additional=-XX ...
nginx代理路径匹配规则配置
在配置nginx路径代理时,经常会出现一些配置问题,建议收藏!!!
1234567server{ listen 80; server_name 192.168.0.100; location /api { proxy_pass http://192.168.0.100:8080; }
请求url:http://192.168.0.100:80/api/login
代理路径:http://192.168.0.100:8080/api/login
12345678server{ listen 80; server_name 192.168.0.100; location /api { proxy_pass http://192.168.0.100:8080/; }}
请求url:http://192.168.0.100:80/api/login
代理路径:http://192.168.0.1 ...