Prometheus+Grafana打造Mysql监控平台

发布日期:2019-05-18
    prometheus/node_exporter/mysqld_exporter都是由go语言编写,需要先安装GoLang环境下载node_exporter(监控服务器的CPU、内存、存储使用情况)和mysqld_exporter放到Mysql服务器(被监控端)需要为mysqld_exporter在Mysql数据库新建一个用户并赋予相应权限

    CREATE USER "exporter"@"localhost" IDENTIFIED BY "XXXXXXXX" WITH MAX_USER_CONNECTIONS 3GRANT PROCESS REPLICATION CLIENT SELECT ON *.* TO "exporter"@"localhost"配置mysql_exporter启动时连接mysql的用户名和密码环境变量方式:

    export DATA_SOURCE_NAME="user:password@(hostname:3306)/"./mysqld_exporter <flags>配置.my.cnf文件

    [client] user=exporter password=exporter 然后启动mysqld_exporter mysqld_exporter -config.my-cnf=".my.cnf"下载Prometheus放到监控端(或被监控端)。配置文件prometheus.yml

    scrape_configs: - job_name: prometheus static_configs: - targets: ["localhost:9090"] labels: instance: prometheus - job_name: linux static_configs: # 192.168.1.7为node_exporter所在服务器的IP9100为node_exporter暴露的端口 - targets: ["192.168.1.7:9100"] labels: #db1为实例名,以后在Grafana获取prometheus时,要配置prometheus所有服务器的host为db1 instance: db1 - job_name: mysql static_configs: # 192.168.1.7为mysqld_exporter所在服务器的IP9100为mysqld_exporter暴露的端口 - targets: ["192.168.1.7:9104"] labels: instance: db1

    启动prometheus并查看配置的Linux和Mysql节点状态是否为Up

    下载Grafana,并按文档安装

    下载Percona提供的Dashboards如果grafana与prometheus不在一台服务器,需要指定prometheus的主机名(此例中应该为db1)access要选择proxy,表示由grafana处理请求,而不是直接请求prometheus。

    启动Grafana,并添加Prometheus数据源(注意必须为"Prometheus",因为Percona提供的dashboards使用的是Prometheus数据源)

    正常情况下可以看见Mysql和System的仪表盘,如果显示不出来请检查下面几个方面

    - 检查Grafana和grafana-dashboards版本(grafana-4.2 匹配grafana-dashboards-1.3.2,不匹配当前最新版本1.15). - Grafana使用grafana用户运行,所以需要检查/etc/grafana/var/lib/grafana/usr/grafana目录所有者和用户组是否是grafana - 对于grafana 3.X版本,还需要做如下处理,参见[grafana-dashboards](https://github.com/percona/grafana-dashboards) > sed -i "s/expr=(.).replace((.).expr(.).scopedVars(.*)var (.)=(.).interval/expr=1.replace(2.expr3.scopedVars4var 5=1.replace(6.interval 3.scopedVars)/" /usr/share/grafana/public/app/plugins/datasource/prometheus/datasource.js > sed -i "s/range_input/.replace(/"{/g""").replace(/}"/g""")range_input/ s/step_input:""/step_input:this.target.step/" /usr/share/grafana/public/app/plugins/datasource/prometheus/query_ctrl.js - grafana所有服务器是否配置prometheus所有服务器的IP与Host映射,如上的Prometheus的配置,host应该配置成db1

9.安装成功结果如下图:

1 0 9)