跳到内容

版本1检查PMM 2.27及更老版本

为PMM 2.27及更早版本创建的Advisor检查使用的结构与2.28略有不同。这是因为,与2.28检查相比,2.27检查不支持:

  • 多个查询
  • Victoria Metrics作为数据源
  • 没有数据库家庭

v.1检查的格式

PMM 2.27及更老版本的检查使用以下格式:

版本1检查格式
---检查-版本1名字例子总结示例检查描述这个检查只是一个例子。类型MONGODB_BUILDINFO脚本|def检查(文档):#与PMM Server < 2.12兼容上下文= {“format_version_num”:format_version_num,“parse_version”:parse_version,返回check_context(docs, context)Def check_context(docs, context):# ' docs '是一个冻结的(深度不可变的)字典列表,其中每个字典表示结果集中的单个文档。# ' context '是一个带有附加函数的字典。#全局' print '和' fail '函数可用。# ' check_context '函数将返回一个字典列表,然后转换为警报;#,该列表可以为空。#任何其他值(例如,字符串)将被视为脚本执行失败# (Starlark不支持Python异常);#建议使用全局函数' fail '来代替。Format_version_num = context。(“format_version_num”,失败)Parse_version = context。(“parse_version”,失败)打印("first doc =", repr(docs[0]))返回[{"summary": "示例摘要","description": "示例描述",“严重程度”:“警告”,"标签":{“版本”:format_version_num (10203),})
v.1检查的现实例子格式
---检查-版本1名字mongodb_version总结MongoDB版本描述如果MongoDB/PSMDB版本不是最新版本,该检查将返回警告。类型MONGODB_BUILDINFO脚本|-Latest_versions = {" mongodb ": {“3.6”:30620,# https://docs.mongodb.com/manual/release-notes/3.6/“4.0”:40020,# https://docs.mongodb.com/manual/release-notes/4.0/“4.2”:40210,# https://docs.mongodb.com/manual/release-notes/4.2/“4.4”:40401,# https://docs.mongodb.com/manual/release-notes/4.4/},"雷竞技下载官网 percona ": {“3.6”:30620,# https://www.pe雷竞技下载官网rcona.com/downloads/percona-server-mongodb-3.6/“4.0”:40020,# https://www.pe雷竞技下载官网rcona.com/downloads/percona-server-mongodb-4.0/“4.2”:40209,# https://www.pe雷竞技下载官网rcona.com/downloads/percona-server-mongodb-4.2/“4.4”:40401,# https://www.pe雷竞技下载官网rcona.com/downloads/percona-server-mongodb-4.4/},def检查(文档):#与PMM Server < 2.12兼容上下文= {“format_version_num”:format_version_num,“parse_version”:parse_version,返回check_context(docs, context)Def check_context(docs, context):# ' docs '是一个冻结的(深度不可变的)字典列表,其中每个字典表示结果集中的单个文档。# ' context '是一个带有附加函数的字典。#全局' print '和' fail '函数可用。# ' check_context '函数将返回一个字典列表,然后转换为警报;#,该列表可以为空。#任何其他值(例如,字符串)将被视为脚本执行失败# (Starlark不支持Python异常);#建议使用全局函数' fail '来代替。”“”如果MongoDB/PSMDB版本不是最新版本,该检查将返回警告。”“”Format_version_num = context。(“format_version_num”,失败)Parse_version = context。(“parse_version”,失败)如果len(docs) != 1:返回“意外数量的文档”Info = docs[0]#提取信息is_雷竞技下载官网percona = 'psmdbVersion' in info# parse_version返回一个字典,其中包含键:major, minor, patch, rest, num版本= parse_version(info[" Version "])Print ("version =", repr(version))Num = version[" Num "]Mm = "{}.{}"。格式(版本(“主要”)(“小”))结果= []如果is_p雷竞技下载官网ercona:latest = LATEST_VERSIONS["雷竞技下载官网percona"][mm]如果latest > num:results.append ({"summary": "更新版本的Percona Serv雷竞技下载官网er for MongoDB可用","description": "当前版本为{},最新可用版本为{}.".format(format_version_num(num), format_version_num(最新)),“严重程度”:“警告”,"标签":{“当前”:format_version_num (num),“最新”:format_version_num(最新)},})返回结果如果为True: # MongoDBlatest = LATEST_VERSIONS["mongodb"][mm]如果latest > num:results.append ({"summary": "更新版本的MongoDB可用","description": "当前版本为{},最新可用版本为{}.".format(format_version_num(num), format_version_num(最新)),“严重程度”:“警告”,"标签":{“当前”:format_version_num (num),“最新”:format_version_num(最新)},})返回结果

PMM 2.26及更老版本中的安全检查

PMM 2.26及更早的版本包含一组分组在安全威胁工具选择。

在2.27发行版中,安全检查已重命名为Advisor检查安全威胁工具选项在PMM设置被重命名为顾问

检查脚本

检查脚本假设存在一个具有固定名称的函数,该函数接受列表文档包含SQL数据库和MongoDB文档的返回行。它返回零个、一个或多个检查结果,然后将这些结果转换为警报。

PMM 2.12.0和更早的函数名称为检查,而较新的版本使用namecheck_context.两者的意思是一样的。

函数签名

函数签名应该是check_context(文档、上下文),在那里文档是文档列表(一个文档代表SQL DBMS的一行,MongoDB的一个文档)。

检查严重级别

您可以使用以下可用的严重级别之一来标记您的顾问检查:紧急警报至关重要的错误警告请注意信息调试.PMM组按其严重程度检查失败,并将它们显示在Advisors Checks >检查失败

检查字段

检查可以包括以下字段:

  • 版本(integer, required):定义期望的其他属性,支持的类型,期望从脚本中得到什么,以及它可以从执行环境中得到什么,等等。
  • 名字(字符串,必选):定义机器可读的名称(ID)。
  • 总结(字符串,必选):定义简短的人类可读的描述。
  • 描述(字符串,必选):定义人类可读的长描述。
  • 时间间隔(string/enum,可选):定义运行间隔。可以是UI中预定义的间隔之一:标准,频繁,罕见。
  • 类型(string/enum,必选):定义查询类型和建议器运行的PMM服务类型。检查下表中版本1检查的可用类型列表。
  • 脚本(字符串,必选):包含一个小的Starlark程序,用于处理查询结果并返回检查结果。它在PMM服务器端执行。
  • 类别(字符串,必选):指定自定义或默认的advisor检查类别。例如:性能、安全。
  • 查询(string,如果类型本身定义了整个查询,则可以省略):查询在PMM客户端执行,并且包含针对目标DBMS的特定查询。

检查类型

展开下表中的检查类型列表,您可以使用这些类型定义查询类型和将为其运行检查的PMM Service类型。

检查类型表
|检查类型|描述|“查询”必须为空(如果“否”则必须为空)

| - | - | - | | MYSQL_SHOW |对MySQL数据库执行' SHOW…'子句。|是| | MYSQL_SELECT |对MySQL数据库执行SELECT…|是| | POSTGRESQL_SHOW |对PosgreSQL数据库执行“SHOW ALL”命令。|否| | POSTGRESQL_SELECT |对PosgreSQL数据库执行' SELECT…'子句。|是| | MONGODB_GETPARAMETER |执行db。adminCommand({getParameter: " * "})有关更多信息,请参见getParameter|否| | MONGODB_BUILDINFO |执行db。adminCommand({buildInfo: 1})对MongoDB的“admin”数据库。有关更多信息,请参见buildInfo|不| |

开发版本1检查

仅限开发/调试

请注意,目前在PMM 2.26/2.27中进行V1检查调试只而且不用于生产!除了托管的Percona平台检查外,未来的版本计划包括运行自定义本地检查的选项。雷竞技下载官网

为PMM 2.26和2.27开发自定义检查:

  1. 安装最新的PMM服务器和PMM客户端安装说明
  2. 使用特殊的环境变量运行PMM服务器:

    • PMM_DEBUG = 1启用调试输出,以后会有用;
    • 雷竞技下载官网PERCONA_TEST_CHECKS_FILE = /电脑/ custom-checks.yml使用本地文件中的检查,而不是从Percona平台下载检查。雷竞技下载官网
    • 雷竞技下载官网PERCONA_TEST_CHECKS_DISABLE_START_DELAY = true禁用默认的检查执行开始延迟时间。目前设置为1分钟,以便在系统启动时运行检查。
    • 雷竞技下载官网PERCONA_TEST_CHECKS_RESEND_INTERVAL = 2年代命令,定义向Alertmanager发送sa告警的频率。
    码头工人运行- p80: 80- p443: 443——名字pmm-server- ePMM_DEBUG1- e雷竞技下载官网PERCONA_TEST_CHECKS_FILE/电脑/ custom-checks.yml- e雷竞技下载官网PERCONA_TEST_CHECKS_DISABLE_START_DELAY真正的- e雷竞技下载官网PERCONA_TEST_CHECKS_RESEND_INTERVAL2 s雷竞技下载官网perconalab / pmm-server: dev-latest
  3. 用凭证登录到Grafanaadmin / admin

  4. >设置>高级设置并启用安全威胁工具选择。

  5. 创建/电脑/ custom-checks.ymlpmm-server装有你支票内容的容器。

  6. 检查将根据UI上定义的时间间隔运行。您可以在主仪表板上看到运行检查的结果:

  7. 点击检查失败数,打开failed checks仪表板:

  8. 进入Docker容器,输出pmm管理的日志,读取检查日志:

#进入容器docker exec -it pmm-server bash #打印并查看日志

最近更新:2023-03-30
Baidu
map