节后开工,打开熟悉的页面,发现PMM在6月25日偷偷发布了一个新版本。

偷窥一眼更新内容令人泪崩,作为PMM2的老大难问题--远程节点只能加不能删 的问题,终于解决了。

关于这个删除问题的诟病,在社区中吐槽已久,终于在5月16日,大佬立下了flag,这一个多月还真就搞好了,大爷终究还是大爷。

那今天就主要探讨下PMM中几种常见的节点删除方法。


方式1:PMM-client

在安装PMM-client的服务器上,节点的删除,可以通过remove命令来实现

pmm-admin remove [<flags>] <service-type> <service-name># 例:
pmm-admin remove  mongodb address=127.0.0.1:27017/admin

要注意在PMM1 和 2版本中命令是有些不同的,具体要看下手册。

方式2:swagger控制台

对于一些无法安装client的环境,如RDS,我们一般通过remote方式监控。这种实际上是在PMM Server上启动不同的exporter和端口,来充当client监控远端数据库。

[root@d82370aaccdb opt]# ps -ef|grep export
root       137    37  0 Jun01 ?        00:00:43 /usr/local/percona/pmm2/exporters/node_exporter --collector.bonding --collector.buddyinfo --collector.cpu --collector.diskstats --collector.entropy --collector.filefd --collector.filesystem --collector.hwmon --collector.loadavg --collector.meminfo --collector.meminfo_numa --collector.netdev --collector.netstat --collector.netstat.fields=^(.*_(InErrors|InErrs|InCsumErrors)|Tcp_(ActiveOpens|PassiveOpens|RetransSegs|CurrEstab|AttemptFails|OutSegs|InSegs|EstabResets|OutRsts|OutSegs)|Tcp_Rto(Algorithm|Min|Max)|Udp_(RcvbufErrors|SndbufErrors)|Udp(6?|Lite6?)_(InDatagrams|OutDatagrams|RcvbufErrors|SndbufErrors|NoPorts)|Icmp6?_(OutEchoReps|OutEchos|InEchos|InEchoReps|InAddrMaskReps|InAddrMasks|OutAddrMaskReps|OutAddrMasks|InTimestampReps|InTimestamps|OutTimestampReps|OutTimestamps|OutErrors|InDestUnreachs|OutDestUnreachs|InTimeExcds|InRedirects|OutRedirects|InMsgs|OutMsgs)|IcmpMsg_(InType3|OutType3)|Ip(6|Ext)_(InOctets|OutOctets)|Ip_Forwarding|TcpExt_(Listen.*|Syncookies.*|TCPTimeouts))$ --collector.processes --collector.standard.go --collector.standard.process --collector.stat --collector.textfile.directory.hr=/usr/local/percona/pmm2/collectors/textfile-collector/high-resolution --collector.textfile.directory.lr=/usr/local/percona/pmm2/collectors/textfile-collector/low-resolution --collector.textfile.directory.mr=/usr/local/percona/pmm2/collectors/textfile-collector/medium-resolution --collector.textfile.hr --collector.textfile.lr --collector.textfile.mr --collector.time --collector.uname --collector.vmstat --collector.vmstat.fields=^(pg(steal_(kswapd|direct)|refill|alloc)_(movable|normal|dma3?2?)|nr_(dirty.*|slab.*|vmscan.*|isolated.*|free.*|shmem.*|i?n?active.*|anon_transparent_.*|writeback.*|unstable|unevictable|mlock|mapped|bounce|page_table_pages|kernel_stack)|drop_slab|slabs_scanned|pgd?e?activate|pgpg(in|out)|pswp(in|out)|pgm?a?j?fault)$ --no-collector.arp --no-collector.bcache --no-collector.conntrack --no-collector.drbd --no-collector.edac --no-collector.infiniband --no-collector.interrupts --no-collector.ipvs --no-collector.ksmd --no-collector.logind --no-collector.mdadm --no-collector.mountstats --no-collector.netclass --no-collector.nfs --no-collector.nfsd --no-collector.ntp --no-collector.qdisc --no-collector.runit --no-collector.sockstat --no-collector.supervisord --no-collector.systemd --no-collector.tcpstat --no-collector.timex --no-collector.wifi --no-collector.xfs --no-collector.zfs --web.disable-exporter-metrics --web.listen-address=:42002
root       142    37  0 Jun01 ?        00:00:59 /usr/local/percona/pmm2/exporters/mysqld_exporter --collect.binlog_size --collect.custom_query.hr --collect.custom_query.hr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/high-resolution --collect.custom_query.lr --collect.custom_query.lr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/low-resolution --collect.custom_query.mr --collect.custom_query.mr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/medium-resolution --collect.engine_innodb_status --collect.engine_tokudb_status --collect.global_status --collect.global_variables --collect.heartbeat --collect.info_schema.clientstats --collect.info_schema.innodb_cmp --collect.info_schema.innodb_cmpmem --collect.info_schema.innodb_metrics --collect.info_schema.innodb_tablespaces --collect.info_schema.processlist --collect.info_schema.query_response_time --collect.info_schema.userstats --collect.perf_schema.eventsstatements --collect.perf_schema.eventswaits --collect.perf_schema.file_events --collect.perf_schema.file_instances --collect.slave_status --collect.standard.go --collect.standard.process --exporter.conn-max-lifetime=55s --exporter.global-conn-pool --exporter.max-idle-conns=3 --exporter.max-open-conns=3 --web.listen-address=:42000
root       148    37  0 Jun01 ?        00:00:40 /usr/local/percona/pmm2/exporters/mysqld_exporter --collect.auto_increment.columns --collect.binlog_size --collect.custom_query.hr --collect.custom_query.hr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/high-resolution --collect.custom_query.lr --collect.custom_query.lr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/low-resolution --collect.custom_query.mr --collect.custom_query.mr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/medium-resolution --collect.engine_innodb_status --collect.engine_tokudb_status --collect.global_status --collect.global_variables --collect.heartbeat --collect.info_schema.clientstats --collect.info_schema.innodb_cmp --collect.info_schema.innodb_cmpmem --collect.info_schema.innodb_metrics --collect.info_schema.innodb_tablespaces --collect.info_schema.processlist --collect.info_schema.query_response_time --collect.info_schema.tables --collect.info_schema.tablestats --collect.info_schema.userstats --collect.perf_schema.eventsstatements --collect.perf_schema.eventswaits --collect.perf_schema.file_events --collect.perf_schema.file_instances --collect.perf_schema.indexiowaits --collect.perf_schema.tableiowaits --collect.perf_schema.tablelocks --collect.slave_status --collect.standard.go --collect.standard.process --exporter.conn-max-lifetime=55s --exporter.global-conn-pool --exporter.max-idle-conns=3 --exporter.max-open-conns=3 --web.listen-address=:42001
root       153    37  0 Jun01 ?        00:01:05 /usr/local/percona/pmm2/exporters/mysqld_exporter --collect.auto_increment.columns --collect.binlog_size --collect.custom_query.hr --collect.custom_query.hr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/high-resolution --collect.custom_query.lr --collect.custom_query.lr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/low-resolution --collect.custom_query.mr --collect.custom_query.mr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/medium-resolution --collect.engine_innodb_status --collect.engine_tokudb_status --collect.global_status --collect.global_variables --collect.heartbeat --collect.info_schema.clientstats --collect.info_schema.innodb_cmp --collect.info_schema.innodb_cmpmem --collect.info_schema.innodb_metrics --collect.info_schema.innodb_tablespaces --collect.info_schema.processlist --collect.info_schema.query_response_time --collect.info_schema.tables --collect.info_schema.tablestats --collect.info_schema.userstats --collect.perf_schema.eventsstatements --collect.perf_schema.eventswaits --collect.perf_schema.file_events --collect.perf_schema.file_instances --collect.perf_schema.indexiowaits --collect.perf_schema.tableiowaits --collect.perf_schema.tablelocks --collect.slave_status --collect.standard.go --collect.standard.process --exporter.conn-max-lifetime=55s --exporter.global-conn-pool --exporter.max-idle-conns=3 --exporter.max-open-conns=3 --web.listen-address=:42003
root       157    37  0 Jun01 ?        00:09:06 /usr/local/percona/pmm2/exporters/mysqld_exporter --collect.binlog_size --collect.custom_query.hr --collect.custom_query.hr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/high-resolution --collect.custom_query.lr --collect.custom_query.lr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/low-resolution --collect.custom_query.mr --collect.custom_query.mr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/medium-resolution --collect.engine_innodb_status --collect.engine_tokudb_status --collect.global_status --collect.global_variables --collect.heartbeat --collect.info_schema.clientstats --collect.info_schema.innodb_cmp --collect.info_schema.innodb_cmpmem --collect.info_schema.innodb_metrics --collect.info_schema.innodb_tablespaces --collect.info_schema.processlist --collect.info_schema.query_response_time --collect.info_schema.userstats --collect.perf_schema.eventsstatements --collect.perf_schema.eventswaits --collect.perf_schema.file_events --collect.perf_schema.file_instances --collect.slave_status --collect.standard.go --collect.standard.process --exporter.conn-max-lifetime=55s --exporter.global-conn-pool --exporter.max-idle-conns=3 --exporter.max-open-conns=3 --web.listen-address=:42004
root       163    37  0 Jun01 ?        00:00:27 /usr/local/percona/pmm2/exporters/postgres_exporter --collect.custom_query.hr --collect.custom_query.hr.directory=/usr/local/percona/pmm2/collectors/custom-queries/postgresql/high-resolution --collect.custom_query.lr --collect.custom_query.lr.directory=/usr/local/percona/pmm2/collectors/custom-queries/postgresql/low-resolution --collect.custom_query.mr --collect.custom_query.mr.directory=/usr/local/percona/pmm2/collectors/custom-queries/postgresql/medium-resolution --web.listen-address=:42005
root       635    37  0 Jun01 ?        00:00:43 /usr/local/percona/pmm2/exporters/mysqld_exporter --collect.binlog_size --collect.custom_query.hr --collect.custom_query.hr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/high-resolution --collect.custom_query.lr --collect.custom_query.lr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/low-resolution --collect.custom_query.mr --collect.custom_query.mr.directory=/usr/local/percona/pmm2/collectors/custom-queries/mysql/medium-resolution --collect.engine_innodb_status --collect.engine_tokudb_status --collect.global_status --collect.global_variables --collect.heartbeat --collect.info_schema.clientstats --collect.info_schema.innodb_cmp --collect.info_schema.innodb_cmpmem --collect.info_schema.innodb_metrics --collect.info_schema.innodb_tablespaces --collect.info_schema.processlist --collect.info_schema.query_response_time --collect.info_schema.userstats --collect.perf_schema.eventsstatements --collect.perf_schema.eventswaits --collect.perf_schema.file_events --collect.perf_schema.file_instances --collect.slave_status --collect.standard.go --collect.standard.process --exporter.conn-max-lifetime=55s --exporter.global-conn-pool --exporter.max-idle-conns=3 --exporter.max-open-conns=3 --web.listen-address=:42006
root      3747  3731  0 06:55 ?        00:00:00 grep --color=auto export
[root@d82370aaccdb opt]#

RDS添加的方式可以看看之前的文章:

PMM:监控RDS与一些新功能

添加之后的远程节点可以在Nodes中找到,还有对应的services,注意类型是remote

一般远程监控的MySQL , service和node是一一对应的。

对于MySQL每个service通常对应2个agent: MySQL exporter 和 Qan慢查询采集

想要删除这些,就只能通过swagger的API页面来删除

https://10.0.0.97/swagger/

这个页面下包含了所有PMM操作的API,可以供其他程序调用,页面也可以直接执行。

找到service下的remove,填写需要删除的sercice_id

删除结果,返回空值即是成功

如删除失败,会返回错误原因

方式3:直接调用API删除

如果管理的数据库达到一定规模而需要批量删除,建议用以下方法:

获取所有node信息,返回结果是json格式。

curl -k -u admin:管理员密码 -X POST "https://10.0.0.97/v1/inventory/Nodes/List"

找到需要删除对象的node_id来批量删除:

curl -k -u admin:管理员密码 -X POST "https://10.0.0.97/v1/inventory/Nodes/Remove" -H "Content-Type: application/json" -d "{ \"node_id\": \"/node_id/c86c4ab1-4b29-49be-bc7b-3da903591fd1\", \"force\": true}"curl -k -u admin:管理员密码 -X POST "https://10.0.0.97/v1/inventory/Nodes/Remove" -H "Content-Type: application/json" -d "{ \"node_id\": \"/node_id/c86c4ab1-4b29-49be-bc7b-3da903591d22\", \"force\": true}"curl -k -u admin:管理员密码 -X POST "https://10.0.0.97/v1/inventory/Nodes/Remove" -H "Content-Type: application/json" -d "{ \"node_id\": \"/node_id/c86c4ab1-4b29-49be-bc7b-3da903591fd3\", \"force\": true}"

方式4:2.8版本PMM页面可以直接删除

升级到2.8版本,试试新加的删除功能

支持多选、批量删除。

全新功能--安全威胁工具(STT)

在5月份PMM 2.6版本发布中,推出了一个全新功能--安全威胁工具(STT),就数据库的安全性相关问题,向PMM用户提供建议。

  • 安全威胁工具(STT)对注册的实例执行一系列与安全相关的检查,并报告调查结果。

  • 默认情况下,安全威胁工具是禁用的。

  • 目前检查需要24小时才能完成。

  • 可以在PMM -> PMM Database Checks中查看结果。

默认情况下安全威胁工具未激活,因此需要手动启用。

可以在 PMM -> PMM Settings -> Settings -> Advanced settings -> Security Threat Tool 中启用它。

开启方式:

初始版本(PMM 2.6.0),每天仅执行一次检查。

未来可能修改成更频繁检查,并可以自己定义检查间隔。

配置后可以在PMM主页看到相关的检查结果:

点进去后,是详细的信息与建议

目前的STT只做2方面的检查:

  • 针对每个数据库,检查并提醒MySQL,MariaDB,MongoDB和PostgreSQL的最新版本。

  • STT将检查使用空密码的MySQL用户,并提醒设置密码,提高安全性。

根据上面的提示,一个RDS里有10个用户是空密码,检查下确实如此,不过看上去好像是腾讯云自己本机使用。

MySQL [mysql]> select Host,user,Password from mysql.user;
+-----------------+-------------+-------------------------------------------+
| Host            | user        | Password                                  |
+-----------------+-------------+-------------------------------------------+
| localhost       | root        |                                           |
| tencent64.site  | root        |                                           |
| 127.0.0.1       | root        |                                           |
| ::1             | root        |                                           |
| localhost       |             |                                           |
| tencent64.site  |             |                                           |
| %               | root        | *321C6A19E65718800AB5A1F1C1114BC54FF9617D |
| %               | m***a       | *321C6A19E65718800AB5A1F1C1114BC54FF9617D |
| %               | li****wei   | *13EA11314CB401D6266D29FB926449E22A30CDB2 |
| 10.252.216.11   | tencentroot |                                           |
| 9.20.170.107    | tencentroot |                                           |
| 100.104.172.158 | tencentroot |                                           |
| 10.237.150.34   | tencentroot |                                           |
| 10.0.%          | pmm         | *D0A50CB4D76E26B0ED9F78D24193115E4F945580 |
+-----------------+-------------+-------------------------------------------+
14 rows in set (0.00 sec)

虽然目前STT的功能比较简单,但从它的名字--Security Threat Tool预示着未来的重点应该还是数据库的安全检查与防护。

从PMM社区的建设,到新功能不断添加、版本更新频繁,可见Percona的野心绝对不仅如此,PMM加油吧。


# 历史文章归档

  • GitHub都在用的高可用工具Orch:

Orchestrator:01 基础篇

Orchestrator:02 高可用方案VIP篇

Orchestrator:03 高可用方案ProxySQL篇

Orchestrator:04 高可用方式部署

  • Percona 全力打造的监控平台 PMM:

监控利器 PMM2.0X GA 版本发布!

PMM监控的告警配置

PMM的Ansible部署与重点指标

在PMM中添加Redis和ES

PMM2:迟到的礼物-2.8.0版本发布相关推荐

  1. 《Verilog HDL那些事儿》PDF 3.0版本发布

      <Verilog HDL那些事儿>1.0版本发布四章内容,后续将后面的两章内容加入,最近比较忙,希望大家体谅! 目录: 书语        9 第一章        前言        ...

  2. OpenKruise v0.5.0 版本发布 | 云原生生态周报 Vol. 50

    作者 | 丁海洋.张晓宇.宋净超.孙健波 业界要闻 OpenKruise v0.5.0 版本发布,支持无损的流式分批发布策略 OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在 Kube ...

  3. 意料之外,情理之中,Spring.NET 3.0 版本发布-

    意料之外,情理之中,Spring.NET 3.0 版本发布- 备受社区和企业开发者广泛关注的Spring.NET在上周发布了3.0版本,并且目前已经保持着持续的更新,让我们一起来看一看他究竟发布了哪些 ...

  4. Kafka 1.0版本发布

    Kafka 1.0版本发布 1.0.0 2017年11月1日发布 源码下载: kafka-1.0.0-src.tgz(asc,sha512) 二进制下载: Scala 2.11 - kafka_2.1 ...

  5. Jeecg-Boot 2.0.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台

    Jeecg-Boot 2.0.0 版本发布,前后端分离快速开发平台 Jeecg-Boot项目简介 源码下载 升级日志 Issues解决 v1.1升级到v2.0不兼容地方 系统截图 Jeecg-Boot ...

  6. 微信、企业微信和支付窗 SDK 三合一,JeeWx-api 1.2.0 版本发布

    JeeWx-API 1.2.0 版本发布,微信.企业微信和支付窗SDK三合一 摘要: JEEWX-API 是第一款JAVA版微信极速SDK,同时集成企业微信SDK,支付窗SDK,可以快速的基于她进行微 ...

  7. Jeecg-P3 1.0版本发布,JAVA插件开发框架

    Jeecg-P3 1.0 版本发布,插件开发框架 特点:业务组件以JAR方式提供,插件模式.松耦合.可插拔.支持独立部署,也可以无缝集成Jeecg平台中. [架构说明] 1.Jeecg-P3 采用Sp ...

  8. P3-weixin-2.0.0版本发布(微信插件式开发框架)

    P3-weixin-2.0.0版本发布(微信插件式开发框架) 1.P3-weixin为何诞生 现在微信越来越火,基于微信的公众号和服务号越来越丰富,单一的微信管家系统已经满足不了微信的需求.Jeecg ...

  9. 资料:vue 3.0+版本发布

    vue 3.0+版本发布 官方文档:https://v3.cn.vuejs.org/

最新文章

  1. 全球首例猪心移植人体手术:57岁晚期心脏病患者术后状况良好
  2. 黑马vue---10-11、Vue实现跑马灯效果
  3. Gson与FastJson比较
  4. 基于Bootstrap的jQuery开关按钮插件
  5. tensorflow 加载bert_用NodeJS/TensorFlowJS调用BERT实现文本分类
  6. Maven 单元测试报错:错误: 找不到或无法加载主类 @{failsafeArgLine}
  7. 常用SQL语句优化技巧
  8. tshark (wireshark)笔记
  9. clion 使用技巧
  10. python selenium安装失败_python:学习selenium遇到的坑
  11. linux主从库配置文件,Linux系统中MongoDB安装及主从配置linux操作系统 -电脑资料
  12. lopatkin俄大神精简中文系统Windows 7 Enterprise SP1 7601.23934 x86-x64 ZH-CN PIP
  13. noi题库 1.7编程基础之字符串 :题解大礼包20180723
  14. Linux查询ip地址ens33没有inet这个属性
  15. 联想电脑如何打开BIOS并开启虚拟化——以G50为例
  16. 使用matlab建立个人简历,HTML 使用表格制作简单的个人简历
  17. for循环基础练习学案:打印平行四边形
  18. c语言中一般命名方式,C语言常见命名规则
  19. ERP销售管理实施的意义
  20. DNS之资源记录(RR)以及配置

热门文章

  1. JavaScript JSON解析
  2. 2021-11-01天视通常见故障汇总
  3. 合规与竞争压力剧增,Tether自救进行时 |链捕手
  4. ACC-5595反射内存交换机
  5. 亚马逊跨境电商如何编辑产品详情页 亚马逊产品listing优化
  6. 《医院信息管理系统 ——“病人信息维护”模块》项目研发阶段性总结
  7. Django配置Https访问
  8. Python笔记_13_推导式_集合推导式_字典推导式_生成器
  9. VLC多媒体播放器将字幕srt等 内嵌在视频中且能合并到视频,保存为带字幕的新视频 自媒作首选工具
  10. socket c语言视频教程,C语言使用socket完成HTTP