MySQL-MongoDB开源监控利器之PMM
背景说明:
PMM是percona公司提供的一个对于MySQL和MongoDB的监控和管理平台。PMM有两部分组成PMM Client和PMM Server
PMM Client:安装在每一台需要进行监控的数据库主机中,包括以下工具
. pmm-admin:pmm客户端客理工具,用于增加或是删除需要监控的数据库实例
. percona-qan-agent:用于搜集数据库性能数据
. node_exporter :用于搜集常用的系统指标
. mysqld_exporter:用于搜集MySQL性能指标
. mongodb_export:用于搜集MongoDB性能指标
. proxysql_export:用于搜集proxySQL性能指标
PMMServer: 搜集和分析各个数据库转输的数据,包括以下组件
. Query Analytics(QAN):按时间周期查询MySQL性能,同客户端的qan agent通讯包括两个组件 。qan api 和qan web app
. Metrics Monitor(MM):提供MySQL和mongo的性能历史视图
部署环境说明
mysql 一台机器
pmm server 一台机器
操作系统都是centos 7.x
安装PMM
安装docker
yum install docker
考虑到后期监控数据的收集可能会占用一定磁盘,想把docker 的数据存储从系统盘放到挂载磁盘 /data 目录下
docker info
默认docker 存储位置在/var/lib 下
cd /var/lib
cp docker docker.bkp
mv docker /data
ln -s /data/docker docker
启动docker 服务
systemctl start docker.service
systemctl start docker
systemctl enable docker
systemctl restart docker.service
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
[root@192-168-1-34 home]# systemctl status docker.service
● docker.service - Docker Application www.mhylpt.com Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 四 2018-06-21 16:18:49 CST; 3s ago
Docs: http://docs.docker.com
Process: 18954 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
Main PID: 18954 (code=exited, status=1/FAILURE)
6月 21 16:18:48 192-168-1-34 systemd[1]: Starting Docker Application Container Engine...
6月 21 16:18:48 192-168-1-34 dockerd-current[18954]: time="2018-06-21T16:18:48.357879787+08:00" level=warning msg="could not change group /var/ru...t found"
6月 21 16:18:48 192-168-1-34 dockerd-current[18954]: time="2018-06-21T16:18:48.358289625+08:00" level=info msg="libcontainerd: new containerd pro...: 18959"
6月 21 16:18:49 192-168-1-34 dockerd-current[18954]: time="2018-06-21T16:18:49.363904011+08:00" level=warning msg="overlay2: the backing xfs filesystem i...
6月 21 16:18:49 192-168-1-34 dockerd-current[18954]: Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kerne...d=false)
6月 21 16:18:49 192-168-1-34 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
6月 21 16:18:49 192-168-1-34 systemd[1]: Failed to start Docker Application Container Engine.
6月 21 16:18:49 192-168-1-34 systemd[1]: Unit docker.service entered failed state.
6月 21 16:18:49 192-168-1-34 systemd[1]: docker.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
centos7 启动docker失败--selinux-enabled=false
centos7,执行完安装命令: yum install docker
执行启动命令: systemctl start docker ,报下面错误:
Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (--selinux-enabled=false)
重新编辑docker配置文件:
vi /etc/sysconfig/docker
# /etc/sysconfig/docker
# Modify these options if you want to change the way the docker daemon runs
OPTIONS='--selinux-enabled=false --log-driver=www.xinghenyule.com journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
systemctl restart docker
下载容器镜像
docker pull percona/pmm-server:latest
创建数据容器:
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.2.0 /bin/true
如果再本地找不到,Docker会从Dockerhub拉取image
确保你在使用最新版本的Docker
上述命令执行以下工作:
docker create命令指示Docker守护程序从映像创建一个容器.
-v选项初始化容器的数据卷.
--name选项为可用于引用Docker网络中的容器的容器分配一个自定义名称。 在次数为:pmm-data.
percona/pmm-server:1.2.0是导出容器的映像的名称和版本标签.
/bin/true是容器运行命令
如果此步报错,则需要FQ下载,因国内GFW问题,通过docker pull percona/pmm-server 先把docker pmm-server的镜像拉取下来,再创建容器
创建pmm-server容器:
docker run -d \
-p 80:80 \
--volumes-from pmm-data \
--name pmm-server \
--restart always \
percona/pmm-server:1.2.0
或者
docker run -d \
-p 80:80 \
--volumes-from pmm-data \
--name pmm-server \
-e SERVER_USER=jsmith \
-e SERVER_PASSWORD=pass1234 \
--restart always \
percona/pmm-server:1.2.0
上述命令执行以下工作:
docker run命令指示docker守护程序从映像运行容器。
-d选项以分离模式(即后台)启动容器。
-p选项映射用于访问PMM服务器Web UI的端口。 例如,如果端口80不可用,则可以使用-p 8080:80将着陆页映射到端口8080。
--volumes-from选项从pmm-data容器中装载卷(请参阅步骤1.创建一个PMM数据容器)。
—name选项为可用于引用Docker网络中的容器的容器分配一个自定义名称。 在这种情况下:pmm-server。
—restart选项定义容器的重新启动策略。 设置它始终确保Docker守护程序在启动时启动容器,并在容器退出时重新启动它。
percona / pmm-server:1.2.0是导出容器的映像的名称和版本标签。
-e是为了安全,设置访问PMM web页面所需的用户名和密码
https://www.percona.com/doc/percona-monitoring-and-management/security.html
此时输入机器IP,就可以看到如下页面了。https://www.dasheng178.com/ ip:port,需要注意如果你的端口不是80,比如上面的是-p 8080:80,那么需要输入https://ip:8080。
上面是可以输入的网址,192.168.100.1是我本地的IP
升级PMM服务器:
docker stop pmm-server # 先停
docker rm pmm-server # 再删,如果如要保留收集数据,不要执行此操作
docker run -d \
-p 80:80 \
--volumes-from pmm-data \
--name pmm-server \
--restart always \
--init \
percona/pmm-server:1.2.0
2、安装pmm client
参考地址:percona官方部署文档
安装percona源
rpm -ivh https://www.fengshen157.com/ /downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
sudo yum install pmm-client
或
$ wget https://www.percona.com/downloads/pmm-client/pmm-client-1.1.1/binary/tarball/pmm-client-1.1.1.tar.gz
$ tar zxf pmm-client-1.1.1.tar.gz
$ cd pmm-client-1.1.1
$ ./install
3、配置连接到pmm-server
参考地址:percona官方部署文档
pmm-admin config --server server端IP地址 --bind-address=client地址 --client-address=client地址
在安装完PMM Client后,它并不会自动连接PMM Server.
Connect PMM Client to PMM Server
要将客户端连接到PMM服务器,请使用pmm-admin config –server命令指定IP地址。 例如,如果PMM服务器在192.168.1.72上运行,并且在IP 192.168.1.247的计算机上安装了PMM Client:
root@storm-master-01:/home#pmm-admin config --server 192.168.1.72 --server-user jsmith --server-password pass1234
OK, PMM server is alive.
PMM Server | 192.168.1.72 (password-protected)
Client Name | storm-master-01
Client Address | 192.168.1.247
root@storm-master-01:/home#
增加数据项
sudo pmm-admin add mysql --user=*** --password=*** --port=3306
在slave 上执行
pmm-admin add mysql --user=pmm --password=Pmm&2017 --socket=/data/mysql/3306/mysql.sock
这里的user 和password 是之前master创建,已同步到slave ,所以slave 上通过同样的用户采集信息
sudo pmm-admin add mongodb --uri mongodb://username:password@IP:port/?authMechanism=SCRAM-SHA-1
列出当前监控项
pmm-admin list
pmm-admin check-network
添加一台机器中的其它实例:
pmm-admin add mysql:metrics mysqldocker –user root –password root –host IP –create-user
pmm-admin add linux:metrics # 监控linux系统
pmm-admin add mongodb:metrics # 监控mongodb
pmm-admin add mongodb:queries --dev-enable # 此处为实验功能,所以需要加 --dev-enable
pmm-admin purge linux:metrics # 清除数据
pmm-admin purge mongodb:metrics
pmm-admin 常用命令介绍
# 添加监控服务
pmm-admin add
# 检查PMM客户端和PMM服务器之间的网络连接。
pmm-admin check-network
# 配置PMM Client如何与PMM服务器通信。
pmm-admin config
# 打印任何命令和退出的帮助
pmm-admin help
# 打印有关PMM客户端的信息
pmm-admin info
# 出为此PMM客户端添加的所有监控服务
pmm-admin list
# 检查PMM服务器是否存活
pmm-admin ping
# 检查PMM服务器是否存活。
pmm-admin purge
# 清除PMM服务器上的度量数据
pmm-admin remove, pmm-admin rm
# 删除监控服务
pmm-admin repair
# 重启pmm
pmm-admin restart
# 打印PMM Client使用的密码
pmm-admin show-passwords
# 开启监控服务
pmm-admin start
# 停止监控服务
pmm-admin stop
# 在卸载之前清理PMM Client
pmm-admin uninstall
MySQL-MongoDB开源监控利器之PMM的更多相关文章
- MySQL连接线程kill利器之pt-kill
如何每10秒检查一次,杀死指定用户超过100秒的查询? pt-kill \ --no-version-check \ --host 127.0.0.1 --port 3306 --user 'xxxx ...
- mysql/mongodb监控之Percona Monitoring and Management (PMM) 2.1.0安装使用
Percona Monitoring and Management (PMM)是Percona Server一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的D ...
- .NET Core开源组件:后台任务利器之Hangfire 转载 https://www.cnblogs.com/chenug/p/6655636.html
.NET Core开源组件:后台任务利器之Hangfire 一.简述 Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在.net core的环境中,由Core自带的D ...
- MySQL MHA 运行状态监控
一 项目描述 1.1 背景 MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能.MHA ...
- Linux开源监控平台归总
Linux开源监控平台归总 Cacti 偏向于基础监控.成图非常漂亮,需要php环境支持,并且需要mysql作为数据存储 Cacti是一个性能广泛的图表和趋势分析工具,可以用来跟踪并几乎可以绘制出任何 ...
- 基于Redis+MySQL+MongoDB存储架构应用
摘 要: Redis+MySQL+MongoDB技术架构实现了本项目中大数据存储和实时云计算的需求.使用MongoDB切片的水平动态添加,可在不中断平台业务系统的同时保障扩容后的查询速度和云计算效能 ...
- 小米开源监控open-falcon
小米开源监控系统Open-Falcon安装使用笔记 07net01.com 发布于 2016-10-25 18:42:03 分类:IT技术 阅读(88) 评论 前言 近期爆出Zabbix有严重bug, ...
- 一款软件同时管理MySQL,MongoDB数据库
互联网应用开发日新月异,去年分布式应用都还大量使用springmvc+ zookeeper +dubbo,今年就被spring boot ,spring cloud微服务架构替换了,技术的更新换代太快 ...
- 大众点评CAT开源监控系统剖析
参考文档: 大众点评的实时监控系统分析(一) CAT_source_analyze 透过CAT,来看分布式实时监控系统的设计与实现 深度剖析开源分布式监控CAT [分布式监控CAT] Client端源 ...
随机推荐
- ubuntu k8s 命令补全
apt install bash-completion // locate bash_completion source /usr/share/bash-completion/bash_complet ...
- mutt+msmtp做linux邮件客户端
mutt+msmtp做linux邮件客户端 1. 安装配置msmtp l 安装 wget https://sourceforge.net/projects/msmtp/files/msmtp/1.4 ...
- 解决 cocos2dx iOS/mac 设置纹理寻址模式后纹理变黑的问题
sprite:getTexture():setTexParameters(gl.LINEAR,gl.LINEAR,gl.REPEAT,gl.REPEAT) 在安卓设备上,设置了纹理自定义寻址模式,纹理 ...
- [vijos]P1642 班长的任务
背景 十八居士的毕业典礼(1) 描述 福州时代中学2009届十班同学毕业了,于是班长PRT开始筹办毕业晚会,但是由于条件有限,可能每个同学不能都去,但每个人都有一个权值,PRT希望来的同学们的权值总和 ...
- 简单的C++ DLL注入
今天呢,我们来讨论一下用C++实现DLL注入的简单方法. 环境: Visual Studio 2015及以上 Windows 7及以上 入门需要了解的: DLL是什么:DLL_360百科 DLL是Dy ...
- tensorflow目标检测API之训练自己的数据集
1.训练文件的配置 将生成的csv和record文件都放在新建的mydata文件夹下,并打开object_detection文件夹下的data文件夹,复制一个后缀为.pbtxt的文件到mtdata文件 ...
- 【MySql】Mysql ERROR 1067: Invalid default value for ‘date’ 解决
在给一个表添加字段的时候,忽然发现会报一个date类型的字段的默认值错误,郁闷~ 经过排查,原来是MySQL的配置问题,在wamp下,MySQL 5.7里是没有设置 SQL_MODE 的. 1.my. ...
- Ubuntu 下安装mysqlclient报错
pip3 install mysqlclient 报错信息 问题描述: Complete output from command python setup.py egg_info: /bin/sh: ...
- NodeJS基础API-path相关的问题basename,extname,dirname,parse,format,sep,delimiter,win32,posix
path 参考文档:http://nodejs.cn/api/path.html const {normalize} = require('path'); // ES6语法 // 相当于 const ...
- 拓展jQuery的serialize(),将form表单转化为json对象
jQuery 的 serialize() 方法经常会报 Uncaught TypeError: JSON.serializeObject is not a function 的错误, 原装的方法真的一 ...