• Prometheus+Grafana打造Mysql监控平台


    1. prometheus/node_exporter/mysqld_exporter都是由go语言编写,需要先安装GoLang环境

    2. 下载node_exporter(监控服务器的CPU、内存、存储使用情况)和mysqld_exporter放到Mysql服务器(被监控端)

      • 需要为mysqld_exporter在Mysql数据库新建一个用户,并赋予相应权限
       CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
      GRANT 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"
        
    3. 下载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所在服务器的IP;9100为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所在服务器的IP;9100为mysqld_exporter暴露的端口
                - targets: ['192.168.1.7:9104']
                  labels:
                    instance: db1
      
    4. 启动prometheus,并查看配置的Linux和Mysql节点状态是否为Up

    5. 下载Grafana,并按文档安装

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

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

    8. 正常情况下可以看见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.expr,3.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.安装成功结果如下图:
    mysql overview
    system overview
    mysql innodb metrics

  • 相关阅读:
    input输入框的各种样式
    Spring JdbcTemplate方法详解
    TF/IDF计算方法
    分布式日志收集系统--Chukwa
    分布式日志系统
    Iframe知识点
    拖拽事件
    面向对象知识点
    JS使用合并数组
    块元素block,内联元素inline; inline-block;
  • 原文地址:https://www.cnblogs.com/mycodingworld/p/9804493.html
Copyright © 2020-2023  润新知