- 监控分类
- 应用程序监控
- 调用链
- HTTP延迟
- 性能
- 监控状态
- 中间件监控
- 缓存
- 消息
- 服务
- 数据库
- 基础资源监控
- CPU
- 内存
- 网络
- 存储
- 日志监控
- 应用程序监控
- 网络监控主要分为以下几个方向
- 网络性能监控(Network Performance Monitor, NPM):主要涉及网络监测、网络实时流量监控(网络延迟、访问量、成功率等)和历史数据统计、汇总和历史数据分析等功能。(开源项目:Nagios)
- 网络攻击检查:主要针对内网或者外网的网络攻击如DDoS攻击等,通过分析异常流量来确定网络攻击行为。
- 设备监控:主要针对数据中心内的多种网络设备进行监控,包括路由器、防火墙和交换机等硬件设备,可以通过SNMP等协议收集数据。
- 存储分类
- 云存储:主要通过存储设备构建存储资源池,并对操作系统提供统一的存储结构,例如块存储的SCSI和文件存储NFS等。
- 分布式存储:主要构建在操作系统之上,提供分布式集群存储服务,主要是针对特定数据结构的数据存储。
- 存储监控(主要指的云存储监控,主要监控数据中心内部的存储使用量和读写速度)
- 存储性能监控:块存储通常监控块的读写速率、IOPS、读写延迟、磁盘用量等;文件存储通常监控文件系统Inode、读写速度、目录权限等。
- 服务器监控
- 从操作系统层级来看,采集指标通常如下:
- CPU:涉及整体的CPU使用量、用户态百分比、内核态百分比、每个CPU的使用量、等待队列长度、I/O等待百分比、CPU消耗最多的进程、上下文切换次数、缓存命中率等。
- 内存:涉及内存使用量、剩余量、内存占用最高的进程、交换分区大小、缺页异常数等。
- 网络I/O:涉及每个网卡的上行流量、下行流量、网络延迟、丢包率等。
- 磁盘I/O: 涉及硬盘的读写速率、IOPS、磁盘用量、读写延迟等。
- 从操作系统层级来看,采集指标通常如下:
- 对于Linux系统,可以通过http://www.brendangregg.com/Perf/linux_perf_tools_full.png 所示的各种性能检测工具查看系统中各个方面的性能指标。
- 日志监控
- Fluentd主要负责日志采集,其他开源组件还有Filebeat、Flume、Fluent Bit等
- Kafka主要负责数据整流合并,避免突发日志流量直接冲击Logstash。
- Logstash负责日志整理,可以完成日志过滤、日志修改等功能。
- Elasticsearch负责日志存储和日志检索,自带分布式存储,可以将采集的日志进行分片存储。
- Kibana是一个日志查询组件,负责日志展现,主要通过Elasticsearch的HTTP接口展现日志。