专栏 民工哥技术之路 文章详情
民工哥 1.7k 发布于 民工哥技术之路 关注专栏
11 月 13 日发布
Linux CentOS MySQL
866 次阅读 . 读完需要 27 分钟
9
1. 前言
随间互联网, 云计算的飞速发展, 越来越多的企业系统架构越来越复杂, 且迭代的速度也为之迅速. 随着业务量, 流量的增长, 庞大的业务系统架构即将面临一系列的问题,[14 个 Linux 系统安全小妙招, 总有一招用的上!] 同时也是企业飞速发展所需解决的痛点.
复杂庞大的业务系统架构, 给运行维护增加一定的难度与复杂度.
大量服务应用, 模块的 API 接口的状态运行情况需要监测.
各类监控数据的收集, 分析, 整理耗时, 费力, 统一展示 (可视化) 需求迫切.
业务系统运行状态周报, 月报数据难以统计, 导出.
故障点的快速发现与定位, 减少业务中断率势在必行.
不仅企业管理者面临的问题, 同时也给企业的技术人员带来一定维护压力, 一个行之有效监控体系迫在眉睫.
画外音: 这也就解释了为什么越来越多的企业都在使用监控系统.
2. 什么是监控系统
简单来说, 监控系统就是一套解决应用, 服务或系统故障发现, 故障预警, 故障定位, 运行状态展示等多种功能融合一体的一个解决文案. 也可以称之为一套系统.
监控系统是整个运维环节, 乃至整个产品生命周期中最重要的一环, 事前及时预警发现故障, 事后提供翔实的数据用于追查定位问题. 监控系统作为一个成熟的运维产品, 业界有很多开源的实现可供选择.
3. 监控系统的目标
对于使用监控来说, 首先, 得确立目标是什么, 需要达到什么的效果, 这才是重点. 笔者根据实际工作经验总结如下:
对系统, 服务或平台的运行状态实行实时不间断监控
不间断实时反应系统, 服务或平台的运行状态信息
提前预知可能存在的故障风险
实现故障预警报警功能
通过监控数据快速定位故障原因
最终保证系统持续, 稳定, 安全运行
状态数据可视化与统计, 导出, 归档(历史数据可追溯)
4. 如何使用监控
首先需要了解被监控对象的运行, 工作原理与过程
确立需要监控被监控对象的哪些指标, 如: 服务的可用性, 端口状态, 网卡的内外流量等
定义监控阀值报警范围, 报警等级, 如: 内存可用剩余多少需要报警? 磁盘空间使用率达到多少需要报警?
建立完善的故障处理流程体系, 如: 紧急故障, 非紧急故障, 一般故障等处理方法与流程
5. 监控流程
1, 收集数据
通过什么方式收集数据?
收集哪些数据?
2, 存储数据
存储数据的介质, 如: MySQL 数据库
存储数据的时限, 如: 历史数据的保留时长
3, 展示数据
以何种方式展示, 如: web 界面? 开发 App?
展示哪些数据
4, 故障报警
电话报警
邮件报警(目前流行)
微信报警(目前流行)
短信报警
钉钉报警(目前流行)
5, 告警处置
根据故障等级处理: 紧急, 非紧急
设定的故障处理预案
6. 监控对象
了解完监控的目标, 流程之后, 还需要了解到底监控哪些内容? 也就是被监控的对象是哪些. 一般实际环境中基本监控可以分为以下几种, 如下.
1,CPU 监控
CPU 整体使用情况: 用户态与内核态, 空闲率等
单个 CPU 的使用情况
2, 磁盘监控
磁盘容量: 分区使用量(已用与可用容量)
磁盘 IO
磁盘的数据读写效率
3, 内存监控
内存使用量: 已用, 可用
4, 网络监控
内网卡出入流量
外网卡出入流量
TCP 状态
5, 系统重要进程监控
系统进程状态
系统服务进程开销
6, 应用服务监控
应用的进程状态
应用端口状态
一些个性化的需求
7, 硬件设备监控
以往对设备监控这块, 我们单凭肉眼观察其状态灯的变化与变化频率来判断的时代一去不复返了, 劣势大家都知道: 重复, 繁重, 效率低下, 而且还不适用于大规模设备集群.
路由器状态
交换机状态
服务器状态
8, 安全监控
安全监控一般使用第三方接收较多, 个人开发或开源产品不多.
攻击
漏洞
9,API 接口监控
复杂的, 大型系统中 API 监控非常重要, 主是针对监控 API 接口 GET,POST,PUT 等请求.
图片来源于网络
接口可用性
接口的正确性
接口的响应时间
7. 监控工具介绍
下面介绍下, 目前日常实际环境中常用的一些监控工具. 每个工具的功能, 特性都各有千秋, 也因如此, 都有着不同的应用场景. 目前, 实际环境应用最多的无非两大类: 开源产品, 商用产品.
7.1 开源产品
1,Cacti
官方网站: http://www.cacti.net/
发布于 2001 年, Cacti 是一款开源的基于 PHP,MySQL,SNMP 及 RRDTool 开发的网络流量监测图形分析工具. 它通过 snmpget 来获取数据, 使用 RRDtool 绘画图形, 它的界面非常漂亮, 能让你根本无需明白 rrdtool 的参数能轻易的绘出漂亮的图形. 而且你完全可以不需要了解 RRDtool 复杂的参数. 它提供了非常强大的数据和用户管理功能, 可以指定每一个用户能查看树状结 构, host 以及任何一张图, 还可以与 LDAP 结合进行用户验证, 同时也能自己增加模板, 让你添加自己的 snmp_query 和 script! 功能非常强大完善, 界面友好.
注: 目前使用不多.
2,Nagios
官方网站: https://www.nagios.org/
Nagios 是一款开源的企业级监控系统, 能够实现对系统 CPU, 磁盘, 网络等方面参数的基本系统监控, 以及 SMTP,POP3,HTTP,NNTP 等各种基本的服务类型. 另外通过安装插件和编写监控脚本, 用户可以实现应用监控, 并针对大量的监控主机和多个对象 部署层次化监控架构.
注: Nagios 配置灵活, 可以自定义 shell 脚本, 但配置复杂, 学习时间, 精力和成本比较大.
3,Grafana
官方网站: http://grafana.org/
来源: https://segmentfault.com/a/1190000020990098