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

监控运维那些事儿

监控目标明白监控的重要性以及使用监控要实现的业务目标通常包括以下三点:对目标系统进行实时监控监控可以实时反馈目标系统的当前状态目标系统硬件、软件、业务是否正常、目

监控目标

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

通常包括以下三点:


  • 对目标系统进行实时监控

  • 监控可以实时反馈目标系统的当前状态 目标系统硬件、软件、业务是否正常、目前处于何种状态

  • 保证目标系统可靠性,业务可以持续稳定运行 有问题第一时间反馈出来,便于运维人员处理


监控方法


  • 了解监控对象 例如:CPU如何工作?

  • 性能基准指标 例如: CPU使用率、负载、用户态、内核态、上下文切换

  • 报警阈值定义 例如: CPU负载高的定义,内核态、用户态多少算高

  • 故障处理流程 如何更高效处理故障的流程


监控核心


  • 发现问题

  • 定位问题

  • 解决问题

  • 总结问题,对故障原因及问题防范进行归纳总结,避免以后重复出现


监控工具


  • 老牌监控

    • Cacti

    • Nagios

    • smokeping

  • 流行监控

    • Zabbix

    • OpenFalcon

    • Prometheus+Grafana

    • 滴滴开源夜莺Nightingale

    • smartping(专用于网络监控)

    • LEPUS天兔(专用于监控数据库)

    • 自研

  • 第三方监控

    • 监控宝

    • 听云

    • newrelic


监控流程


  • 采集

通过SNMP、Agent、ICMP、SSH、IPMI等对系统进行数据采集


  • 存储

各类数据库服务,MySQL、PostgreSQL


  • 分析

提供图形及时间线情况信息,方便我们定位故障所在


  • 展示

指标信息、指标趋势展示


  • 报警

电话、邮件、微信、短信、报警升级机制


  • 处理

故障级别判定,找响应人员进行快速处理


监控指标

硬件监控


  • 机器硬件:CPU温度、物理磁盘、虚拟磁盘、主板温度、磁盘阵列
    IPMI工具无法获取到硬件的状态,可以借助MegaCli工具探测Raid磁盘队列状态
    https://www.ibm.com/developerworks/cn/linux/l-ipmi/

系统监控


  • 主机存活

  • CPU、内存、硬盘、使用率

  • inode

  • 负载

  • 网卡出入带宽

  • TCP连接数

  • 磁盘读写、只读

应用监控

MySQL


  • 服务可用性

  • 内存使用率

  • 磁盘使用

  • 主从不同步及延迟

  • 备份情况

  • 连接数

Redis、Redis Cluster


  • 负载

  • 内存使用率

  • 连接数量

  • qps

Nginx


  • 状态码

  • 连接状态信息

  • RabbitMQ

  • PHP-FPM

  • OpenLDAP

    • 接入IP

    • 调用次数

  • Zimbra

  • OpenVPN

    • 版本信息、当前在线

    • 用户、分配IP、客户端连接IP、通过IP获取地址位置、接收发送流量 连接时间 时长 连接ID

  • ELK

  • Graylog

  • GitLab

  • Jenkins

  • MongoDB

  • HAproxy

网络监控


  • 网络质量

  • 公网出口

  • 专线带宽

  • 网络设备

流量分析

日志监控

安全监控


  • URL、API监控

  • 自研

  • 阿里云方案

性能监控(APM)java|php|go|nodejs|分布式链路追踪


  • PinPoint

  • Zipkin

  • SkyWalking

  • CAT、Jaeger

业务监控

电商业务为例:


  • 每分钟产生多少订单

  • 每分钟注册多少用户

  • 每分钟多少活跃用户

  • 每天有多少推广活动

  • 推广活动引入多少用户

  • 推广活动引入多少流量

  • 推广活动引入多少利润

其他


  • SSL证书监控

  • 存活性 进程是否还在,端口监听、Log滚动

  • 健康指标 MQ消息堆积量

  • 接口监控 API成功率,延迟情况,QPS等等


监控报警


  • 邮件

  • 短信

  • 钉钉、微信、企业微信等其他即时通信软件

  • 电话


报警处理

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


综合监控

硬件监控

通过SNMP来进行路由器交换机的监控、其他内容使用IPMI实现。如果都是公有云,可以忽略这部分内容。案例:Open-Falcon监控H3C-ER3260G2路由器

系统监控

服务监控


  • 服务自带

    • Nginx自带status模块

    • PHP相应status模块

    • MySQL利用percona官方工具进行监控

  • 通过自定义方法获取数据

    • MySQL show global status xxx;

    • Redis info指令信息

  • 网络监控(混合云架构)

    • smokeping

    • smartping

  • 安全监控

    • 云服务直接用云安全组即可,或者补充本机iptables

    • 硬件防火墙

    • Web服务使用Nginx+Lua实现Web层面的防火墙,或者Openresty

  • 日志监控
    ELK、Graylog实现异常日志,错误日志关键字的监控

  • 业务监控
    确定监控指标,监控起来,业务不同各不相同

  • 流量分析
    建议使用百度统计,google统计,商业,研发嵌入代码实现。

    或者使用piwik

  • 可视化
    dashboard

  • 自动化监控
    通过API,批量操作


监控总结

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


推荐阅读
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文详细介绍了在 Windows 7 系统中配置 Nginx 1.10.3 和 PHP 7.1.1 NTS 的步骤,包括修改 PHP 配置文件、处理依赖项以及创建批处理脚本启动和停止服务。重点解释了如何解决常见的运行时错误。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • Spring Cloud学习指南:深入理解微服务架构
    本文介绍了微服务架构的基本概念及其在Spring Cloud中的实现。讨论了微服务架构的主要优势,如简化开发和维护、快速启动、灵活的技术栈选择以及按需扩展的能力。同时,也探讨了微服务架构面临的挑战,包括较高的运维要求、分布式系统的复杂性、接口调整的成本等问题。最后,文章提出了实施微服务时应遵循的设计原则。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • 使用WinForms 实现 RabbitMQ RPC 示例
    本文通过两个WinForms应用程序演示了如何使用RabbitMQ实现远程过程调用(RPC)。一个应用作为客户端发送请求,另一个应用作为服务端处理请求并返回响应。 ... [详细]
  • 本文探讨了大型服务端开发过程中常见的几个误区,包括异步任务处理不当、日志同步模式使用、网络操作未设置超时、缓存命中率及响应时间未统计、单一缓存模式、分布式缓存加锁不当以及团队管理上的误区,旨在帮助开发者避免这些常见错误。 ... [详细]
  • 2023年最佳PHP开发学习路径推荐
    本文详细探讨了针对不同背景的学习者如何选择最适合自己的PHP开发学习资源,包括书籍、在线课程及培训机构的推荐。 ... [详细]
  • 本文详细介绍了在XAMPP环境中如何修改Apache和MySQL的默认端口号,并确保WordPress能够正常访问。同时,提供了针对Go语言社区和Golang开发者的相关建议。 ... [详细]
  • 澄清对 IN 语句索引使用常见误解
    本文旨在纠正关于 MySQL 中 IN 语句是否使用索引的常见误解。许多人认为 IN 语句的索引使用与字符串长度有关,实际上,影响因素更为复杂,包括数据分布和 MySQL 版本等因素。 ... [详细]
  • 探讨在开发、学习和实验过程中,使用 VMware 和 Docker 的优劣,帮助用户根据具体需求做出最佳选择。 ... [详细]
  • 本文将详细介绍如何安装和使用 CactiEZ 的中文版本,帮助那些对英文界面不太熟悉的用户轻松掌握这一强大的网络监控工具。 ... [详细]
author-avatar
Ailsa大宝贝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有