1. 环境准备

两台ubuntu 16.04

服务器内网IP   作用   安装软件
172.16.4.11                 监控的服务端                Prometheus(服务端软件) Grafana(数据展示)
172.16.4.12 被监控的客户端

node_exporter(收集服务器数据)

mysqld_exporter(收集mysql数据)

2. 客户端安装 node_exporter

 node_exporter 主要用于获取CPU,内存,IO,网络,硬盘等基础数据

下载安装node_exporter

#下载解压node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz tar zxvf node_exporter-0.17.0.linux-amd64.tar.gz mv node_exporter-0.17.0.linux-amd64 /opt/node_exporter

 

启动node_exporter

   cd /opt/node_exporter

   nohup ./node_exporter &

查看启动端口

tail -f  nohup.out

设置允许端口访问  sudo ufw allow 9100

可以在内网通过 http://172.16.4.12:9100/metrics 查看客户端数据

3. 客户端安装 mysqld_exporter

mysqld_exporter 主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标

下载安装mysqld_exporter

#下载解压mysqld_exporter
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz tar zxvf mysqld_exporter-0.11.0.linux-amd64.tar.gz mv mysqld_exporter-0.11.0.linux-amd64 /opt/mysqld_exporter

  

配置数据库连接

创建监控用的mysql用户

  mysql -u root -p

输入root账号密码后,创建用户


create user 'mysql_monitor'@'%' identified by 'monitor123456';

grant replication client, process on *.* to mysql_monitor@"%" identified by "monitor123456";

grant select on performance_schema.* to mysql_monitor@"localhost";

进入mysqld_exporter安装目录创建.my.cnf配置文件

cd /opt/mysqld_exporter
vim .my.cnf

添加如下配置

[client]
user=mysql_monitor
password=monitor123456

启动 mysqld_exporter

nohup ./mysqld_exporter --config.my-cnf=.my.cnf &

查看启动端口

tail -f nohup.out

设置允许端口访问  sudo ufw allow 9104

可以在内网通过 http://172.16.4.12:9104/metrics 查看mysql的相关监控数据

4. 服务端安装 Prometheus

安装 Prometheus

sudo wget https://github.com/prometheus/prometheus/releases/download/v2.8.1/prometheus-2.8.1.linux-amd64.tar.gz
tar zxvf  prometheus-2.8..linux-amd64.tar.gz
mv  prometheus-2.8.1.linux-amd64  /opt/prometheus

  

配置 Prometheus

cd /opt/prometheus

vi prometheus.yml

在 配置文件中增加对客户端的节点和数据库的监控配置

- job_name: 'mysql'
static_configs:
- targets: ['172.16.4.12:9104']
labels:
instance: 'db1'

- job_name: 'node'
static_configs:
- targets: ['172.16.4.12:9100']
labels:
instance: 'nd1'

截图如下

启动 Prometheus

 

nohup ./prometheus --config.file=./prometheus.yml &

访问:http://172.16.4.11:9090/ 即可打开Prometheus 网页

点击 Status --》 Target 即可看到我们的node和mysql的监控数据

 5. 安装可视化数据展示Grafana

下载Grafana

sudo apt-get -y install wget

wget https://dl.grafana.com/oss/release/grafana_6.0.0-beta1_amd64.deb 

sudo apt-get -f install

sudo dpkg -i grafana_6.0.0-beta1_amd64.deb

运行Grafana

systemctl start grafana-server

设置为开机启动

sudo systemctl enable grafana-server

 打开3000端口

sudo ufw allow 

启动后可以通过 http://172.16.4.11:3000/ 访问

 登录设置

初始密码 admin/admin ,

  1. 添加一个data source ,使Grafana从Prometheus读取数据

  2. 导入对node监控的DashBoard

   首先去网站  https://grafana.com/grafana/dashboards 下载对主机监控的Dashboard

   搜素 Node Exporter

 

点开第一个 ,拷贝对应的Dashboard Id  8919

 

 回到我们的图形监控平台Grafana,Dashboard ---> import 

 输入 dashboard ID 8919,选择数据源为prometheus即可

3. 导入 mysql对应的监控面板 

同上面的node监控面板一样,搜索关键字 mysql overview .找到对应的dashboard id  7362

 然后同上 添加Dashboard ---》 import 导入该面板

到目前为止node和mysql的面板都导入成功

4.  点击具体的面板即可查看具体的面板信息

  4.1  node面板

4.2 mysql面板

5. 插件安装

上面的node面板,有个图片显示不全需要安装插件

# 列出所有的可用插件

grafana-cli plugins list-remote

#安装我们需要的插件

grafana-cli plugins install bargauge

#插件安装后重启grafana
systemctl restart grafana-server

至此,对node和mysql的监控平台搭建完成,后续也可以配置一些alert,当符合一定条件时可以邮件或者钉钉通知告警

Prometheus 监控平台的搭建的更多相关文章

  1. 基于Prometheus和Grafana的监控平台 - 环境搭建

    相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics. Logging - 用于记录离散的事件.例如,应用程序的调试信息或错误信息.它是我们诊断问题的依据. ...

  2. cat监控平台环境搭建

    项目地址:https://github.com/dianping/cat 编译步骤: 这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提 ...

  3. cat监控平台环境搭建 专题

    项目地址:https://github.com/dianping/cat 编译步骤: 这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提 ...

  4. Docker系列——Grafana+Prometheus+Node-exporter服务器监控平台(一)

    在最近的博文中,都是介绍监控平台的搭建,其实并不难,主要是需要自己动手操作,实践一番就会了. 有天在想,云上的服务器,是不是也可以搭建一个监控平台,所以就捣鼓了一下,不过遗憾的是,使用阿里云开源的插件 ...

  5. 使用Prometheus监控SpringBoot应用

    通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用.(本文以SpringBoot 2.1.9.REL ...

  6. Grafana+Prometheus监控mysql性能

    #cmd /usr/local 今天讲一下如何监控服务器中的mysql数据库的性能 一.数据库操作 1.mysql启动 #service mysqld start #启动数据库 #service my ...

  7. 性能测试监控平台Grafana的使用

    Grafana的监控是基于数据库的,通过插件获取到服务器性能并存储到数据库中,然后使用Grafana连接数据库形成可视化的图表.本篇给大家介绍对服务器的性能的监控,下一篇会介绍对于mysql数据库的监 ...

  8. cAdvisor0.24.1+InfluxDB0.13+Grafana4.0.2搭建Docker1.12.3 Swarm集群性能监控平台

    目录 [TOC] 1.基本概念 ​ 既然是对Docker的容器进行监控,我们就不自己单独搭建cAdvisor.InfluxDB.Grarana了,本文中这三个实例,主要以Docker容器方式运行. 本 ...

  9. 基于Prometheus和Grafana的监控平台 - 运维告警

    通过前面几篇文章我们搭建好了监控环境并且监控了服务器.数据库.应用,运维人员可以实时了解当前被监控对象的运行情况,但是他们不可能时时坐在电脑边上盯着DashBoard,这就需要一个告警功能,当服务器或 ...

随机推荐

  1. [LC] 58. Length of Last Word

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  2. python后端面试第三部分:数据储存与缓存相关--长期维护

    1. 列举常见的关系型数据库和非关系型都有哪些?2. MySQL常见数据库引擎及比较?3. 简述数据三大范式?4. 什么是事务?MySQL如何支持事务?5. 简述数据库设计中一对多和多对多的应用场景? ...

  3. 吴裕雄--天生自然Android开发学习:1.2 开发环境搭建

    现在主流的Android开发环境有: ①Eclipse + ADT + SDK ②Android Studio + SDK ③IntelliJ IDEA + SDK 现在国内大部分开发人员还是使用的E ...

  4. percent|Cane|confess|ballot|conceal

    You got 20 percent of the answers right - that means one in every five.你20%的答案是对的,也就是说每5个中有1个是对的. N- ...

  5. 第十六届“二十一世纪的计算”学术研讨会 牛津大学肿瘤成像学教授Michael Brady主题演讲

    Computing and Healthcare 牛津大学肿瘤成像学教授Michael Brady主题演讲" title="第十六届"二十一世纪的计算"学术研讨 ...

  6. mysql 存储过程与存储函数

    第一节:存储过程和函数的引入 存储过程和函数是在数据库中定义一些SQL 语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL 语句.存储过程和函数可以避免开发人员重复的编写相同的SQL ...

  7. 经典题型-打印小星星(python)

    # * # * * # * * * # * * * * # * * * * * x = 0 while x < 5: x += 1 # 每次循环需要给y赋值0.清空y中存储的值 y = 0 wh ...

  8. mac命令日常总结

    查看某个端口被占用 lsof -i tcp:8080 kill进程: 找到进程的PID,使用kill命令:kill -9 716(PID) date 显示系统日期 mkdir xx 创建xx目录 rm ...

  9. RPC 框架性能大比拼

    Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. Motan 是新浪微博开源的一个Java ...

  10. python 组件

    组件:JQueryUI.EasyUI.BootStrap 每一个框架都要学习它们的规则.