• 开源监控服务基础介绍


                              作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

      那句话怎么说来着:"无监控,不运维"。 今天我们来聊一下常见的开源监控工具。

    一.监控系统概述

    1>.监控系统的核心任务

      监控系统的四大核心任务:数据采集,数据存储,告警,可视化。
      (
    1)数据采集(周期性时序数据):     主机/对象:       服务器、路由器、交换机、存储、防火墙、IP、PORT、URL、自定义监控对象...     采集目标:       监控项,指标数据(metrics data)
        Agentless(即无需安装Agent):
          可以基于SNMP,Telete,ssh,IPMI,JMX进行采集数据。
        Agent:
          以zabbix为例,有一个专门做采集的软件,即zabbix agent。   (
    2)数据存储:     存储系统:       SQL:         MySQL/MariaDB(Zabbix)       NoSQL:         Redis(Open-falcon)       rrd:         Round Robin Database(Cacti)     数据:       历史数据:         每个监控项采集到的每个监控值       趋势数据:         趋势表里主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个小时内所采集到的数据个数。
      (
    3)告警:         阈值:         可以自定义severity,即指定监控的等级,将监控的状态进行等级区分,来标识该事件的严重性。       告警方式:         email,短信,微信,电话通知等等。
      (
    4)可视化:         我们有数据了如果基于SQL语句去查的话对运维人员来说可能问题不大,但是对leader或者老板去看的话就不太合适了。
          因此我们有必要找一些前端开源的框架进行数据展示,让大家更容易接受,以zabbix为例,它就有自己的WebUI,方便用户查询数据。

    2>.生产中常见的监控对象

      硬件监控:
        方法:机房巡检,IPMI(以DELL的IDRAC为例,可以进行远程管理安装操作系统,不过需要单独收费哟~),SNMP
    
      系统监控:
        对象:CPU,内存,磁盘I/O,网络I/O
    
      服务监控:
        对象:各类服务,如Nginx|Tomcat|RabbitMQ|Openstack|MySQL|Kafka|Hdfs
    
      日志监控:
        方法:Elastic Stack
    
      网络监控:
        方法:第三方,Smokeping,cacti
    
      APM应用性能管理:
        工具:https://github.com/naver/pinpoint。对Java开发的程序支持良好!!!
    
      流量监控:
        工具:Piwik,XX统计,XX分析。
    
      其他监控:
        安全监控,业务监控,舆论监控,XX监控

    二.常见的监控解决方案

    1>.开源的监控解决方案

      (1)Cacti:
        基于LAMP平台展现的网络流量监测及分析工具,通过SNMP技术或自定义脚本从目标设备/主机获取监控指标信息;其次进行数据存储,调用模板将数据存到数据库,使用rrdtool存储和更新数据,通过rrdtool绘制结果图形;最后进行数据展现,通过Web方式将监控结果呈现出来。
        博主推荐阅读:
          https://www.cacti.net/
          https://github.com/Cacti/cacti
    
      (2)Nagios:
        用来监视系统和网络的开源应用软件,利用其众多的插件实现对本机和远端服务的监控,当被监控对象发生异常时,会及时向管理员告警,提供一批预设好的监控插件,用户可以之间调用,也可以自定义Shell脚本来监控服务,适合各企业的业务监控,可通过Web页面显示对象状态、日志、告警信息,分层告警机制及自定义监控相对薄弱。
        博主推荐阅读:
          https://www.nagios.org/
    
      (3)Smokeping:
        是一款用于网络性能监测的开源监控软件,主要用于对IDC的网络状况,网络质量,稳定性等做检测,通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况。
        博主推荐阅读:
          https://oss.oetiker.ch/smokeping/
          http://blogs.studylinux.net/?p=794
      (4)Open-falcon:     小米公司开源出来的监控软件,监控能力和性能较强。     博主推荐阅读:       https://www.open-falcon.org/       https://github.com/XiaoMi/open-falcon       https://www.cnblogs.com/yinzhengjie/tag/Open-Falcon/   (5)Zabbix:     目前使用较多的开源监控软件,可横向扩展、自定义监控项、支持多种监控方式、可监控网络与服务等。     博主推荐阅读:       https://www.zabbix.com/cn/

    2>.商业监控解决方案

      (1)监控宝:
        https://www.jiankongbao.com/
    
      (2)听云:
        https://www.tingyun.com/

    三.在招聘如何快速定位监控运维工程师的运维水平

    1>.初级运维监控工程师应该掌握的技能

      (1)识别监控对象(分级,比如把数据库单独拿出来监控)
      (2)理解监控对象(理论知识)   (3)细分监控对象的指标   (4)确定告警的基准线

      (5)工具化和监控分离   (6)监控对象的分类   (7)掌握一个监控工具,例如zabbix,open-falcon,cacti,nagios,ganglia等等。

    2>.中级运维监控工程师应该掌握的技能

      (1)标准化监控(标准化的脚本,自定义模板...)
    
      (2)分布式监控(主动,被动,分布式)
    
      (3)自动化监控(自动发现,主动注册(包括Agent主动注册,Server主动添加API))
    
      (4)性能优化(数据采集,数据存储,数据查询)
    
      (5)二次开发(定制报表,API调用等等)

    3>.高级监控工程师应该掌握的技能

      (1)告警阈值动态化
    
      (2)智能监控(比如一台服务器挂掉后,该服务器的所有服务都变得不可用,此时如果你的告警噼里啪啦一大堆那就是你很low了,你应该只收到一个告警,就是这个机器宕机了。其他告警不应该告警出来,简单的说你得实现告警去重并解决依赖关系)
    
      (3)故障自愈(一些简单的应用出现故障了,我们应该做一些简单的处理,让它自动回复,比如flume从kafka收集日志到hdfs集群时可能出现重平衡异常,我们可以重启该flume-ng进程,从而恢复该故障,这种方式我们可以说它是一种事件驱动,当然我们也可以不自动重启它,而是将告警信息通知给相应的负责人处理,这种方式我们可以理解为主动控制)
    
      (4)上万台服务器大规模的监控告警
  • 相关阅读:
    Taglib笔记摘自http://tech.acnow.net/Html/Program/Java/200204/10/092611588.shtml
    Subversion安装手记
    java 数组排序
    JAVA 反编译
    开发EJB
    HTML 4.0 语 法 教 学 转载http://chinese.allproducts.com.tw/GB/html/#t1
    javaCollectionslist
    Ruby on Rack #1 与Rack的第一次亲密接触
    Ubuntu 安装 ruby on rails [转]来源:Ubuntu社区 作者:承古韵
    收集整理的对#!bin/sh的认识
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12301844.html
Copyright © 2020-2023  润新知