热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Prometheus监控系列之一:Prometheus监控入门

完善的监控流程体系是一个公司非常重要的部分。接下来会根据下图进行解释监控流程中的部分1、监控系统设计(运维架构师):这部分是由运维架构师进

    完善的监控流程体系是一个公司非常重要的部分。接下来会根据下图进行解释监控流程中的部分

1、监控系统设计(运维架构师):

    这部分是由运维架构师进行设计,设计部分主要包括如下内容:

  • 评估系统的业务流程、业务种类、架构体系

    各个企业的产品不同、业务方向不同、程序代码不同、系统架构更不同,对各个地方细节需要有一定程度的认知。

  • 分类出所需的监控大分类

    一般可以分为:业务级别监控系统级别监控网络监控程序代码监控日志监控用户行为分析监控以及其他种类监控。如:

  1. 业务监控    包含用户访问QPS、DAU日活、访问状态(http code)、业务接口(登陆,注册,聊天,留言,上传,搜索等)、产品转化率等;
  2. 系统监控    CPU/内存/磁盘/IO/TCP链接/流量等(zabbix/Prometheus);
  3. 网络监控    交换机、路由器、防火墙、VPN;
  4. 日志监控    监控的重头戏(Splunk、ELK),往往单独设计,全部种类的日志都需要采集
  5. 程序监控    需要与开发配合,代码中嵌入接口,直接获取数据或者特质的日志格式(json)

 

2、监控系统搭建

  • 单点服务器的搭建(Prometheus)
  • 单点客户端的部署
  • 单点客户端服务器测试
  • 采集程序单点部署
  • 采集程序批量部署
  • 监控服务端HA/Cloud(自己定制)
  • 监控数据图形化搭建(Grafana)
  • 报警系统测试(Pagerduty)
  • 报警规则测试
  • 监控+报警联合测试
  • 正式上线监控

 

3、数据采集编写

    可选用脚本作为数据采集,如:shell/python/go等。作为监控数据采集,首推shell/python

   数据采集的形式分类:

  • 一次性采集:使用比较简单的shell    ./monitor.sh +crontab的形式 按10秒  30秒 一分钟这样的频率去单词采集

    优势:稳定性好,不容易出现各种错误和性能瓶颈,且开发逻辑简单 实现快速

    劣势:实现不够智能

  • 后台式采集:  采集程序以守护进程运行在Linux后台,持续不断的采集数据;Prometheus exporter例如python/go开发的daemon程序,后台持续不断的采集

    优势:数据准确度高,采集密度惊喜,管理方便

    劣势:如果开发不够仔细,可能会出现内存泄漏,僵尸进程,性能瓶颈等问题,且开发周期时间长

  • 桥接式采集:  本身以后台进程运行,但是采集不能独立,依然跟服务器关联,以桥接方式收集采集数据

 

4、监控稳定测试

   不管是一次性采集,还是后台采集,只要实在Linux上运行的定西都会多多少少对系统产生一定的影响。稳定性测试就是通过一段时间的单点部署观察,对线上有没有任何影响。

 

5、监控自动化

     监控客户端的批量部署,监控服务端的HA再安装,监控项目的修改,监控项目的监控集群变化。这些地方需要大量的人工。这时,自动化引入会很大程度上缩短对监控系统的维护成本。如:Puppet(配置文件部署)、Jenkins(CI持续集成部署)、CMDB(运维自动化的最高资源管理平台和理念)等。

 

6、监控图形化工作

        采集的数据和准备好的监控算法,最终需要一个好的图形展示,才能发挥最好的作用。监控的设计搭建需要大量的技术知识,但是对于一个观察者来说,往往不需要多少技术,只要能看懂图就好(老板想看看当前用户访问量情况,想看看整体CPU高不高)

 

Prometheus是什么?


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


Prometheus优势:


  • 基于time series时间序列模型(数字,数学)

    时间序列(time series x,y)是一系列有序的数据。通常是等时间间隔的采样数据。

  • 基于K/V数据模型

    key/value键值  {disk_size: 80},最大的好处是数据格式简单、速度快、易维护开发。

  • 采样数据的查询

     完全基于数学运算,而不是其他的表达式,并且提供专有的查询输入console。所有的查询都是基于数学运算公式的,例如:(增量(A)+增量(B))/总增量(C)>固定百分比

  • 采用http pull/push两种对应的数据采集传输方式

    所有的数据采集,都是基本采用HTTP,而且分为pull和push拉和推两种方式去写采集程序,非常方便。

  • 开源,大量的社区成品插件

   https://prometheus.io, 很多Prometheus社区开发的插件已经非常强大和完善。如果公司对监控要求不是特别高的话,默认的几个成品插件就已经可以够用的了。

  • push方法非常灵活
  • 本身自带图形调试

      Prometheus本身自带了现成的图形成型界面,虽然最终肯定不能和grafana效果相比,但是这种自带图形形成图可以大大帮助运维做测试。

  • 精细的数据采样

    大多数市面上的开源监控,采样也就能精确到半分钟或一分钟的程度,但是Prometheus理论上可以达到秒采集,而且可以自行定制频率(不过强大的同时,不太建议细致到这个程度,因为会产生大量的数据)。

 

 

Prometheus劣势:

但是还有一些不足,需要加以改进

  • 不支持集群化(这个是当前最迫切的需求)
  • 被监控集群过大后,本身性能有一定瓶颈(如果有集群,就可以解决这个问题)
  • 偶尔发生数据丢失(这个问题在2.0之前会偶尔发生几次,2.0之后已经彻底解决)
  • 中文支持不好,中文资料少

 

 

 


推荐阅读
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 解决浏览器打开网页后提示“dns_probe_possible 怎么解决”的方法
    在使用浏览器进行网上冲浪的时候遇到故障是一件很常见的事情,很多用户都遇到过系统提示:dns_probe_possible。从提示中可以看出和DNS是有一定的关系的,经过小编测试之后 ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • 俗话说,好记性不如烂笔头,这些东西也都是我Google来的,做个笔记以后自己安装也方便些。因为官方wiki的BeginnersGuide讲的非常好,大部分步骤按照wiki一步一步来就 ... [详细]
author-avatar
蟹子萝卜控
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有