暂无图片
暂无图片
暂无图片
暂无图片
1
暂无图片

PMM监控的告警配置

万能修实验室 2021-07-14
5049


PMM使用有一段时间了,但目前仅是用来做数据库的性能监控。

是的,这告警功能确实太操蛋了。


由于图形部分使用的是grafana,Percona提供的模板中使用了大量的变量,却不能直接用来添加告警。因此今天就试试是否可以其他方式来解决这个问题。




准备PMM Server


# 打开测试的PMM Server,发现主界面提示可以升级到2.1.0


# 直接Update就可以了。


# 升级完成,版本2.1.0  

Percona对PMM的更新真是很勤,基本上每个月都有新版本发布。

看介绍又加了不少新东西。恩,找到了当年追火影、海贼的感觉。



PMM客户端准备


# 由于PMM2只支持版本2以上的客户端,要单独下载:

https://www.percona.com/downloads/pmm2/

# 安装客户端:


# 配置PMM客户端:

    [root@bogon caihao]# pmm-admin config --server-insecure-tls --server-url=https://admin:XXX@10.7.XX.XX:443 10.7.70.187 generic   DAT_10.7.70.187
    Checking local pmm-agent status...
    pmm-agent is running.
    Registering pmm-agent on PMM Server...
    Registered.
    Configuration file usr/local/percona/pmm2/config/pmm-agent.yaml updated.
    Reloading pmm-agent configuration...
    Configuration reloaded.
    Checking local pmm-agent status...
    复制


    # 添加MySQL监控

      [root@bogon caihao]# pmm-admin add mysql --query-source=perfschema --username=root --password=XXXXX  address=10.7.70.187:3306
      MySQL Service added.
      Service ID : service_id/f523464b-d3dc-49eb-8e53-19ec2ce43a8a
      Service name: address=10.7.70.187:3306
      [root@bogon caihao]# pmm-admin list
      Service type Service name Address and port Service ID
      MySQL address=10.7.70.187:3306 127.0.0.1:3306 service_id/f523464b-d3dc-49eb-8e53-19ec2ce43a8a


      Agent type Status Agent ID Service ID
      pmm-agent connected agent_id/52b27971-de62-454c-9f66-ebcc983ded5e
      node_exporter running agent_id/20005cc5-c4c3-4a36-99e2-f731ea30c071
      mysqld_exporter running agent_id/9d515de9-7838-4b62-95c7-124bfee08435 service_id/f523464b-d3dc-49eb-8e53-19ec2ce43a8a
      qan-mysql-perfschema-agent running agent_id/560b7757-31fd-4c3f-9942-b588c627bad6 service_id/f523464b-d3dc-49eb-8e53-19ec2ce43a8a
      复制


      # 添加MongoDB监控

        [root@bogon caihao]# pmm-admin add mongodb --username=super --password=XXX  address=10.7.70.187:27017/admin
        MongoDB Service added.
        Service ID : service_id/f44b742d-a2b2-4403-b1c4-cda06dc8bac1
        Service name: address=10.7.70.187:27017/admin
        [root@bogon caihao]# 
        [root@bogon caihao]# pmm-admin list
        Service type Service name Address and port Service ID
        MySQL address=10.7.70.187:3306 127.0.0.1:3306 service_id/f523464b-d3dc-49eb-8e53-19ec2ce43a8a
        MongoDB address=10.7.70.187:27017/admin 127.0.0.1:27017 service_id/f44b742d-a2b2-4403-b1c4-cda06dc8bac1


        Agent type Status Agent ID Service ID
        pmm-agent connected agent_id/52b27971-de62-454c-9f66-ebcc983ded5e
        node_exporter running agent_id/20005cc5-c4c3-4a36-99e2-f731ea30c071
        mysqld_exporter running agent_id/9d515de9-7838-4b62-95c7-124bfee08435 service_id/f523464b-d3dc-49eb-8e53-19ec2ce43a8a
        qan-mysql-perfschema-agent running agent_id/560b7757-31fd-4c3f-9942-b588c627bad6 service_id/f523464b-d3dc-49eb-8e53-19ec2ce43a8a
        mongodb_exporter running agent_id/443f333e-e35f-4794-be3c-57746d68d84c service_id/f44b742d-a2b2-4403-b1c4-cda06dc8bac1
        qan-mongodb-profiler-agent running agent_id/f190d3de-c4cf-4a17-9cf7-172b87785444 service_id/f44b742d-a2b2-4403-b1c4-cda06dc8bac1
        复制


        配置钉钉告警


        # 由于测试环境内网对smtp有限制,因此只能用钉钉来做。


        # URL填添加一个丁丁的机器人地址。



        自定义告警页面


        PMM自带的模板中,是不可以自定义告警的,因此要单独设计自己的告警页面。

        # 我们以 MySQL Instance Summary 为模板,建立一个新页面。


        # 自带模板是只读,需另存一个可编辑的


        # 确认保存


        # 定义个好听的名字


        # 保存新建的自定义页面


        # 现在,在自定义的页面中,图形已经可以随意编辑修改。


        # 首先把不需要告警的指标全部remove掉


        # 修改一个指标试试,比如MySQL连接数指标


        # 告警要尽量精简,这里我只关注当前连接数,最大连接和用户最大连接都删掉。


        # 删除后大概就这样子


        # 配置告警部分,此时会出现万恶的提示:不支持模板变量


        # 比如这种带$  都是模板变量。


        # 由于我希望一个图可以监控所有的实例,因此把变量进行替换,service_name 使用正则表达式来取所有实例。

        修改后上面的图形已经可以显示所有的mysql库了。

        注意:等于号后面加个 ~ 才能识别正则(  =~  )

         

        # 这样修改后,告警部分也可以添加了。


        # 配置一个连接数超过500的钉钉告警。


        测试下,已经可以获取当前3个数据库的连接数


        最后,一定记得保存。


        返回后,已经可以看到绿色的健康爱心了。以后添加的数据库也会自动加入到这个指标告警中。


        以下是初步完成了一个告警面板,包括连接数、running会话、QPS、主从延迟、锁、慢查询等指标。



        以后监控的机器多了,会有齐刷刷、整齐划一的感觉。



        告警功能测试


        下面就找几个监控指标压测下,试试告警功能是不是管用。


        # 来个32并发的insert试试,主要针对QPS和主从延迟


        # 绿心已经变红碎裂,很形象。。。


        # 钉钉上也收到了Alerting告警信息  主从延迟 253,QPS  2214


        # 停止压测,过一会恢复正常。



        # 恢复了会收到OK的通知




        后继补充


        PMM整体来说算是一款不错的监控产品,针对MySQL、PG、Mongo都有很专业的指标统计,而且部署简单整套打包到容器中。2.0之后底层持久化数据库从MySQL更换为PG后,性能更是有很大提升。


        但是相比传统的Zabbix、Open-Falcon等主流监控软件,PMM的告警配置实在很繁琐,告警频率缺少更细粒度的控制、告警内容与展示还不够丰富。这方面还要再研究下。


        公众号这种东西瞎写很简单,坚持下去却很难。总有一些无形的力量会鞭策着你,比如最近的新闻,网易、华为啥的。

        人生总是充满惊喜。为了选一张图,有时候会意外发现一些神奇的网站。



        文章转载自万能修实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论

        牧师
        暂无图片
        3年前
        评论
        暂无图片 0
        测试钉钉的时候,会报“test notification sent”,但是钉钉没有收到信息。这个问题该从哪里查原因啊?谢谢
        3年前
        暂无图片 点赞
        评论