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数据源)

  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.scopedVars\4var \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. Android--多媒体操作
  2. Maven下SiteMesh的使用
  3. 【英语】Bingo口语笔记(76) - 不知如何应答的场景对话
  4. 14的路 MySQL的btree索引和hash索引的区别
  5. 【Unity3D】自动寻路(Nav Mesh Agent组件)
  6. 在使用Fake framework的时候,为什么有一些函数没有生产mock呢?
  7. 10.11 noip模拟试题
  8. 电子科大POJ &quot;统计单词&quot;
  9. 在SAE上搭建自定义版本WordPress, 并用SAE Storage代替WordPress Uploads
  10. macOS apache配置及开启虚拟服务器的开启,apache开启重写模式
  11. Linux命令语句秘籍
  12. Oracle子查询中any、some、all之间的区别
  13. Java为什么需要保留基本数据类型
  14. layui 轮播图动态数据不显示问题
  15. springcloud-1: 用官方的pom.xml配置添加依赖失败
  16. Uncaught InvalidStateError: Failed to set the &#39;value&#39; property on &#39;HTMLInputElement&#39;: This input element accepts a filename, which may only be programmatically set to the empty string.
  17. 第二节《Git暂存区》
  18. Python 学习图谱
  19. 总目录(Catalog)
  20. 【Java】一台服务器配置多个Tomcat

热门文章

  1. node linux
  2. HTML 基础 块级元素与行内元素
  3. chrome常用小插件
  4. CRC校验3种算法_转载
  5. Linux查看History记录加时间戳小技巧
  6. unigui 设置单元格颜色
  7. 混合式应用开发之AngularJS ng-repeat数组有重复值的解决方法
  8. Java-String类型的参数传递问题
  9. D14——C语言基础学PYTHON
  10. 解决Fiddler抓不到HTPPS