Prometheus

daemonize Unix系统后台守护进程管理软件

北慕城南 提交于 2020-04-13 08:36:10
在我们的工作中,很多时候都需要在linux中后台运行程序, 方法1: nohup & 方法2: daemonize Unix系统后台守护进程管理软件 优点:更加正规 后台运⾏更稳定 git clone git://github.com/bmc/daemonize.git sh configure && make && sudo make install [root@dev-hadoop-test01 ~]# which daemonize /usr/local/sbin/daemonize daemonize -c /data/prometheus/ /data/prometheus/up.sh -c 是指定运⾏路径 /data/prometheus/up.sh 是运⾏路径下的 ⼀个启动脚本 下⾯是这个启动脚本的内容 内容:就是开启prometheus进程 [root@prometheus yd]# cat /data/prometheus/up.sh /data/prometheus/prometheus --web.listen address="0.0.0.0:9090" --web.read-timeout=5m --web.max connections=10 --storage.tsdb.retention=15d --storage.tsdb.path="data/"

Prometheus监控学习笔记之教程

ぐ巨炮叔叔 提交于 2020-04-12 11:40:43
Prometheus监控学习笔记之教程推荐 最近学习K8S和基于容器的监控,发现了如下的教程质量不错,记录下来以备参考 1. K8S最佳实战(包括了K8S的Prometheus监控和EFK日志搜集) https://jimmysong.io/kubernetes-handbook/practice/ 2. Prometheus-book https://yunlzheng.gitbook.io/prometheus-book/ 3. Prometheus实战 https://songjiayang.gitbooks.io/prometheus/content/ 4. Prometheus中文文档 https://www.yangcs.net/prometheus/ 5. Prometheus操作指南 https://www.bookstack.cn/read/prometheus-book/README.md 来源: oschina 链接: https://my.oschina.net/u/4276395/blog/3230667

MySQL 表中非主键列溢出情况监控

我怕爱的太早我们不能终老 提交于 2020-04-12 11:30:33
今天,又掉坑了。 之前踩到过MySQL主键溢出的情况,通过prometheus监控起来了,具体见这篇 MySQL主键溢出复盘 这次遇到的坑,更加的隐蔽。 是一个log表里面的一个int signed类型的列写满了。快速的解决方法当然还是只能切新表来救急了,然后搬迁老表的部分历史数据到热表。 亡羊补牢,处理完故障后,赶紧写脚本把生产的其他表都捋一遍。 下面是我暂时用的一个检测脚本,还不太完善,凑合 用 分2个文件(1个sql文件,1个shell脚本) check.sql 内容如下: SELECT cast( pow(2, case data_type when 'tinyint' then 7 when 'smallint' then 15 when 'mediumint' then 23 when 'int' then 31 when 'bigint' then 63 end+(column_type like '% unsigned'))-1 as decimal(30,0)) as max_int, ' - ', concat ('(', concat('select ','max(',COLUMN_NAME,')',' from ',TABLE_SCHEMA,'.',TABLE_NAME),')') from information_schema.COLUMNS where

K8S 监控告警原生演进

旧街凉风 提交于 2020-04-10 16:24:06
公司在虚拟机时代已有一套完善而强大的监控告警系统:agent 支持采集丰富的监控指标、监控日志的错误字段和进程存活并发送告警,后端提供强大的聚合方式和灵活的告警配置,前端具备强大的可视化能力。在如此优秀的监控告警系统映衬下,一切开源的方案都显得如此苍白无力,所以毫无疑问将该 agent 稍微改造即塞到胖容器中。该方案很好的适配已有的监控告警体系,但是不利于 agent 的升级维护,也不符合原生的玩法,所以对监控进行一些改造,本文主要谈谈相关经验,即 K8S 如何在原生玩法下对接已有的监控告警系统。 指标 首先讨论 PaaS 平台需要采集哪些指标,这些指标可以分为容器指标和宿主机指标两个层面。无论是宿主机还是容器,如下是常用的监控指标: CPU:usr, sys, iowait, irq, softirq, load GPU:显卡使用量,显存使用量 内存:主要为内存的真实使用 网络:网卡出入带宽,网卡出入包速率,丢包率等 磁盘:读写 iops,读写带宽,ioutil,磁盘使用率等 上下文切换数 容器监控指标 CAdvisor 内置于 Kubelet 中,默认采集该节点所有容器的一些监控指标。其中容器的 cpu 通过容器中 /sys/fs/cgroup/cpu 相关文件所得,内存指标通过容器中 /sys/fs/cgroup/memory/ 相关文件获取,磁盘指标源自 /sys/fs

Prometheus - Aggregate and relabel by regex

天涯浪子 提交于 2020-04-10 04:09:31
问题 I currently have the following Promql query which allow me to query the memory used by each of my K8S pods: sum(container_memory_working_set_bytes{image!="",name=~"^k8s_.*"}) by (pod_name) The pod's name is followed by a hash defined by K8S: weave-net-kxpxc weave-net-jjkki weave-net-asdkk Which all belongs to the same app: weave-net What I would like is to aggregate the memory of all pods which belongs to the same app. So, the query would sum the memory of all weave-net pods and place the

PromQL 内置函数

二次信任 提交于 2020-04-05 17:20:24
PromQL 内置函数 Prometheus 提供了其它大量的内置函数,可以对时序数据进行丰富的处理。某些函数有默认的参数,例如: year(v=vector(time()) instant-vector) 。其中参数 v 是一个瞬时向量,如果不提供该参数,将使用默认值 vector(time()) 。instant-vector 表示参数类型。 abs() abs(v instant-vector) 返回输入向量的所有样本的绝对值。 absent() absent(v instant-vector) ,如果传递给它的向量参数具有样本数据,则返回空向量;如果传递的向量参数没有样本数据,则返回不带度量指标名称且带有标签的时间序列,且样本值为1。 当监控度量指标时,如果获取到的样本数据是空的, 使用 absent 方法对告警是非常有用的。例如: # 这里提供的向量有样本数据 absent ( http_requests_total { method = "get" } ) = > no data absent ( sum ( http_requests_total { method = "get" } )) = > no data ​ # 由于不存在度量指标 nonexistent,所以 返回不带度量指标名称且带有标签的时间序列,且样本值为1 absent ( nonexistent

实践指路明灯,源码剖析flink-metrics

自闭症网瘾萝莉.ら 提交于 2020-04-04 10:23:15
1. 通过上期的分享,我们对 Metrics 类库有了较深入的认识,并对指标监控的几个度量类型了如指掌。 本期,我们将走进当下最火的流式处理框架 flink 的源码,一同深入并学习一下别人家的代码。 2. 会当凌绝顶,一览众山小。先从全局了解个梗概,然后再采用剥洋葱的方式逐层去解密。 我本地的源码是 flink-1.8.1 版本,打开 源码,进入 flink-metrics 模块,发现很多以 flink-metrics-开头的系列模块。 映入眼帘的 flink-metrics 系列模块虽然很多,不用发愁。 其实主要分为指标监控基础核心模块( flink-metrics-core ),以及指标数据监控组件集成模块( flink-metrics-xxx )两大类。 2.1. flink-metrics-core 模块剖析。 开篇提到 Metrics 的几种度量类型,来看看 flink 是咋定义的? 打开指标监控基础核心模块 flink-metrics-core 看个梗概。 不出我们所料,flink 定义了 Metrics 监控中常见的几种度量规范(Meter、Gauge、Counter、Histogram),画个简易的类图再看的明白些。 不过为了便于管理和区分 Metric,于是就有了 MetricGroup 的定义,那么编码时可以直接与 MetricGroup 交互就可以啦。 到这

监控实战Prometheus+Grafana

a 夏天 提交于 2020-04-04 09:18:10
这期的分享是监控实战,其实不想写这篇的,因为网上相关的文章也挺多的,但是出于光说不练都是假把式,而且也想告诉你:当帅气的普罗米修斯( Prometheus )遇到高颜值的格拉法纳( Grafana )究竟会擦出什么样的火花?所以忍不住还是想分享啊。 为了实战,我们再次请出架构图,请注意图中红色圈 1 的部分,主要分两条线去实战。 第一条战线:Prometheus 如何监控机器? 采用标准的PGOne技术组件 Prometheus Server + Grafana + node_exporter 完成对机器的性能监控。 第二条战线:Prometheus 如何监控 flink? 采用技术组件 client lib(flink-metrics-prometheus_x.jar) + PushGateway + Prometheus Server + Grafana 完成对 flink 的监控。 1. Prometheus 如何监控机器? 工欲善其事必先利其器,先下载相关组件包。prometheus 提供了两种下载方式,第一种是二进制压缩包的方式,第二种是 docker 镜像的方式。 #方式1:二进制压缩包下载链接 https://prometheus.io/download/ #方式2:docker镜像链接 https://hub.docker.com/u/prom 本次实战均采用

监控一哥Prometheus你可认识?

和自甴很熟 提交于 2020-04-04 09:17:49
先大致认识认识普罗米修斯 —— Prometheus。 依据官方文档 https://prometheus.io/docs/introduction/overview/ 大概能够了解到 Prometheus 是一个开源 系统监控 和 报警工具包 ,通过基于 Http 的 pull 方式 采集时序数据,支持多种多样的 图表和界面展示 。 如上面官方架构图所示,能看出 Prometheus 的生态中主要是由 exporters、Pushgateway、Prometheus server、AlertManager、Prometheus web UI 几个套件组成。 我感觉如果要一直这么聊下去,估计你会选择灰溜溜的走开,所以要细说每个套件都是干啥用的,那不妨在官方架构图的基础之上,再为你们上一图。 如上图所示,我简单把 Prometheus 的生态划分为 数据源、数据归集处理、数据应用 三大层。 数据源层 ,主要是通过两种形式生产数据。 一种是通过让应用加入Clinet lib类库集成 Prometheus ,然后向PushGateway推送监控指标的数据。例如 Prometheus 对 flink 监控时,需要加入 flink-metrics-prometheus_xxxx.jar 类库进行支持; 另一种则是直接通过 Prometheus 提供的系列 xx_exporter

kubernetes 部署Prometheus

南楼画角 提交于 2020-04-02 20:25:14
kubernetes 部署Prometheus 标签(空格分隔): kubernetes系列 一: 组件说明 二: Prometheus的部署 三: HPA 资源限制 一: 组件说明 1.1 相关地址信息 Prometheus github 地址:https://github.com/coreos/kube-prometheus 1.2 组件说明 1.MetricServer:是kubernetes集群资源使用情况的聚合器,收集数据给kubernetes集群内使用,如 kubectl,hpa,scheduler等。 2.PrometheusOperator:是一个系统监测和警报工具箱,用来存储监控数据。 3.NodeExporter:用于各node的关键度量指标状态数据。 4.KubeStateMetrics:收集kubernetes集群内资源对象数据,制定告警规则。 5.Prometheus:采用pull方式收集apiserver,scheduler,controller-manager,kubelet组件数据,通过http协议传输。 6.Grafana:是可视化数据统计和监控平台。 二: Prometheus的部署 mkdir Prometheus cd Prometheus git clone https://github.com/coreos/kube-prometheus