安利一款运维杀手锏,让监控部署不再尴尬!(附视频)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 MongoDB,通用型 2核4GB
可观测可视化 Grafana 版,10个用户账号 1个月
简介:

作者介绍

贺春旸金融MySQL专家,《MySQL管理之道》第一版、第二版作者。曾任职于中国移动飞信、机锋安卓市场,拥有丰富的数据库管理经验。目前致力于MySQL、Linux等开源技术的研究。

 

一、痛点

 

目前DBA团队和运维团队是单独部署的监控系统,我用Nagios监控DB,运维用Zabbix监控应用,早期我是用Cacti+Percona的模板做画图,由于MySQL/MongoDB服务的增多,每次人肉在网页里加监控项太累,后接在Zabbix里实现画图,结果造成Zabbix的监控表变大,Zabbix开始变得卡顿产生大量的误报警,导致运维在春节年会饭桌上收到了上百个报警短信,后直接切表才得以解决,固我决定需要拆分出去,实现微服务思想,让运维可以安心吃顿饭 ^_^

 

二、介绍

 

Percona Monitoring and Management (PMM)是一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来。在这个产品之前,Percona提供了Zabbix和Cacti的图形模板,也许是考虑到了用户部署起来繁琐等问题,索性在春节前Percona发布了PMM Docker镜像,用户只需要下载镜像运行就全部搞定,开箱即用相当easy!

 

PMM架构如下图所示:

 

20170221103329986.jpg

 

模块说明:

  • Query Analytics (QAN):用来展示MySQL慢查询日志。

  • Prometheus:是一个开源的服务监控系统和时间序列数据库,用来聚集DB的监控数据。

  • Grafana:将Prometheus里面的数据画图展示出来。

 

三、部署

 

系统:CentOS-7.3

 

1、Docker安装

 

# yum install docker -y

 

2、PMM Server安装

 

(1)下载PMM Server Docker镜像

 

# docker create   \

   -v /opt/prometheus/data \

   -v /opt/consul-data \

   -v /var/lib/mysql \

   -v /var/lib/grafana \

   --name pmm-data \

   percona/pmm-server:1.0.7 /bin/true

 

(2)启动

 

# docker run -d   \

   -p 80:80 \

   --volumes-from pmm-data \

   --name pmm-server \

   --restart always \

   percona/pmm-server:1.0.7

 

(3)查看Docker运行状态

 

20170221103341588.jpg

20170221103404820.jpg

 

(4)打开浏览器http://yourip即可

 

20170221103411693.jpg

 

Component

URL

PMM首页

http://yourip

Query Analytics (慢日志分析)

http://yourip/qan/

Metrics Monitor (Grafana)

http://yourip/graph/

user name: admin

password: admin

Orchestrator

http://yourip/orchestrator

 

3、PMM Client安装

 

(1)下载PMM Client

 

# wget

https://www.percona.com/downloads/pmm-client/LATEST/binary/tarball/pmm-client-1.0.7.tar.gz

# tar zxvf pmm-client-1.0.7.tar.gz

# cd pmm-client-1.0.7

# ./install

 

(2)连接PMM Server

 

# pmm-admin config --server yourip

 

(3)增加MySQL和MongoDB监控服务

 

# pmm-admin add mysql --user admin --password 123456 --host 192.168.148.21

# pmm-admin add mongodb --cluster rs1 --uri

mongodb://admin:123456@localhost:27017

 

(4)查看

 

# pmm-admin list

 

20170221103425242.jpg

20170221103440400.jpg

 

 

五、监控页面展示

 

OS系统

 

20170221103449167.jpg

 

MySQL

 

20170221103503985.jpg

20170221103511781.jpg

 

MySQL慢查询分析

 

20170221103521198.jpg

 

MongoDB

 

20170221103632939.jpg

20170221103611399.jpg

 

 

六、Email报警

 

报警是通过Grafana发出的,内置有Email、Webhook、slack、pagerduty,可惜没有微信,老外应该没听过这个玩意,所以这里我介绍一下Email报警是如何配置的。

 

1、首先进入docker shell里,见下面截图:

 

# docker ps

# docker exec -it 75d3be875849 /bin/bash

 

2、修改/etc/grafana/grafana.ini配置文件:

 

####################################   SMTP / Emailing ##########################

[smtp]

enabled = true

host =   smtp.126.com:25

user =   chunyang_he@126.com

password =   123456

;cert_file =

;key_file =

;skip_verify =   false

from_address =   chunyang_he@126.com

 

3、重启Docker生效

 

# docker stop 75d3be875849

# docker start 75d3be875849

 

4、页面配置

 

 

这一步步骤繁琐,具体请参考视频演示:http://pan.baidu.com/s/1i4OyGo1

 

效果如下图:

 

20170221103650593.jpg

原文发布时间为:2017-02-21

本文来自云栖社区合作伙伴DBAplus

相关文章
|
6月前
|
运维 监控 Linux
Linux 部署1Panel现代化运维管理面板&远程访问
Linux 部署1Panel现代化运维管理面板&远程访问
|
7月前
|
运维 监控 关系型数据库
OBCP第八章 OB运维、监控与异常处理-灾难恢复
OBCP第八章 OB运维、监控与异常处理-灾难恢复
75 0
|
7月前
|
运维 监控 负载均衡
OBCP第八章 OB运维、监控与异常处理-常见异常处理
OBCP第八章 OB运维、监控与异常处理-常见异常处理
103 0
|
7月前
|
运维 监控 固态存储
OBCP第八章 OB运维、监控与异常处理-日常运维操作
OBCP第八章 OB运维、监控与异常处理-日常运维操作
121 0
|
7月前
|
运维 监控 关系型数据库
OBCP第八章-运维、监控与异常处理-用户权限管理
OBCP第八章-运维、监控与异常处理-用户权限管理
59 1
OBCP第八章-运维、监控与异常处理-用户权限管理
|
7月前
|
运维 关系型数据库 Linux
OBProxy路由策略与使用运维-部署
OBProxy路由策略与使用运维-部署
53 0
|
2月前
|
运维 Java 开发者
深入浅出:使用Docker容器化改善Java应用的部署与运维
在当今快速迭代的软件开发周期中,确保应用的一致性、可移植性与易于管理成为了开发与运维团队面临的重大挑战。本文旨在介绍如何通过Docker容器技术,有效地解决这些问题,特别是针对Java应用。我们将从Docker的基本概念出发,逐步深入到实际操作,展示如何将传统的Java应用容器化,以及这一过程如何帮助简化部署流程、提高应用的可靠性和可伸缩性。不同于常规的技术文章,本文试图以一种更加易于理解和实践的方式,让读者能够快速掌握容器化技术,并将其应用于日常的开发与运维工作中。
90 0
|
2月前
|
运维 Java 持续交付
深入浅出:使用Docker容器化改善Java应用的部署与运维
在当今快速发展的软件开发领域,持续集成与持续部署(CI/CD)已成为提高开发效率和软件质量的关键。本文将探讨如何利用Docker容器技术,实现Java应用的高效部署与运维。我们将从Docker的基本概念入手,详细介绍如何将传统的Java应用容器化,并通过实际案例展示容器化带来的便利性和高效性。此外,文章还将探讨Docker容器与传统虚拟机部署方式的对比,以及如何在实际项目中选择最适合的部署策略。通过本文,读者将能够深入理解Docker容器化技术,并学会如何在自己的Java项目中实施和优化。
227 1
|
2月前
|
运维 Java 开发者
深入浅出:使用Docker容器化改善Java应用的部署与运维
在快速迭代与持续集成的开发周期中,如何确保Java应用的一致性、高效部署及易于管理成为了开发与运维团队面临的重大挑战。本文将探讨Docker容器技术如何为Java应用提供一种轻量级、可移植的解决方案,实现环境一致性、简化配置过程并提高开发到生产的流程效率。我们将从Docker的基本概念入手,通过实例详细说明如何将传统的Java应用容器化,以及如何利用Docker Compose来管理多容器应用,最后探讨在使用Docker部署Java应用时的最佳实践和常见问题解决策略。
246 1
|
3月前
|
运维 监控 测试技术
ansible 自动化运维监控方案
本文介绍如何利用ansible实时或自动采集受控主机的信息