产品与服务

运维监控体系总结

总结归纳运维工作中的监控内容。

监控目标

明白监控的重要性以及使用监控要实现的业务目标

通常包括以下三点:

  1. 对目标系统进行实时监控
  2. 监控可以实时反馈目标系统的当前状态
    目标系统硬件、软件、业务是否正常、目前处于何种状态
  3. 保证目标系统可靠性,业务可以持续稳定运行
    有问题第一时间反馈出来,便于运维人员处理

监控方法

  1. 了解监控对象
    例如:CPU如何工作?
  2. 性能基准指标
    例如: CPU使用率、负载、用户态、内核态、上下文切换
  3. 报警阈值定义
    例如: CPU负载高的定义,内核态、用户态多少算高
  4. 故障处理流程
    如何更高效处理故障的流程

监控核心

  1. 发现问题
  2. 定位问题
  3. 解决问题
  4. 总结问题,对故障原因及问题防范进行归纳总结,避免以后重复出现

监控工具

  • 老牌监控
  1. Cacti
  2. Nagios
  3. smokeping
  • 流行监控
  1. Zabbix
  2. OpenFalcon
  3. Prometheus+Grafana
  4. 滴滴开源夜莺Nightingale
  5. smartping(专用于网络监控)
  6. LEPUS天兔(专用于监控数据库)
  • 自研
  • 第三方监控
  1. 监控宝
  2. 听云
  3. newrelic

监控流程

  1. 采集
    通过SNMP、Agent、ICMP、SSH、IPMI等对系统进行数据采集
  2. 存储
    各类数据库服务,MySQL、PostgreSQL
  3. 分析
    提供图形及时间线情况信息,方便我们定位故障所在
  4. 展示
    指标信息、指标趋势展示
  5. 报警
    电话、邮件、微信、短信、报警升级机制
  6. 处理
    故障级别判定,找响应人员进行快速处理

监控指标

  • 硬件监控
  1. 机器硬件:CPU温度、物理磁盘、虚拟磁盘、主板温度、磁盘阵列
  2. IPMI工具无法获取到硬件的状态,可以借助MegaCli工具探测Raid磁盘队列状态
  • 系统监控
  1. 主机存活
  2. CPU、内存、硬盘、使用率
  3. inode
  4. 负载
  5. 网卡出入带宽
  6. TCP连接数
  7. 磁盘读写、只读
  • 应用监控
  1. MySQL
      • 服务可用性
      • 内存使用率
      • 磁盘使用
      • 主从不同步及延迟
      • 备份情况
      • 连接数
  1. Redis、Redis Cluster
      • 负载
      • 内存使用率
      • 连接数量
      • qps
  1. Nginx
      • 状态码
      • 连接状态信息
  1. RabbitMQ
  2. PHP-FPM
  3. OpenLDAP
      • 接入IP
      • 调用次数
  1. Zimbra
  2. OpenVPN
      • 版本信息、当前在线
      • 用户、分配IP、客户端连接IP、通过IP获取地址位置、接收发送流量 连接时间 时长 连接ID
  1. ELK
  2. Graylog
  3. GitLab
  4. Jenkins
  5. MongoDB
  6. HAproxy
  • 网络监控
  1. 网络质量
  2. 公网出口
  3. 专线带宽
  4. 网络设备
  • 流量分析
  • 日志监控
  • 安全监控
  • URL、API监控
  1. https://github.com/brotandgames/ciao 简单易用
  2. https://github.com/710leo/urlooker
  3. 自研
  4. 阿里云方案
  • 性能监控(APM)java|php|go|nodejs|分布式链路追踪
  1. PinPoint
  2. Zipkin
  3. SkyWalking
  4. CAT、Jaeger
  • 业务监控
  1. 电商业务为例
      • 每分钟产生多少订单
      • 每分钟注册多少用户
      • 每分钟多少活跃用户
      • 每天有多少推广活动
      • 推广活动引入多少用户
      • 推广活动引入多少流量
      • 推广活动引入多少利润
  • 其他
  1. SSL证书监控
  2. 存活性 进程是否还在,端口监听、Log滚动
  3. 健康指标 MQ消息堆积量
  4. 接口监控 API成功率,延迟情况,QPS等等

监控报警

  • 邮件
  • 短信
  • 钉钉、微信、企业微信等其他即时通信软件
  • 电话

报警处理

  • 故障自愈: 服务器宕机自动启动。利用软件机制supervisor,systemd或者自定义脚本实现

综合监控

  • 硬件监控
    通过SNMP来进行路由器交换机的监控、其他内容使用IPMI实现。如果都是公有云,可以忽略这部分内容。案例:Open-Falcon监控H3C-ER3260G2路由器
  • 系统监控
  • 服务监控
    • 服务自带
      • Nginx自带status模块
      • PHP相应status模块
      • MySQL利用percona官方工具进行监控
  1. 通过自定义方法获取数据
      • MySQL show global status xxx;
      • Redis info指令信息
  • 网络监控(混合云架构)
  1. smokeping
  2. smartping
  • 安全监控
  1. 云服务直接用云安全组即可,或者补充本机iptables
  2. 硬件防火墙
  3. Web服务使用Nginx+Lua实现Web层面的防火墙,或者Openresty
  • 日志监控
    ELK、Graylog实现异常日志,错误日志关键字的监控
  • 业务监控
    确定监控指标,监控起来,业务不同各不相同
  • 流量分析
    建议使用百度统计,google统计,商业,研发嵌入代码实现。或者使用piwik
  • 可视化
    dashboard
  • 自动化监控
    通过API,批量操作

监控总结

完整的监控系统,需要对业务有详尽的了解,软件只是手段。

作者:聆听幸福

原地址:https://zhuanlan.zhihu.com/p/342809838

 

◆ 产品与服务 ◆