我们的产品目前使用到的中间件有 Nginx、Redis、RabbitMQ、MySql 等,本文介绍怎样使用 Promtheus 来监控这些中间件。
我们知道,奉行长期主义的网络公司,势必应在软件开发流程管理体系上具备规范意识,即代码提交有CR(CodeReview),功能测试上自动化,而功能发布讲究三板斧:灰度、监控、止血。灰度属于测试范畴,止血则是亡羊补牢,今天我们来聊聊监控,提起监控,就不得不提在DepOps(自动化运维)领域鼎鼎有名的Prometheus(普罗米修斯),有人说这个开源系统的名字怎么有点如雷贯耳啊,没错,它的名字就是取自从宙斯手中为人类夺回圣火的古希腊神明普罗米修斯,而Prometheus的Logo恰恰就是奥林匹克圣火。Prometheus主要的功能就是可以无时不刻的监控所有部署在生产环境中的服务,如果服务出现问题则会及时报警以提醒开发者。
现在有各种各样的工具都可以对 Redis 进行监控,例如:redis-stat、RedisLive等,在使用过各种各样的监控工具后,个人感觉redis_exporter较为好用,配合Prometheus+Grafana,不仅监控灵活、展现直观还可以进行自行封装来获取各种特别关注的数据指标。
Prometheus 是一个开放性的监控解决方案,通过 Node Exporter 采集当前主机的系统资源使用情况,并通过 Grafana 创建一个简单的可视化仪表盘。
使用 Prometheus 进行 Redis 监控的都知道,Redis_exporter 是较常用的解决方案,但是在 redis_exporter 开始的版本中,并不支持一个 redis_exporter 实例监控多 Redis 实例,这样造成 exporter 实例的数量较多,难以维护和管理。但是好在官方已经解决了此问题。在 metrics 的暴漏形式上也有所改变:
在之前公司搭建测试环境过程中会安装mysql、redis、kafak等数据库,在测试环境使用过程中经常会遇到服务挂了等问题,经过分析是因为数据库无法连接成功或者数据打满等异常问题。
https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz
https://github.com/oliver006/redis_exporter
本文介绍Prometheus的Exporter组件的作用,原理,已经使用该组件对主机,MySQL,Redis等实施监控的实践。
prometheus生态下提供了很多开箱即用的exporter,其中就有redis exporter,提供redis最重要的运行指标数据收集,部署了redis exporter以后,prometheus会通过redis exporter暴露的端口拉取数据。
一、安装prometheus 安装包下载地址:https://prometheus.io/download/
前不久分享了关于最新版本的 GitLab 的试用体验,《试用 GitLab 14 以及中国发行版:极狐》。
描述: 如果我们采用prometheus提供的二进制可执行文件进行搭建prometheus服务器,可以按照以下流程进行操作运行,二进制Release下载地址: https://github.com/prometheus/prometheus/releases
介绍 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 应用 目前平台R
进入server端所在服务器,修改prometheus.yml配置文件,添加一个job配置项,然后重新启动prometheus server端。
新建一个redis的实例地址与密码文件,/data/redis-exporter/redis_passwd.json:
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
介绍 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 应用 目前平台Re
prometheus.io/port注解将被注入__address__标签中,以便被作业抓取。接下来的服务发现将开始收集这些Mysql指标
描述: 本章主要讲解和实践Prometheus在企业中的应用场景的复现,采用了docker-compose的资源清单进行快速构建prometheus_server、prometheus_pushgateway、prometheus_alertmanager、grafana等环境。
俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼。本文将使用prometheus及Grafana搭建一套监控系统来监控主机及数据库(MySQL、Redis)。
# 1.创建目录 [root@summer exporter]# mkdir -p /opt/exporter [root@summer exporter]# cd /opt/exporter # 2.解压 [root@summer src]# tar -zxvf redis_exporter-v1.13.1.linux-amd64.tar.gz redis_exporter-v1.13.1.linux-amd64/ redis_exporter-v1.13.1.linux-amd64/README.
作者 金 戈 沃趣科技技术专家 传统监控系统面临的问题 Prometheus的前身:Borgmon Borgmon介绍 应用埋点 服务发现 指标采集与堆叠 指标数据存储 指标 指标的查询 规则计算
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。
前面我们一起配置了如何在 kube-prometheus 下面新增一个监控项 Kubernetes 集群监控 ETCD 组件。如果我们在 Kubernetes 集群中有了很多的 Service 和 Pod,那么我们都得一个一个的去建立一个对应的 ServiceMonitor 对象来进行监控吗?这样岂不是又变得很繁琐起来了?
https://www.cnblogs.com/you-men/p/12839535.html
需求:采用redis_exporter 收集数据,promethus采集redis_exporter数据,granfana展示数据 一、简易安装redis yum install -y redis rpm -qa |grep redis lsof -i :6379 rpm -ql redis systemctl start redis 找到配置文件/etc/redis.conf,修改 requirepass QpMD61xo 重启动redis systemctl restart redis 二、下载re
前面对远程http服务的拨测体验简单拨测了一下http服务,最近偶遇了一下服务到期默认进入回收站,服务连不上redis数据库的问题(腾讯云报警通知服务现在不能保证优先队列,现在会滞后性)。由于日志业务上报问题,业务的错误日志没有上报给我,程序自己收集的,这就造成了滞后性。现在了想把云内资源都监控起来,当然了我不想使用所谓的云监控!下面搞一下redis elastic mysql mongo等服务的exporter黑盒监控!
此时我们打开浏览器,访问ip:9121这个地址就可以获取到redis的监控信息了。
前文介绍了 prometheus 的架构和工作原理,本文手动实践一下,使用prometheus + grafna 监控redis。
今天我们使用docker搭建redis集群,docker我们就不详细介绍了,都是些简单命令,有机会在写几篇docker的文章,只要你按照我的的步骤搞,redis集群就很容易搭建成功。
其中,9090是Prometheus的端口,3000是grafana的端口,3389是Linux远程桌面的端口。
去年底我写了一个阿里云云监控的 Prometheus Exporter, 后续迭代的过程中有一些经验总结, 这篇文章就将它们串联起来做一个汇总, 讲讲为什么要写 Exporter 以及怎么写一个好用的 Exporter何为 Prometheus ExporterPrometheus 监控基于一个很简单的模型: 主动抓取目标的指标接口(HTTP 协议)获取监控指标, 再存储到本地或远端的时序数据库. Prometheus 对于指标接口有一套固定的格式要求, 格式大致如下: # HELP http_reques
普罗米修斯默认配置文件 vim /usr/local/Prometheus/prometheus.yml
Prometheus 是一套开源的系统监控告警框架,作为 CNCF 中重要的一员,活跃度仅次于 kubernetes,广泛用于 kubernetes 集群的监控系统中。
https://github.com/hepyu/k8s-app-config/tree/master/yaml/min-cluster-allinone/redis-cluster-min
Grafana:一个监控仪表系统,可以根据提供的监控数据,生产可视化仪表盘,同时也具有告警通知功能。这里的监控数据来源,目前主要以Prometheus为主(也支持其它数据源),每次展现仪表盘时,都会向Prometheus服务发送一个查询请求,从而拿到监控数据并构建可视化仪表盘。
公司有一台测试服务器,网速比较慢,特别是下载一些国外站点镜像的时候,而我本机则比较快,还有梯子,所以在思考一个问题;是否能在我本地把镜像下载下来,然后复制到测试服务器中。
随着大微软收购GitHub,GitHub网站正式发博文以及公关稿,这个事件已经尘埃落定。
github地址:https://github.com/kubernetes/kube-state-metrics (opens new window)
# 1.拉取镜像 [root@summer consoles]# docker pull prom/prometheus [root@summer consoles]# docker pull grafana/grafana [root@summer consoles]# docker pull prom/node-exporter [root@summer consoles]# docker pull oliver006/redis_exporter # 2.启动node-exporter [root@s
随着容器技术的迅速发展,Kubernetes已然成为大家追捧的容器集群管理系统。Prometheus 作为生态圈 Cloud Native Computing Foundation(简称:CNCF)中的重要一员,其活跃度仅次于 Kubernetes, 现已广泛用于 Kubernetes 集群的监控系统中。
Prometheus 最初是 SoundCloud 构建的开源系统监控和报警工具,是一个独立的开源项目,于 2016 年加入了 CNCF 基金会,作为继 Kubernetes 之后的第二个托管项目。Prometheus 相比于其他传统监控工具主要有以下几个特点:
Prometheus是一个开源监控系统和时间序列数据库。它涉及监控的许多方面,例如度量标准的生成和收集,在仪表板上绘制结果数据以及针对异常情况发出警报。为实现这一目标,它提供了各种组件,这些组件分别运行但组合使用。
上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Server端。Server之间通过局域网或广域网通信实现数据一致性。每个Server或Client都是一个consul agent。
领取专属 10元无门槛券
手把手带您无忧上云