关于Box Anemometer的安装配置遇到的几个坑
Box Anemometer是一个非常不错的MySQL慢查询可视化工具平台,具体就不多详述了,官网是https://github.com/box/Anemometer
最近动自己动手搭了一个,具体搭建过程,参考了http://www.cnblogs.com/xuanzhi201111/p/4128894.html以及官网的说明文档
下面把其中遇到的一些坑记录于此:
1、.资源规划:
192.168.17.205 Box Anemometer服务器,安装httpd服务、php、用于存储Anemometer慢查询数据的MySQL服务。
192.168.16.21/22/23/24/25/**** 需要被监控的MySQL服务器,需要安装percona-toolkit,并配置使用pt-query-digest收集数据的相关脚本任务。
2、安装过程及遇到的坑:2.1、之前192.168.17.205上就编译安装过一个MySQL5.7.20服务
于是按照网上的教程先yum 安装了httpd,再yum安装php,然后配置Anemometer。
结果一直报错,连接不上MySQL服务器。我怀疑是yum安装php默认的Mysql客户端驱动太低导致的。所以重新采用编译安装php,编译配置如下:
./configure
--prefix=/data/php
--enable-fpm
--with-fpm-user=daemon
--with-fpm-group=daemon
--with-config-file-path=/usr/local/php/etc
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-iconv --with-iconv-dir
--with-freetype-dir
--with-jpeg-dir
--with-png-dir
--with-gd
--with-zlib
--with-libxml-dir
--with-curl
--with-mhash
--with-xmlrpc
--with-mcrypt
--with-openssl
--with-apxs2=/usr/sbin/apxs
--enable-xml
--disable-rpath
--enable-bcmath
--enable-shmop
--enable-sysvsem
--enable-inline-optimization
--enable-mbregex
--enable-mbstring
--enable-gd-native-ttf
--enable-ftp
--enable-pcntl
--enable-sockets
--enable-zip
--enable-soap
--disable-debug
--disable-ipv6
--with-gettext
--enable-calendar
--enable-dom
--enable-opcache=no
结果还是报错,仍然连接不上mysql服务器。但错误信息有所变化,最终解决方案是:关闭Selinux。
2.2、关于Anemometer数据库的授权以及被监控数据库的用户授权:
2.2.1、Anemometer用于保存收集过来的慢查询数据的MySQL数据库192.168.17.205的授权如下:
GRANT SELECT, UPDATE ON `slow_query_log`.* TO 'app_anemometer_rw'@'localhost'
对应的配置如下:
[root@oracle conf]# pwd
/var/www/html/anemometer/conf
[root@oracle conf]# vi config.inc.php <?php
$conf['datasources']['localhost'] = array(
'host' => '127.0.0.1',
'port' => 3306,
'db' => 'slow_query_log',
'user' => 'app_anemometer_r',
'password' => 'Your@StrongPassword',
'tables' => array(
'global_query_review' => 'fact',
'global_query_review_history' => 'dimension'
),
'source_type' => 'slow_query_log'
);
2.2.2、另外该数据库还需要给各被监控数据库的脚本程序授权:
GRANT SELECT, INSERT, UPDATE, DELETE ON `slow_query_log`.* TO 'app_anemometer_rw'@'192.168.16.2%'
2.2.3、各被监控的数据库需要授权Anemometer程序访问,用来获取执行计划等数据:
GRANT SELECT, SUPER ON *.* TO 'app_anemometer_r'@'192.168.17.205'
对应的配置(/var/www/html/anemometer/conf/config.inc.php)如下:
3、通过配置,终于能打开首页了,但首页显示的SQL长度实在是太短,只有20个字符,导致没法从这个列表上清楚的知道到底是哪个查询:
这个也可以通过修改/var/www/html/anemometer/conf/config.inc.php文件来配置:
默认是取最左边20位,改成想要的长度即可。
4、最后附上各MySQL服务器中用于收集慢查询日志的python脚本:
#!/usr/bin/env python2
#-*- coding: utf-8 -*-
import subprocess PATH='/bin:/usr/bin'
LOG='/log/slow.log'
SERVER_HOST='192.168.17.205'
DB='slow_query_log'
TAB1='global_query_review'
TAB2='global_query_review_history'
MYSQL_USER='app_anemometer_rw'
MYSQL_PASSWD='Your@StrongPassword'
hostname='MySQL-M-16-21'
print MYSQL_PASSWD
cmd='pt-query-digest --user='+MYSQL_USER+' --password='+ MYSQL_PASSWD + ' --port=3306 --review h='+SERVER_HOST+',D='+DB+',t='+TAB1+' --history h='+SERVER_HOST+',D='+DB+',t='+TAB2 +' --no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\\"'+hostname+'\\"" ' +LOG print cmd
subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
4.1 由于anemometer服务器是通过上面python脚本所配置的hostname定义来反过来访问各被监控的服务器,用于获取执行计划等相关信息。
所以,如果hostname如果配置的不是Ip,那么还需在anemometer服务器192.168.17.205上配置hosts文件:
[root@oracle conf]# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.21 MySQL-M--
4.2 可能默认配置下,该平台所显示的内容并不是自己想要的
例如单个查询的过去90天历史记录里,它是以ts_min为group by的,这会只显示一条数据,而不是每天的数据,我改成了ts_max。
另外,ts_cnt也是Sum出来的,如果我们5分钟收集一次日志,这个结果完全不是想要的,我这里添加了一行配置:'query_cnt' => 'MAX(ts_cnt)',
并且将history_defaults和report_defaults的table_fields配置中将ts_cnt改为了query_cnt:
通过以上配置,系统所显示的值基本与预期相符。
本文链接:http://www.cnblogs.com/ajiangg/p/8258926.html
关于Box Anemometer的安装配置遇到的几个坑的更多相关文章
- Gulp的安装配置过程和一些小坑
谈谈gulp. 项目尾声,老师叫我去熟悉一下grunt前端自动化工具,第一次知道这种东西,我就查各种资料啊,发现grunt已经‘过时’了,大家都用gulp和webpack.我当然选择了配置最简单的gu ...
- Win10 安装配置 MongoDB 4.0 踩坑记
redis 官方没有 Windows 版的,微软维护的已经好久没更新了,所以就在想着换成 MongoDB. 于是一趟被我复杂化的踩坑之旅就开始了,同时也记录一下,避免有人遇见跟我一样的问题. 首先在 ...
- webpack4.0在Mac下的安装配置及踩到的坑
一.什么是webpack是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源.它做的事情是,分析你的项目结构,找到JavaScript模块以 ...
- Box Anemometer
https://sourceforge.net/projects/pydev/files/pydev/ Eclipse + Pydev 配置Python开发环境 JDK安装http://jingyan ...
- Hive on Spark安装配置详解(都是坑啊)
个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...
- 长平狐 Android-x86虚拟机安装配置全攻略
Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这篇文章能把主要的配置介绍给您,帮助您少走一些弯路. 本文分别针对VMWare和Virtual Box两种虚拟机介绍安装配置 ...
- Android-x86虚拟机安装配置全攻略
转自Android-x86虚拟机安装配置全攻略 注:这里安装从简,具体请参考虚拟机Vmware安装运行安卓4.0详细教程 Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这 ...
- 画图工具Graphviz安装配置
Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形.它也提供了供其它软件使用的库 ...
- Vagrant安装配置
转载自:https://my.oschina.net/u/3424381/blog/888205 Vagrant安装配置 实际上Vagrant只是一个让你可以方便设置你想要的虚拟机的便携式工具,它底层 ...
随机推荐
- 西安活动 | 9月15号 "拥抱开源, 又见.NET" 线下交流活动
随着.NET Core的发布和开源,.NET又重新回到了人们的视野.除了开源.跨平台.高性能以及优秀的语言特性,越来越多的第三方开源库也出现在了github上——包括ML.NET机器学习.Xamari ...
- Mysql 调优和水平扩展思路
系统调优参数 一些比较重要的参数: back_log:back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中.如果MySql的连接数据达到max_connecti ...
- Ubuntu 16.04 安装 VMware Tools(解决windows和Ubuntu之间不能互相复制粘贴文件的问题)
Ubuntu 16.04安装虚拟工具VMware Tools,指的是在虚拟机VMWare安装Ubuntu 16.04后再安装VMware Tools的过程.很多人接触Linux都是从虚拟机开始,而安装 ...
- Java 并发编程-再谈 AbstractQueuedSynchronizer 3 :基于 AbstractQueuedSynchronizer 的并发类实现
公平模式ReentrantLock实现原理 前面的文章研究了AbstractQueuedSynchronizer的独占锁和共享锁,有了前两篇文章的基础,就可以乘胜追击,看一下基于AbstractQue ...
- nginx proxy_pass 代理域名
一.描述 1.nginx配置转发的时候使用的是域名,即使用dns服务方便配置和负载.但是nginx默认会进行缓存,当域名对应的服务出问题的时候就会报错,只有默认的缓存时间到了才会再次进行解析,ngin ...
- api网关揭秘--spring cloud gateway源码解析
要想了解spring cloud gateway的源码,要熟悉spring webflux,我的上篇文章介绍了spring webflux. 1.gateway 和zuul对比 I am the au ...
- RabbitMQ系列(六)你不知道的RabbitMQ集群架构全解
前言 本文将系统的介绍一下RabbitMQ集群架构的特点.异常处理.搭建和使用中要注意的一些细节. 知识点 一.为什么使用集群? 二.集群的特点 三.集群异常处理 四.集群节点类型 五.集群搭建方法 ...
- input的三个属性autocomplete、autocapitalize和autocorrect
下面的input的三个属性是H5新增的属性 <input type="text" class="input-search" placeholder=&qu ...
- 发生服务器错误: Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory
在hue上配置Mysql的时候,出现的错误: 发生服务器错误: Error loading MySQLdb module: libmysqlclient.so.18: cannot open sha ...
- 2018年,JavaScript都经历了什么?
摘要: 对JSer来说,这是很有意思的1年. 本文灵感来自JavaScript Weekly周报,欢迎大家订阅. The State of JavaScript 2018 The State of J ...