导航

感谢您的阅读,预计阅读时长3min。 智客工坊出品必属精品。

引子

互联网时代,一切以互联网为核心,IT的边界被完全打开,IT系统不再是为企业内部管理提供支撑,而是为亿万互联网用户提供各种线上服务。因此,IT部门成为了互联网企业的核心,而保障线上业务持续、稳定运行,也是互联网企业的第一使命。

故障发生时,要求互联网运维能够第一时间发现问题,并快速定位问题。依靠人工巡检的传统运维管理方式严重落后,因此,自动化运维逐渐流行。这就对互联网运维工程师的开发能力提出了更高的要求,熟悉Python之类的脚本语言只是基础,玩得转各种开源监控系统,能够根据业务特点和企业需求定制开发自动化监控和告警工具。

今天我们就来一起认识一个开源监控工具——Prometheus

在开始之前,我们先来欣赏一下prometheus监控报表图:


前言

什么是Prometheus?

Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus于2016年加入了云原生计算基金会,这是继Kubernetes之后的第二个托管项目。

从全局视角了解云原生生态可以直接看CNCF全景图

特性

Prometheus的主要特性:

  • 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据
  • PromQL,一种可利用此维度的灵活的查询语言
  • 不依赖分布式存储;单服务器节点是自治的
  • 时间序列收集通过HTTP上的拉模型进行
  • 通过中间网关支持推送时间序列
  • 通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持模式

组件

Prometheus生态系统包含多个组件,其中许多是可选的:

  • Prometheus server主服务器,它会抓取并存储时间序列数据
  • client libraries,用于检测应用程序代码
  • push gateway,一个支持短期工作的推送网关
  • 诸如HAProxy,StatsD,Graphite等服务的exporters
  • alertmanager,一个处理警报的报警器
  • 各种各样的支持工具

架构

下图说明了Prometheus的体系结构及其某些生态系统组件:


Prometheus直接或通过中介推送网关从已检测作业中删除指标,以处理短暂的作业。它在本地存储所有报废的样本,并对这些数据运行规则,以汇总和记录现有数据中的新时间序列,或生成警报。Grafana或其他API使用者可以用来可视化收集的数据。

什么时候适合?

Prometheus可以很好地记录任何纯数字时间序列。它既适用于以机器为中心的监控,也适用于高度动态的面向服务的体系结构的监控。在微服务世界中,它对多维数据收集和查询的支持是一种特别的优势。

Prometheus的设计旨在提高可靠性,使其成为中断期间要使用的系统,以使您能够快速诊断问题。每个Prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务。当基础结构的其他部分损坏时,您可以依靠它,并且无需设置广泛的基础结构即可使用它。

什么时候不合适

Prometheus重视可靠性。即使在故障情况下,您始终可以查看有关系统的可用统计信息。如果您需要100%的准确性(例如按请求计费),则Prometheus并不是一个好的选择,因为所收集的数据可能不够详细和完整。在这种情况下,最好使用其他系统来收集和分析数据以进行计费,并使用Prometheus进行其余的监视。

环境准备

环境准备

运维自动化已经不再是新鲜名词,特别是随着Devops思想的影响下,越来越多的互联网产品公司已经开始搭建属于自己的运维自动化平台,甚至个别公司已经走在了AIDevOps实践的路上。

早些年,互联网产品公司很多都要自建运维平台(财大气粗的公司),相关文章可以查看《运维自动化平台之路》,但是随着云服务的普及,云服务厂商也提供了更多运维付费服务(当然是收费的,价格也是不菲的)。比如,阿里云的日志服务,早期我们是需要自己搭建ELK的。但是,很多公司基于成本考虑,亦或是有一些自定义的需求,会选择一些开源运维系统,比如,jenkins来实现自动化部署,grafana,prometheus来做一些监控等。

本教程基于prometheus+grafana+mysqld_exporter来搭建mysql监控服务。

Prometneus服务器

  • 一台centos 7 云服务器
  • 安装Prometneus
  • 安装grafana

被监控服务器

  • 一台centos 7 云服务器,作为数据存储服务器
  • 安装了mysql数据库
  • 安装mysqld_exporter

Notes: 为了更加接近生产环境,建议选择云服务器,不要使用虚拟机。

本教程服务器配置如下:

  • Linux 服务器版本

  • 内存

  • cpu 信息

安装Docker

Prometneus服务器

上一章节,我们已经提到Prometneus服务器。

  • 一台centos 7 云服务器
  • 安装docker
  • 安装Prometneus
  • 安装grafana

我们希望在该机器上安装Prometneus和grafana,然后通过他们管理和查看监控对象的报表。呈现结果如下:



yum安装docker

我们使用docker来安装Prometneus,所以首先得安装docker。

Notes: 安装步骤最好是参照docker官网。https://docs.docker.com/engine/install/centos/

(1) 卸载本机安装的所有版本的docker,如果机器之前没有安装过docker,可以跳过这步。

 sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

(2) 在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

 $ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

(3) 使用以下命令来设置稳定的仓库(这里推荐国内阿里云的源)

$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(4) 安装dokcer engin


$ sudo yum install -y docker-ce-cli

(4) 启动docker


$ sudo systemctl start docker

(5) 检测docker是否安装成功


$ sudo docker run hello-world

还可以通过检测docker是否安装成功


$ docker -v

也可以通过查看docker 状态


$ systemctl status docker

(6) 设置开机启动docker服务


$ systemctl enable docker

prometheus+grafana监控mysql最佳实践的更多相关文章

  1. prometheus+grafana监控mysql

    prometheus+grafana监控mysql 1.安装配置MySQL官方的 Yum Repository(有mysql只需设置监控账号即可) [root@localhost ~]# wget - ...

  2. [转帖]安装prometheus+grafana监控mysql redis kubernetes等

    安装prometheus+grafana监控mysql redis kubernetes等 https://www.cnblogs.com/sfnz/p/6566951.html plug 的模式进行 ...

  3. 使用Prometheus+Grafana监控MySQL实践

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采 ...

  4. 技术分享 | Prometheus+Grafana监控MySQL浅析

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 简介 Prometheus 一套开源的监控&报警&时间序列数据库的组合,通常 Kubernetes 中都会 ...

  5. Prometheus+Grafana监控MySQL、Redis数据库

    俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼.本文将使用prometheus及Grafana搭建一套监控系统来监控主机及数据库(MySQL.Redis). 1.  安装G ...

  6. Prometheus + Grafana 监控(mysql 和redis)

    1.监控MySQL(mysqld-exporter) https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/m ...

  7. 安装prometheus+grafana监控mysql redis kubernetes等

    1.prometheus安装 wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5 ...

  8. paip.python连接mysql最佳实践o4

    paip.python连接mysql最佳实践o4 python连接mysql 还使用了不少时间...,相比php困难多了..麻烦的.. 而php,就容易的多兰.. python标准库没mysql库,只 ...

  9. cAdvisor+Prometheus+Grafana监控docker

    cAdvisor+Prometheus+Grafana监控docker 一.cAdvisor(需要监控的主机都要安装) 官方地址:https://github.com/google/cadvisor ...

随机推荐

  1. Win32API使用技巧 -- 置顶应用

    Win32提供了SetForegroundWindow方法可以将应用设置到前台并激活,但是在某些场景下,只调用该接口会返回0,即设置失败.比如如下场景: 当前前台应用为一个全屏的应用,非前台应用的进程 ...

  2. Spring Boot 老启动失败,这次再也不怕了!

    Spring Boot 项目是不是经常失败,显示一大堆的错误信息,如端口重复绑定时会打印以下异常: *************************** APPLICATION FAILED TO ...

  3. python自动化测试生成HTML报告

    自动化测试结果执行完毕后,需要对测试结果进行查看,今天就来讲一讲如何生成HTML报告首先下载HTMLTestRunner.py文件,放在python安装目录的Lib文件夹下https://pan.ba ...

  4. HDOJ-1257(贪心/动态规划)

    最少拦截系统 HDOJ-1257 我做这题的思路就是采用暴力或者贪心.也就是每次循环选出从第一个未被选择的元素开始,依次把后面可以选择的元素作为一个系统.最后统计可以有多少个系统. 还有人的思路就是利 ...

  5. Shell脚本控制docker容器启动顺序

    1.遇到的问题 在分布式项目部署的过程中,经常要求服务器重启之后,应用(包括数据库)能够自动恢复使用.虽然使用docker update --restart=always containerid能够让 ...

  6. Kafka SASL ACL配置踩坑总结

    源起:工程现阶段中间件采用的是kafka.满足了大数据的高吞吐,项目间的解耦合,也增强了工程的容错率与扩展性.但是在安全这一块还有漏洞,kafka集群中,只要网站内的任何人知道kafka集群的ip与t ...

  7. Java 面向对象 02

    面向对象·二级 构造方法Constructor概述和格式 * A:构造方法概述和作用     * 给对象的数据(属性)进行初始化 * B:构造方法格式特点     * a:方法名与类名相同(大小也要与 ...

  8. 【MaixPy3文档】写好 Python 代码!

    本文是给有一点 Python 基础但还想进一步深入的同学,有经验的开发者建议跳过. 前言 上文讲述了如何认识开源项目和一些编程方法的介绍,这节主要来说说 Python 代码怎么写的一些演化过程和可以如 ...

  9. Spring 的 IOC

    1. 什么是IOC IOC的好处 IOC的思想是将需要的对象通过外部传入进来,而不是自己创建.这样的设计方式更加灵活.在Spring中对象之间的依赖关系也是由IOC容器来维护(类与类之间的依赖关系,使 ...

  10. TensorFlow学习(2)

    TensorFlow学习(2) 一.jupyter notebook的安装和使用 1. 什么是jupyter notebook jupyter notebook(http://jupyter.org/ ...