1.1 Prometheus和Grafana概述
1.1.1 Prometheus概述
Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。现在最常见的Docker、Mesos、Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。 Prometheus [prəˈmiθju:s] 普罗米修斯
Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker 。
输出被监控组件信息的HTTP接口被叫做exporter。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等),具体支持的源看:https://github.com/prometheus。 exporter ([ekˈspɔ:tə®] 出口商)
对比主流的监控工具的操作界面:
nagios监控界面:

zabbix监控界面

Grafana+Prometheus监控界面:

通过上面的界面,我们可以看出来Grafana+Prometheus展示界面更美观
1.1.2 Prometheus 架构图解
普罗米修斯(Prometheus)及其一些生态系统组件的整体架构:

retrieval [rɪˈtriːvl] 数据检索
Prometheus各组件运行流程如下:
1、Prometheus Server:Prometheus Sever是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储及查询。Prometheus Server可以通过静态配置管理监控目标,也可以配合使用Service Discovery(服务发现)的方式动态管理监控目标,并从这些监控目标中获取数据。其次Prometheus Sever需要对采集到的数据进行存储,Prometheus Server本身就是一个实时数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。Prometheus Server对外提供了自定义的PromQL,实现对数据的查询以及分析。另外Prometheus Server的联邦集群能力可以使其从其他的Prometheus Server实例中获取数据。
2、Exporters:Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可以获取到需要采集的监控数据。可以将Exporter分为2类:
(1)、直接采集:这一类Exporter直接内置了对Prometheus监控的支持,比如cAdvisor,Kubernetes,Etcd,Gokit等,都直接内置了用于向Prometheus暴露监控数据的端点。
(2)、间接采集:原有监控目标并不直接支持Prometheus,因此需要通过Prometheus提供的Client Library编写该监控目标的监控采集程序。例如:Mysql Exporter,JMX Exporter,Consul Exporter等。
3、AlertManager:在Prometheus Server中支持基于Prom QL创建告警规则,如果满足Prom QL定义的规则,则会产生一条告警。常见的接收方式有:电子邮件,webhook 等。
4、PushGateway:Prometheus数据采集基于Prometheus Server从Exporter pull数据,因此当网络环境不允许Prometheus Server和Exporter进行通信时,可以使用PushGateway来进行中转。
Prometheus的工作流:
1.Prometheus server定期从配置好的jobs和exporters中拉取metrics,或者接收来自Pushgateway发送过来的metrics,或者从其它的Prometheus server中拉metrics。
metrics [ˈmetrɪks] 衡量指标
2.Prometheus server在本地存储收集到的metrics,并运行定义好的alerts.rules,记录新的时间序列或者向Alert manager推送警报。
3.Alertmanager根据配置文件,对接收到的警报进行处理,发出告警。
4.在图形界面中,可视化采集数据。
实验拓扑图:

搭建Prometheus+Grafana的云平台监控系统工作流程:
1、安装exporter(出口)采集数据
2、美化采集到的数据
3、在web界面查看
懂:1不懂:2
1.2 安装配置Prometheus监控服务
1、安装go语言环境
方法1:使用tar包安装go语言环境
上传到go1.13.3.linux-amd64.tar.gz到linux服务器上
或在线下载:
[root@xuegod63 ~]# wget -c https://storage.googleapis.com/golang/go1.13.3.linux-amd64.tar.gz
[root@xuegod63 ~]# tar -zxvf go1.13.3.linux-amd64.tar.gz -C /usr/local
[root@xuegod63 ~]# echo “export PATH=$PATH:/usr/local/go/bin” > /etc/profile.d/go.sh
[root@xuegod63 ~]# source /etc/profile.d/go.sh
[root@xuegod63 ~]# go

方法2:使用yum安装go语言环境
[root@xuegod63 ~]# yum install -y epel-release
[root@xuegod63 ~]# yum install go -y
[root@xuegod63 ~]# go version
扩展:
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
下载安装Prometheus(https://prometheus.io/download/)
[root@xuegod63 ~]#wget https://github.com/prometheus/prometheus/releases/download/v2.27.1/prometheus-2.27.1.linux-amd64.tar.gz
[root@xuegod63 ~]# tar zxvf prometheus-2.27.1.linux-amd64.tar.gz -C /usr/local/
[root@xuegod63 ~]# cd /usr/local/prometheus-2.27.1.linux-amd64/
修改prometheus配置文件,配置监控linux主机和mysql数据库,配置文件为yml语法,注意缩进对齐
[root@xuegod63 prometheus-2.7.1.linux-amd64]# vim prometheus.yml #在文档的最后插入以下内容

  • job_name: system-status
    static_configs:

    • targets: [‘192.168.1.64:9100’]
      labels:
      instance: xuegod64
  • job_name: mysql-status
    static_configs:

    • targets: [‘192.168.1.64:9104’]
      labels:
      instance: xuegod64-mysql
      插入时,要和文件之前的job_name保持对齐,如下图:

注释:

  • job_name: system-status #每一个job_name都是一个监控项,这里代表监控操作系统状态
    static_configs:

    • targets: [‘192.168.1.64:9100’] #被监控主机IP地址和端口
      labels:
      instance: xuegod64 #实例名称,在grafana中表示对应的主机。
  • job_name: mysql-status #监控mysql数据库状态
    static_configs:

    • targets: [‘192.168.1.64:9104’] #目标主机IP地址和端口
      labels:
      instance: xuegod64-mysql #实例名称,在grafana中表示对应的主机。
      [root@xuegod63prometheus-2.7.1.linux-amd64]# ./prometheus --config.file=prometheus.yml

出现以下信息吧表示启动成功。
或直接后台运行:
[root@xuegod63prometheus-2.7.1.linux-amd64]# nohup ./prometheus --config.file=prometheus.yml &
[root@xuegod63 ~]# systemctl stop firewalld && systemctl disable firewalld #关闭防火墙
浏览器输入http://192.168.1.63:9090

注:因为我们还没有开始配置xuegod64了,所以现在还获取不到xuegod64的信息
1.3 启动用于采集linux系统和mysql服务状态的exporter服务
prometheus常见的exporter及作用:
(1)、node_exporter用于监控操作系统的性能和运行状态
(2)、mysqld_exporter用于监控mysql服务
(3)、snmp_exporter用于监控网络设备
更多exporter可在官网下载:https://prometheus.io/download/#node_exporter

1、配置 node_exporter监控xuegod64运行状态
[root@xuegod64 ~]# systemctl stop firewalld && systemctl disable firewalld #关闭防火墙
上传node_exporter-1.1.2.linux-amd64.tar.gz到linux上。
[root@xuegod64 ~]# tar zxvf /root/node_exporter-1.1.2.linux-amd64.tar.gz -C /usr/local/
[root@xuegod64 ~]# nohup /usr/local/node_exporter-1.1.2.linux-amd64/node_exporter &
2、配置mysqld_exporter用于监控xuegod64上的mysql服务
(1)、安装数据库服务
[root@xuegod64 ~]# yum install mariadb-server mariadb -y
[root@xuegod64 ~]# systemctl start mariadb
[root@xuegod64 ~]# mysql #直接登录mysql
mysql> GRANT REPLICATION CLIENT,PROCESS ON . TO ‘mysql_monitor’@‘localhost’ identified by ‘123456’;
mysql> GRANT SELECT ON . TO ‘mysql_monitor’@‘localhost’;
MariaDB [(none)]> exit;
注:mysql 用户权限说明:
(1)、replication client权限 #拥有此权限可以查询master server、slave server状态。
(2)、PROCESS权限 #通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。如:
mysql> show processlist;
另外,管理权限 process不能够指定某个数据库,on后面必须跟*.*
(3)、select权限 #必须有select的权限,才可以使用select * from table 查看数据
(2)、安装mysqld_exporter

上传mysqld_exporter到linux系统上
[root@xuegod64 ~]# tar xf mysqld_exporter-0.13.0-rc.0.linux-amd64.tar.gz -C /usr/local/
创建隐藏配置文件.my.cnf,用于mysqld_exporter连接mysql采集数据。
[root@xuegod64 ~]# vim /usr/local/mysqld_exporter-0.13.0-rc.0.linux-amd64/.my.cnf
[client]
user=mysql_monitor
password= 123456
[root@xuegod64 ~]# nohup /usr/local/mysqld_exporter-0.13.0-rc.0.linux-amd64/mysqld_exporter --config.my-cnf=“/usr/local/mysqld_exporter-0.13.0-rc.0.linux-amd64/.my.cnf” &
在web界面,再次查看监控信息已经成功添加linux 和mysql节点,已经up了
浏览器输入http://192.168.1.63:9090

查看网络端口:
[root@xuegod64 ~]# netstat -antup | grep 91
tcp6 0 0 :::9100 ::

搭建Prometheus+Grafana的云平台监控系统相关推荐

  1. 提高电力物联网云平台监控系统应用能力的实践研究

    摘要: 新时期,随着物联网云平台技术的不断发展,进一步为电力企业发展提供了有效的技术助力.在电力系统中,有效引入物联网云平台技术,有利于提高监控系统建设水平.因此,在进行实践研究过程中,要有效提高对于 ...

  2. 季冠CPM云平台监控系统——自动化链路的性能检测工具

    网络监测 自动化 智能化 在互联网高度发展的今天,我们每一个人都有过被网络支配的恐惧,除了手机没电,最害怕的就是网络卡顿和网络延迟. 尤其是对于线下实体门店.互联网公司.工厂及酒店等多分支网点企业来说 ...

  3. 浅析电力物联网云平台监控系统分析

    安科瑞王丹丹acrel2021 摘要:新时期,随着物联网云平台技术的不断发展,进一步为电力企业发展提供了有效的技术助力.在电力系统中,有效引入物联网云平台技术,有利于提高监控系统建设水平.因此,在进行 ...

  4. 使用Prometheus+grafana打造高逼格监控平台

    前言: 笔者看来, 监控不应该只是监控,除了及时有效的报警,更应该"好看",因为视觉上的感受更能给我们直观的感受,更能从绚丽的走势中发现异常, 如果你觉得监控就应该像老牌监控nag ...

  5. linux 轮巡监控进程,一种基于云平台的系统监控方法专利_专利申请于2015-01-06_专利查询 - 天眼查...

    1. 一种基于云平台的系统监控方法,其特征在于含有以下步骤: 步骤1.数据信息采集步骤: 对被管资源的数据采集支持"自动发现"和手工输入两种方式配置被监测对象的配置 参数,并通过主 ...

  6. (四) prometheus + grafana + alertmanager 配置Kafka监控

    安装请看https://blog.51cto.com/liuqs/2027365 ,最好是对应的版本组件,否则可能会有差别. (一)prometheus + grafana + alertmanage ...

  7. 0基础搭建Prometheus+Grafana监控服务器CPU、磁盘、内存等信息

    这里写自定义目录标题 0基础搭建Prometheus+Grafana监控服务器CPU.磁盘.内存等信息 1.实验环境准备 2.基础环境配置 3.部署prometheus 4.部署Grafana可视化图 ...

  8. 云平台设计系统,助力业务快速开发

    用友进入3.0阶段,敏捷开发.逆向开发.双披萨饼原则快速作战,"用户之友"价值回归,这些都为快速原型.高保真验证.快速开发.体验一致提出了更高的要求.也带来了更大的压力. 新的变化 ...

  9. 基于 HTML5 的工业互联网云平台监控机房 U 位

    前言 机柜 U 位管理是一项突破性创新技术--继承了 RFID 标签(电子标签)的优点的同时,完全解决了 RFID 技术(非接触式的自动识别技术)在机房 U 位资产监控场应用景中的四大缺陷,采用工业互 ...

最新文章

  1. 半导体二极管的直流电阻和动态电阻如何区别?
  2. shopex安装Zend Optimizer - 3.3.0后依然乱码
  3. 正面管教php_佛山市第三中学正面管教家长工作坊PHP分享会
  4. php递归算法排序,php全排列递归算法代码
  5. Mysql、navicat、SQL server 的关系
  6. Alt属性 添加的意义
  7. java中设置http响应头控制浏览器禁止缓存当前文档内容
  8. NOIP2016滚粗记
  9. C++11 auto类型推导
  10. 医疗物联网行业调研报告 - 市场现状分析与发展前景预测
  11. ubuntu 服务器 ip修改,修改Ubuntu server ip地址
  12. MongoDB for MAC 下载及安装
  13. 腾讯云文档数据库MongoDB怎么样?腾讯云文档数据库MongoDB有什么优点?
  14. 【翻译】十大要避免的Ext JS开发方法
  15. 电脑被格式化后数据还能恢复吗【图文】
  16. 蓝桥杯省赛 砝码称重(B组)
  17. VIVADO 11.Divider除法器IP
  18. Redis数据库常用操作命令(查询db、key、value)
  19. 《第一行代码》封面诞生记
  20. Openstack中为虚拟机挂载ISO镜像

热门文章

  1. 印度斯佩格spegra
  2. Android APK瘦身/减小包体
  3. 羊皮卷之六:今天我学会控制情绪
  4. 新手学习:根据生日计算当前年龄
  5. 分区软件——MiniTool
  6. Go程序设计语言3.3 复数
  7. Xcode SDK模拟器安装及安装路径
  8. Android开发指南!Android面试题集2021版,深度好文
  9. OpenCV完整教程专栏完整目录
  10. State(状态模式)行为型