导航

感谢您的阅读,预计阅读时长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. Kubernetes-6.Service

    docker version:20.10.2 kubernetes version:1.20.1 本文概述Kubernetes Service的基本原理和使用. 服务 Service是将运行在一组Po ...

  2. C++入门(1):计算机组成

    系列文章尽在 | 公众号:lunvey 学习C++之前,我们有必要了解一下计算机的简单组成,毕竟C++是需要操作内存的一门语言.大家或许知道内存是什么,但是内存怎么读取和操作数据以及数据的表现形式会不 ...

  3. 利用Visual Studio调试JavaScript脚本

    方法1: 方法2: 打开IE,按F12调试. 方法3: JS断电点debugger代替

  4. 小心你的个人信息——GitHub 热点速览 v.21.09

    作者:HelloGitHub-小鱼干 浏览过必有痕迹,有什么可以抹去社交痕迹的方法呢?social-analyzer 是一个可在 350+ 网站分析特定用户资料的工具,你可以用它来"人肉&q ...

  5. (三)String、StringBuilder、StringBuffer在字符串操作中的性能差异浅析

    参考资料:https://www.iteye.com/blog/hank4ever-581463 <Core Java Volume I-Fundamentals>原书第十版 <Ja ...

  6. nginx错误分析 `104: Connection reset by peer`

    故障描述 应用从虚拟机环境迁移到kubernetes环境中,有些应用不定时出现请求失败的情况,且应用没有记录任何日志,而在NGINX中记录502错误.我们查看了之前虚拟机中的访问情况,没有发现该问题. ...

  7. Python命令开启http.server服务器

    如果想把命令E:\zpic作为提供下载的目录,那么在cmd里cd到该目录下,并执行命令:python -m SimpleHTTPServer 默认的端口号是8000, 服务器根目录就是运行python ...

  8. C# 基础 - 日志捕获一使用 StreamWriter

    public static class LogHelper { private static readonly string _baseDir = AppDomain.CurrentDomain.Ba ...

  9. 图文详解:内存总是不够,我靠HBase说服了Leader为新项目保驾护航

  10. [LeetCode]1. 两数之和(难度:简单)

    题目: 给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标.你可以假设每种输入只会对应一个答案.但是,数组中同一个元素在答案里不能重复 ...