第一章、运维现状
1.1 运维的职业和发展方向
运维工程师(Operation Engineer ),是指从事运维工作的工程师。运维工程师的工作范围非常广泛,包括服务器购买 租用和上架等基本管理,调整网络设备的配置管理和部署,服务器操作系统安装调试,测试环境和生产环境的初始化与维护,代码部署和管理( Git SVN 等),设计和部署线上服务的监控与报警,服务安全性检测(防止漏洞和攻击〉,数据库管理和调试等。
在大型公司中,运维工程师根据工作内容被细分为网站运维、系统运维、网络运维、数据库运维( DBA IT 运维、运维开发( DevOps )、运维安全等方向。
1.2 SRE工程师
运维工程在国内也被称作 SRE(Site Reliability Engineering),直接翻译为网站可用性工程师。 SRE工程师需要具备算法、数据结构、编程能力、网络编程、分布式系统、可扩展架构、故障排除等各方面技能,其核心工作包括容量规划与实施、服务集群维护、系统容错管理、负载均衡、监控系统以及值班等,最终为产品上线后服务的稳定性负责,但是不负责具体的机器运维。
第二章、智能运维
智能运维决不是 个跳跃发展的过程,而是 个长期演进的系统,其根基还是运维自动化、监控、数据收集、分析和处理等具体的工程。人们很容易忽略智能运维在工程上的投入,认为只要有算法就可以了, 工程能力和算法能力同样。
2.1 海量数据的存储、分析和处理
运维人员必须随时 握服务器的运行状况,除常规的服务器配置、资源占用情况等信息外,业务在运行时会产生大 的日志、异常、告警、状态报告 ,统称为“事件”。
2.2 多维度、多数据源
很多时候,数据分析人员可能要使用各种维度、组合各种指标来生成报告、 Dashboard 、告警规则等,所以是否支持多维度的数据存储和查询分析,是衡量一个系统是否具有灵活性的重要指标。
2.3 信息过载
DDoS (分布式拒绝服务)攻击,指借助于客户/服务器技术,将多台计算机联合起来作为攻击平台 ,对一个或多个目标发动攻击。其特点是所有请求都是合法的,但请求量特别大,很快会消耗光计算资源和带宽。
2.4 复杂业务模型下的政障定位
第三章、开源数据采集技术
对业务指标的监控本质上是对数据的监控,所以说智能运维是建立在数据基础之上的。
3.1 数据采集工具对比
数据是监控报警的基石,我们在实现海量数据的分析监控前 。
Logstash 虽然功能更加强大,但是占用系统资源较多,而 Filebeat 则更加轻量级,占用系统资源较少。
3 .2 轻量级采集工具Filebeat
3.2.1 Filebeat 工作原理
Prospector 负责管理 Harvester 并发现所有可读的数据。如果输入的文件类型是log 那么Prospector 在磁盘上找出所有匹配指定全局路径的所有文件, 为每个文件启动一个 Harvester。
filebeat.prospectors :
- type : log
paths :
- "/ var/log/origin- *"
- "/ var/log/error.log"
2. Harvester
3. Filebeat如何保持文件状态
Filebeat 通过固定周期将文件状态存储在磁盘 Registry文件中来记录每个文件的状态。
该状态就是 Harvester 读取的文件内容 ,井确保所有内容都被发送 时记录的是最后一行的偏移量,如果 Output Elasticsearch 或者 Kafka 等变得不可用时, Filebeat 将跟踪最后一次发送的状态,直到 Output 恢复可用时才会继续读取文件。文件状态信息被每个 Pros ctor 保存在内容中, 出现异常导致 Filebeat 退出或者需 新启动 Filebeat时,文件状态信息将从 Registry件中读取到内存中, Harvest 就知道从哪里开始收集文件中的内容了。
Filebeat 每个文件都会通过一个唯一标识来识别其是否己经被 Harvester 收集过。
通过clean_removed和clean_inactive 这两个参数来控制 Registry文件的大小。
4. Filebeat如何确保数据不丢失
5.性能特性
-
稳定可靠
Filebeat 会记录每次读取日志的 offset 值,如果出现异常导致进程中断,那么恢复后,Filebeat 可以从中断前的位置继续读取,从而保证数据不会丢失。 -
自动流控
当 Filbeat Kafka 或者 lasticsearc 等接收端写入数据时,如果接收端处理数据缓慢, Filebeat 将自动减缓读取日志的速度,以免造成日志拥堵。当接收端恢复正常后, Filebeat 将继续读取日志并发送给 Kafka 或者 Elasticsearch 等接收端.
智能运维从0搭建大规模分布式AIOps系统