• Box Anemometer搭建

    背景

    慢查询是日常运维工作中定位数据库问题的重要日志,但它本身的生成是杂乱无序的,今天介绍一款工具可以将慢查询收集整理并根据需求展示:Box Anemometer 。

    官方网址:https://github.com/box/Anemometer

    比如有如下环境需要搭建Box环境:

    角色 IP地址
    Box 运行服务器 123.250.12.1
    MySQL Master 123.250.12.2
    MySQL Slave1 123.250.12.3
    MySQL Slave2 123.250.12.4

    下载安装

    一、Box 相关环境准备

    1.1 在三台MySQL的服务器上安装Percona Toolkit

    具体可参考Persona的官方文档

    1.2 在Box运行的服务器上安装LAMP环境

    安装httpd php版本要大于5.3,否则就报错,除此之外还需要:bcmath,php必须支持pdo_mysql、php_mysqli模块。

    1.3 测试你的LAMP环境

    然后访问Httpd的状态页,浏览器输入:123.250.12.1:8096 访问即可 (我配置的web端口是8096)

    %e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-02-%e4%b8%8b%e5%8d%885-32-11

    1.4 在Box运行的机器下载安装Box anemometer

    1.5 配置Box 运行机器的数据库

    1.6 配置Box 环境

    1.7 尝试访问 123.250.12.1:8096/anemometer

    如果无法访问,可以查看 /etc/httpd/logs/error_log 日志。

    二、安装配置慢查询收集脚本

    安装完Box Anemometer 后自带了一个  /var/www/html/anemometer/scripts/anemometer_collect.sh  慢查询收集的脚本,所以我们需要把这个脚本放在每个MySQL服务器上。

    默认的脚本让我用起来不是很爽,所以改了一下,比如Master的脚本如下:

    如上,为了顺利运行如上脚本,还需要在每个MySQL服务器上初始化如下环境:

    三、测试慢查询收集脚本,并加入crontab

    直接在MySQL的机器上运行慢查询收集脚本,如果顺利执行完成,则Box运行的机器上的数据库里面应该就有对应的数据了,而我们在Box的页面上也可以顺利访问了。

    最后将此脚本加入crontab定时执行即可:

    四、Http加入登录认证

    我们开始使用此系统后,发现它并没有自带的账户认证体系,这样交付给RD使用时感觉有点low啊,不过我们可以借助HTTPD本身的认证功能:

    1. 在Http配置文件下添加如下配置

    2.在指定目录下增加.htaccess文件

    3.增加.htpasswd文件

    输入上面命令,htpasswd目录写自己的目录,最后一个参数即为登录账号名,会提示输入两次密码。
    最后重启apache。

    %e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-11-28-%e4%b8%8b%e5%8d%882-40-56

    如上,输入刚才设置的用户名和密码即可。