Prometheus

kubernetes指南--弹性伸缩

微笑、不失礼 提交于 2021-01-13 14:27:09
[TOC] 转载请注明出处,文章转自 FingerLiu 0x0 pre 弹性伸缩这种功能,不是很多系统都已经实现了,我们直接用就行了吗,为什么还需要个指南呢。 因为。。。。我们先来看看都有哪些相关知识点吧。。。 弹性伸缩涉及到各种软硬件,各色调度平台,策略和系统,其本身就是一个较复杂的课题。此外,kubernetes 不单单是一个容器调度平台,而是一个活跃,庞大的生态系统。 kubernetes 弹性伸缩 这个课题涉及了诸多知识点,主要如下: - 水平(Horizontal)伸缩 - 垂直(Vertical)伸缩 - 定时(Scheduled)伸缩 - 预测(Predictive)性伸缩 - 服务画像 - node - service - CA - cloudprovider - VPA - HPA - HPA controller - metric - metric server - heapster - metric state - prometheus - CRD - custom metric api - prometheus adapter - cronhpa controller - cloud controller manager 在刚开始调研这个课题的时候,一上来看到这么多名词和术语,肯定会一脸懵逼的。终于, 在知识的海洋中遨游了好一阵后,终于了摸索出一条路

使用nginx-module-vts监控各虚拟主机的流量

旧街凉风 提交于 2021-01-13 05:53:39
###一、前言 由于所有业务只有一个公网IP入口,无法统计到每个业务的流量带宽,好在nginx上通过域名进行业务区分,可以借助nginx-module-vts模块来实现需求。 本文将主要用到以下几个模块和工具: nginx-module-vts: Nginx virtual host traffic status module,nginx的监控模块,能够提供json、html、prometheus格式的数据产出。 nginx-vts-exporter: Simple server that scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。 Prometheus: 监控nginx-vts-exporter提供的nginx数据,并存储在时序数据库中,可以使用PromQL对时序数据进行查询和聚合。 Grafana: 可视化监控数据展示工具 ###二、安装nginx-module-vts 下载并编译ngx-module-vts模块 shell> git clone git://github.com/vozlt/nginx-module-vts.git # 编译nginx时添加监控组件nginx

QPS、TPS、并发用户数、吞吐量关系

六眼飞鱼酱① 提交于 2021-01-13 00:03:31
来源:https://juejin.cn/post/6844904084504313863 QPS 「QPS」 Queries Per Second 是每秒查询率 ,是 「一台服务器」 每秒能够相应的查询次数,是对一个特定的查询服务器 「在规定时间内」 所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。 TPS 「TPS」 Transactions Per Second 也就是事务数/秒。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数, 「QPS和TPS区别」 个人理解如下: TPS即每秒处理事务数,包括 用户请求服务器 服务器自己的内部处理 服务器返回给用户 这三个过程,每秒能够完成N个这三个过程,TPS也就是N; QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。 「例子」 例如:访问一个页面会请求服务器3次,一次访问,产生一个“T”,产生3个“Q” 例如:一个大胃王一秒能吃10个包子,一个女孩子0.1秒能吃1个包子,那么他们是不是一样的呢?答案是否定的,因为这个女孩子不可能在一秒钟吃下10个包子,她可能要吃很久

监控神器:Premotheus+Grafana安装

倖福魔咒の 提交于 2021-01-12 07:54:17
一、Premotheus 介绍 Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。使用Go语言开发,是GoogleBorgMon监控系统的开源版本。它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。 特点: 多维数据模型(时序列数据由metric名和一组key/value组成) 在多维度上灵活的查询语言(PromQl) 不依赖分布式存储,单主节点工作. 通过基于HTTP的pull方式采集时序数据 可以通过pushgateway进行时序列数据推送(pushing) 可以通过服务发现或者静态配置去获取要采集的目标服务器 多种可视化图表及仪表盘支持 详细介绍见: https://prometheus.io/ 二、Premotheus 组件架构 Prometheus生态系统由多个组件组成,它们中的一些是可选的。多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署。 PrometheusServer 主要负责数据采集和存储,提供PromQL查询语言的支持。 客户端SDK 官方提供的客户端类库有go、java、scala、python、ruby,其他还有很多第三方开发的类库,支持nodejs、php、erlang等。 PushGateway 支持临时性Job主动推送指标的中间网关。 PromDash

微众银行案例|容器化实践在金融行业落地面临的问题和挑战

邮差的信 提交于 2021-01-12 07:48:00
本文整理自 微众银行容器负责人陈广镇和李焕 在 Techo 开发者大会云原生专题的分享内容——微众容器化实践。本文主要和大家介绍微众的容器化实践,具体分为三个部分: 里程碑、实践之路,以及未来的规划 。 微众应用容器化项目始于2018年底,我们的生产环境在私有机房上,由于基础设施的差异,容器管理系统主要走自研路线,基于开源产品定制。 2019年1月,微众上线了第一个版本,主要实现多K8s集群管理、以及适配公司现有的基础架构。 2019年2月,微众系统接入TKE服务,用于快速构建开发测试环境,我们大部分业务都需要独立的测试环境,利用腾讯云强大的伸缩能力可以减少我们很多的环境维护工作。 2019年6月,平台优化了核心的调度逻辑,支持了多业务多DCN共享资源池,提升了私有云资源交付的效率。 2019年12月,微众研发了一套统一的通用的运维服务,这套服务收敛过去各式各样的运维工具,并且增加了金融级的安全管理,优化了K8s执行命令的性能问题。 2020年年初,启动了全量应用容器化项目,现在已经有超过一半的实例跑在了容器上。其中就包括我们的核心金融系统。 2020年年中,平台开始了2.0的迭代,包括定制化Harbor、应用画像、通用Operator API等特性。 未来微众在容器化上小小的积累通过开源的方式贡献给社区。 下面部分我们介绍一下容器化实践中遇到的问题和解决方案。 首先

Grafana是一个可视化面板-安装配置介绍

女生的网名这么多〃 提交于 2021-01-10 17:06:04
Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源 最新版本:Version 5.4.2 December 13, 2018 https://grafana.com/grafana/download Grafana添加Zabbix为数据源 一、Grafana介绍 Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。 二、安装Grafana CentOS系列使用YUM安装 1 2 $ wget https : / / s3 - us - west - 2.amazonaws.com / grafana - releases / release / grafana - 4.2.0 - 1.x86_64.rpm $ sudo yum localinstall grafana - 4.2.0 - 1.x86_64.rpm 或者 1 2 $ yum install

Prometheus 与 Alertmanager 通信

社会主义新天地 提交于 2021-01-10 09:32:02
Prometheus 与 Alertmanager 通信 1、编辑Prometheus配置文件配置连接地址:vim prometheus.yml # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # alertmanager 地址 - 127.0.0.1:9093 2、编辑Prometheus配置文件配置,开启告警配置文件:vim prometheus.yml # Load rules once and periodically evaluate them according to the global rule_files: # 告警规则配置文件位置 - " rules/*.yml " 3、创建告警规则目录 mkdir rules 4、检查并重新加载配置文件 ./ promtool check config prometheus.yml kill -hup PID 来源: oschina 链接: https://my.oschina.net/u/4400455/blog/3442102

Prometheus 整合 AlertManager

只谈情不闲聊 提交于 2021-01-10 09:31:40
简介 Alertmanager 主要用于接收 Prometheus 发送的告警信息,它很容易做到告警信息的去重,降噪,分组,策略路由,是一款前卫的告警通知系统。它支持丰富的告警通知渠道,可以将告警信息转发到邮箱、企业微信、钉钉等。这一节讲解利用AlertManager,把接受到的告警信息,转发到邮箱。 实验 准备 启动 http-simulator 度量模拟器: docker run --name http-simulator -d -p 8080:8080 pierrevincent/prom-http-simulator:0.1 启动 Prometheus,为了方便更新配置,使用挂载配置文件的方式: docker run --name prometheus -d -p 9090:9090 -v /Users/huanchu/Documents/prometheus-data:/prometheus-data \ prom/prometheus --web.enable-lifecycle --config.file=/prometheus-data/prometheus.yml 启动添加了参数 --web.enable-lifecycle,让Prometheus支持通过web端点动态更新配置。 访问 http://127.0.0.1:9090/targets

钉钉报警-prometheus-alertmanager

↘锁芯ラ 提交于 2021-01-10 08:50:18
##alertmanager alertmanager可以放在远程服务器上 ###报警机制 在 prometheus 中定义你的监控规则,即配置一个触发器,某个值超过了设置的阈值就触发告警, prometheus 会推送当前的告警规则到 alertmanager,alertmanager 收到了会进行一系列的流程处理,然后发送到接收人手里 ###配置安装 wget https://github.com/prometheus/alertmanager/releases/download/v0.19.0/alertmanager-0.19.0.linux-amd64.tar.gz tar zxf alertmanager-0.19.0.linux-amd64.tar.gz mv alertmanager-0.19.0.linux-amd64.tar.gz /usr/local/alertmanager && cd /usr/local/alertmanager && ls 配置文件 cat alertmanager.yml global: resolve_timeout: 5m ##全局配置,设置解析超时时间 route: group_by: ['alertname'] ##alertmanager中的分组,选哪个标签作为分组的依据 group_wait: 10s ##分组等待时间

Prometheus+alertmanager告警配置-2

纵饮孤独 提交于 2021-01-09 20:46:47
prometheus 告警 prometheus 通过alertmanager进行告警 实现监控告警的步骤: 在prometheus中定义告警规则 rule_files alertmanager配置告警告警动作,分组,抑制,静默等功能 alertmanager安装route定义的规则向终端:邮箱,企业微信等发生告警信息 监控服务端主机下载安装alertmanager alertmanager可以和prometheus主机安装在一起,也可以独立部署在一台主机。这里部署在一台主机 [root@localhost ~]# tar zxf alertmanager-0.19.0.linux-amd64.tar.gz [root@localhost ~]# mv alertmanager-0.19.0.linux-amd64 /usr/local/alertmanager alertmanager主配置文件: alertmanager.yml内容标注 global: # 全局配置 resolve_timeout: 5m #解析超时时间 route: # 配置告警发送,接受规则 group_by: ['alertname'] # 根据标签分组 group_wait: 10s # 发送告警等待时间,为了合并相同告警一起发送 group_interval: 10s # 发送告警间隔时间