总结归纳运维工作中的监控内容。
监控目标
明白监控的重要性以及使用监控要实现的业务目标
通常包括以下三点:
对目标系统进行实时监控
监控可以实时反馈目标系统的当前状态 目标系统硬件、软件、业务是否正常、目前处于何种状态
保证目标系统可靠性,业务可以持续稳定运行 有问题时间反馈出来,便于运维人员处理
监控方法
了解监控对象 例如:CPU如何工作? 性能基准指标 例如: CPU使用率、负载、用户态、内核态、上下文切换 报警阈值定义 例如: CPU负载高的定义,内核态、用户态多少算高 故障处理流程 如何更高效处理故障的流程
监控核心
发现问题 定位问题 解决问题 总结问题,对故障原因及问题防范进行归纳总结,避免以后重复出现
监控工具
老牌监控
Cacti
Nagios
smokeping
流行监控
Zabbix
OpenFalcon
Prometheus+Grafana
滴滴开源夜莺Nightingale
smartping(专用于网络监控)
LEPUS天兔(专用于监控数据库)
自研
第三方监控
监控宝
听云
newrelic
监控流程
采集
存储
分析
展示
报警
处理
监控指标
硬件监控
机器硬件: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,批量操作
监控总结
完整的监控系统,需要对业务有详尽的了解,软件只是手段。