??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
PMM监控系统的使用思考

转载   对唔住   2018-11-13   浏览量:44


246. com 天天好彩免费:PMM监控系统的使用思考

彩票开奖查询 www.kbyp.net [TOC]

为什么需要监控

  1. 查看数据库的趋势,观测当前QPS/TPS等信息,这是最基本的了??⒒蛘吡斓嘉氏衷谑道榭鋈绾蔚氖焙?,你还吭哧吭哧的登录跳板机,运行脚本打印实例情况,一套操作下来半分钟没了,已经错过现场
  2. 忽悠开发,开发问为啥这么卡,看下监控,数值都正?!?gt;你们的应用有问题。数值不正?!?gt;我们已经注意到了问题,正在排查。
  3. 未雨绸缪,为扩容,提升机器效能(指收缩机器占用,下线不用的实例)提供参考。负载比较高的要考虑扩容,性能差的要考虑优化。负载低的基本没有连接的考虑要申请下线,

为什么是PMM

这里贴一个官方示例网址

  1. 监控信息最全,开源的监控方案我用过zabbix,open-falcon,自己采集+ES+Kibana/grafana。采集的指标项很多是数据有误,不及时,或者根本无数据。这样的抽风的监控系统会给自己的分析带来不自信,有存在的必要吗?
  2. 界面最直观,细节较多。你能想到的,想不到的都给你提供了。这对我这样菜逼DBA来说是很重要的??梢愿菁嗫赝夹吻魇撇鲁鍪道齝rash或者高负载前后的信息。信息少的监控系统分析不出什么花样来,瞎抠浪费时间。
  3. 支持的数据库类型最多,PG/MySQL(含PXC,MGR,TOKU,ROCKS)/MongoDB(含MONGOS)/OS。分析一个业务的OS/MONGODB/MYSQL性能要跨越两三个web网站,烦不烦?
  4. 支持慢查询分析,比annometer或者logstash的配置比起来简单一万倍。只要配置监控就可以,agent可以根据可调节的开关从IS或者慢日志中捕捉慢查询,高频SQL
  5. 基于grafana,可以引入oauth或者Ldap方便对现有的组织结构进行引入,根据业务对于图形进行分别授权。防止业务的活跃信息,IP等有价值信息被泄露
  6. 集成了Orchestrator用于复制拓补管理和可视化(这个我也没用过)

PMM又有哪些缺点

PMM 默认使用主机名作为唯一识别数据库实例的关键字。

在docker环境下,单机单实例,实例名和主机名保持一致,比较方便,但是不对外展示IP和端口还是蹩脚。也有可能是我的视野比较窄,或许根本不需要。但是在我们这边没有数据库微服务的情况下,IP和端口还是比较关键的信息点,而且单物理机多数据库实例下的使用效果并不好。主要体现在无法使用IP对实例进行汇总

需要sudo权限

在某些权限管理比较严格的情况下,dba没有sudo权限,无法运行pmm-client

服务端不好拆分

官方采用单节点Prometheus来存储监控Metric,小环境还可以,数千数万台的情况下ova或者docker化的服务端容易爆盘。这个时候易于部署的ova或者docker分发方式反而变成了缺点。

ova分发方式修改ova密码麻烦

修改Ova的虚拟机的Linux密码后,访问监控页面也需要输入密码,agent端注册也需要密码。当然如果你不去修改Ova的密码也没问题

服务端load高

这里简单说下PMM的架构
PMM架构

  1. 客户端(agent)向consul的kv中注册自己监控的服务信息
  2. 存储端(prometheus)从consul提供的服务发现服务地址去分别获取agent注册的信息,然后去一个个抽取exporter产生的监控数据
  3. Grafana通过读取存储端存储的数据进行展示
  4. 图中的地址不是直接对外暴露的,有一层nginx转发
  5. QAN的查询语句分析功能是通过另外的QAN服务单独进行分析并推入prometheus的
  6. 有一个MySQL实例用于存储整套系统的元数据信息。
  7. 还有一个大多数人不会投入使用的Orchestrator

这里显然可以得出,在监控数据量增大,监控节点增多的情况下,整个docker或者ova都会被qan的分析和prometheus的读写拖慢

解决思路

使用relabel功能分离IP和端口信息,修改grafana页面

这里主要是使用了prometheus配置文件中的relabel功能将__meta_consul_tags重新打标签为IP和PORT。

  # 截取IP和PORT zrz 20181112
  - source_labels: [__meta_consul_tags]
    separator: ;
    regex: .*,alias_([-\w:\.]+):.*
    target_label: IP
    replacement: $1
    action: replace
  - source_labels: [__meta_consul_tags]
    separator: ;
    regex: .*:([-\w:\.]+),.*
    target_label: PORT
    replacement: $1
    action: replace

为了找到这个功能,我花费了很长时间,需要使用正则的分段匹配和替换的方式进行截取。\

突破点在于Prometheus的管理web上,这里贴出来,相信大家会马上明白

PMM监控系统的使用思考

只要在添加数据实例监控时指定ip加端口,当然最好自定义生成下客户端的pmm.yml配置文件

vim /usr/local/percona/pmm-client/pmm.yml

server_address: 250.250.250.250 # 服务端的地址,若变更了端口,请加上端口
client_address: 1.1.1.1         # 本机IP
bind_address: 1.1.1.1           # 本机IP
client_name: 1.1.1.1            # 这里通?;崾侵骰?,但是建议改成IP,方便生成IP端口

# agent在本地添加数据库监控实例时:
pmm-admin add mysql --socket /home/dba/heart/break1/mysqld.sock --user flattery --password dog 1.1.1.1:4306
pmm-admin add mysql --socket /home/dba/heart/break2/mysqld.sock --user at --password last 1.1.1.1:5306
pmm-admin add mysql --socket /home/dba/heart/break2/mysqld.sock --user have --password nothing 1.1.1.1:6306

配置好之后,就会生成上图中IPPORT两个标签 \

然后对granfana的variable进行自定义

label_values(mysql_up,IP)

label_values(mysql_up,PORT)

在对图形的query进行修改,如图:

PMM监控系统的使用思考

到这里,剩下的想必聪明的你就知道该怎么做剩下的了。

需要注意的是在cross页面,需要使用sum函数(可以省略by),可以对整个实例的QPS进行汇总求和。这里的sum函数可以对实例级别的QPS进行汇总,而不是对时段内单实例进行汇总

tags功能需要使用查询CMDB来实现,也就是根据业务对机器和实例进行汇总,然后查询业务名传给tags,然后查询IP端口给tags,

拆分pmm-client

  • 需要sudo权限的原因是某些Os级别的监控需要权限,而且pmm-client使用了supervisord对监控进程进行了照顾。这两方面其实可以省略。那么就需要修改代码去掉这两个方面就可以了。

  • 官方使用了pmm-managed包对node_exporter,mysqld_exporter等的的添加进行了包装,其中比较重要的是,监控的部分元数据采集到MySQL(连接方式,监控类型等),接收连接方式的配置并喂食给exporter,调用consul包对监控服务的发现进行了add,update,delete,对应了pmm-admin的purge,uninstall,repair等等命令

  • 我不会go语言。

服务端拆分

可以从docker分发的/opt/entry.sh脚本入手,天不早了。这里留给聪明的你 自己探索

服务端拆分可以(也是必须)解决如下问题:

  • load高,把各个服务分到不同的机器上
  • 监控数据爆盘,利用Prometheus的federate功能,也就是垂直拆分的方式,拆分promethus?;蛘呓玃rometheus的存储换为可以分片的es,opentsdb等等

总结

  • 如若解决了Pmm-client的IP和端口采集问题,pmm-server的拆分的难度,我相信Pmm的易用性会大大提升

  • 虽然有上述问题,但pmm目前还是个没有对手的开源监控系统

转载自://blog.51cto.com/l0vesql/2316600

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



MYSQL5.7基于SSL的主从复制
本文档使用的是mysql版本为5.7.22,linux内核为3.10.0-862.el7.x86_64。一、首先主从复制的原理:1、master服务器的binarylog(二进制)将用户输入的增删改的SQL语句通过二进制日志记录下来,并通知存储引擎提交事务。2、slave将master的binarylog复制到自己的中继日志。首先,slave开启一个工作线程(I/O线程),I/O线程在master
tinyproxy服务器的搭建以及极速赛车源码修复
安装tinyproxy极速赛车源码修复,企娥:2171793408安装#centossudoyuminstalltinyproxy#ubuntusudoaptinstalltinyproxy打开配置文件vim/etc/tinyproxy/tinyproxy.conf搜索并修改以下配置#注释掉这一行#Allow127.0.0.1#修改端口号Port1801修改完了保存退出重启服务:systemctl
【超简单】MySQL存储引擎的选择与配置
【超简单】MySQL存储引擎的选择与配置存储引擎简介MySQL中的数据用各种不同的技术存储在文件(或内存)中。每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称为存储引擎。下面就为大家介绍两种MySQL中比较常见的两种存储引擎:MyISAM和
MySQL 5.6中的变量
这篇文章介绍的是MySQL?5.6中的变量,基本是我以前学习MySQL5.6手册时整理而来。?基础概念MySQL中的变量可分为以下几种:1、MySQL系统变量:该类型变量反映了MySQL服务器是如何配置的。每一个系统变量都有一个默认值。系统变量可以在MySQL配置文件中进行设置,或使用MySQL启动选项进行设置。大多数系统变量都可以在MySQL运行时使用SET命令进行动态修改。2、
MySQL 5.6中的字符集
这篇文章介绍的是MySQL5.6中的字符集,基本是我以前学习MySQL5.6手册时整理而来。?概论基础概念字符集(characterset)是编码和字符符号的映射集合。排序规则(collation)是用于比较字符集中字符的规则集。?现在我们自定义一个简单的字符集characterset。假设我们有一个仅有四个字母的字母表:A、B、a、b。我们给每个字母一个数字:A=0,B
logback的使用和五分彩源码搭建详解
一、logback的介绍  Logback是由log4j创始人设计的另一个开源日志组件?! ogback-core:其它两个??榈幕∧?椋何宸植试绰氪罱?,企娥:2171793408  logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4jAPI使你可以很方便地更换成其它日志系统如log4j或JDK14Logging  logback-access:访问??橛隨
计算机四级考试Mysql中临时表使用方法讲解
当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后多这些表运行查询。创建临时表很容
计算机四级考试:MYSQL初学者使用指南二
在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MySQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。一、操作技巧1、如果你打命令
计算机四级考试:MYSQL初学者使用指南一
(上篇)有很多朋友虽然安装好了MySQL但却不知如何使用它。在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。一、连接MYSQL。格式:mysql-h主机地址-u用户名-p用户密码1、例1:
计算机四级考试:简便的MySql备份的方法
使用MySQL进行数据库备份,又很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的备份方法,而且又快有好。一、数据备份捷径因为这个方法没有得到官方正式文档的验证