运维运维知识体系运维体系化成长
目录
【运维】运维知识体系(运维体系化成长)
文章目录
职能划分
应用运维
项目上线、服务部署、业务部署、版本管理、灰度发布、应用监控
安全运维(安全宝)
整体安全方案、规范、漏洞监测、安全防护
监控运维
7X24 故障处理
系统运维 (阿里云)
分布式缓存、分布式文件系统、日志收集、环境规划(测试、开发、生产)、架构设计、性能优化
基础服务运维
DNS、负载均衡、系统监控、运维平台、系统监控
运维标准化
1. 物理设备方面
- 服务器标签化、设备负责人、设备采购详情、设备摆放
- 网络划分、远程控制卡、网卡端口
- 服务器机型、硬盘、内存统一、根据业务分类
- 资产命名规范、编号、类型
- 监控标准
2. 操作系统层面
- 操作系统版本
- 系统初始化(DNS、NTP、内核参数调优、rsyslog、主机名规范)
- 基础Agent配置(zabbix agent 、logstash agent 、saltstack minion)
- 系统监控标准(CPU、内存、硬盘、网络、进程)
3. 应用服务层面
- web服务器选型(Apache、Nginx)
- 进程启动用户、端口监听规范、日志收集规范( 访问日志、错误日志、运行日志)
- 配置管理(配置文件规范、脚本规范)
- 架构规范(Nginx+keepalived、lvs+keepalived)
- 部署规范(位置、包命名)
工具化
1. shell脚本
功能性、检查性、报表性
2. 开源工具
- zabbix 监控
- elkstack 日志收集、分析
- saltstack 批量管理、配置管理
- cobbler 自动化安装
web化
好处
- 权限控制
- 日志记录
- 弱化流程
- 不用ssh到服务器,减少人为错误
服务化(API)
新增集群节点流程
- 调用cobbler-api安装操作系统
- 调用saltstack-api进行系统初始化
- 调用dns-api解析主机名
- 调用zabbix-api给上线机器加上监控
- 再次调用saltstack-api部署软件(安装nginx+php)
- 调用deploy-api 将当前版本的代码部署到服务器
- 调用test-api 测试当前服务器运行是否正常
- 调用slb-api 将该节点加入集群
智能化
自动化扩容(虚拟机)
触发机制->决策系统(决策树)
访问量超过最大支撑量
- CPU使用率
- 内存使用率
持续5分钟
不是攻击
资源池有可用资源
1.带宽
2.钱
当前后端服务支撑量是否超过阈值
数据库是否可以支撑当前并发
当前自动化扩展队列,是否有正在扩容的节点
其他业务相关
工具
- zabbix触发action
- 判断buffer里是否有最近已经创建的虚拟机,并查询软件版本是否和当前一致
- openstack 创建虚拟机
- Saltstack配置环境 —-监控
- 部署系统,部署当前代码
- 测试服务是否可用(注意间隔和次数) 例如 curl,不返回200 sleep 5秒再访问 sleep 20 再访问
- 加入集群
- 通知(短信、邮件通知)
工具2
- 部署openstack
- 创建虚拟机
- 部署mesos + docker + marathon
- 自动化创建docker容器进行自动化扩容
自动化缩容
- 触发条件和决策
- 从集群中移除节点 –关闭监控–移除
- 通知
- 移除节点放在buffer里,以待未来扩容
- buffer里超过一天的虚拟机,自动关闭,存放于xx区
- xx区的虚拟机,每7天清理删除
缩容
服务降级
故障自愈
基于ITIL的运维管理体系
服务
是向客户提供价值的一种手段,使客户不用承担特定的成本和风险就可以获得所期望的结果
服务管理
特定的组织能力
ITSM(IT service manage)
ITIL(IT 基础架构库)是ITSM的最佳实践,是一种标准
- 公共框架
- 流程和专有名词
- 目的
- 标准化、模式化
- 告诉业务部门,我们做了什么
- 通过系列流程,知识库减轻对英雄式工程师的依赖
- 通过对流程的管控,减少成本
管什么
- 能力
- 资源
PDCA四阶段
- 计划
- 实施
- 检查
- 处理
服务台(呼叫中心)
- 纽带,任务分发
- 监视器
- 路由器
- 客服窗口
- 广播台
- 过滤器(过滤无用请求)
- 单一联系点
监控概述
监控对象(需要理解原理)
CPU
远程控制卡(和网卡口一样)
- DELL服务器 iDRAC
- HP服务器 ILO
- IBM服务器 IMM
- Linux可以使用IPMI协议和BMC控制器通信
监控对象的指标
- CPU使用率
- CPU负载
- CPU个数
- 上下文切换
- 确定性能基准线(报警线)
监控范围(监控哪些对象)
硬件故障
操作系统监控(资源监控)
1.CPU
2.内存
4.进程
服务监控
硬件监控
- 工具 ipmitool
- 支持
- 硬件
- 操作系统
- 安装
- yum install -y OpenIPMI ipmitool
- 使用方式
- 本地
- 远程
- 网络配置
- 网卡
- 独立 交换机
- 支持
- 机房巡检
- 路由器和交换机的监控
- SNMP( 简单网路管理协议)
- 工具 ipmitool
系统监控
- CPU
- 上下文切换
- 结合CPU使用来看
- 运行队列
- 1-3线程 1CPU 4核 负载不超过12
- 使用率
- 用户态
- 65%-70%
- 30% -35%
- 内核态
- 用户态
- 确定服务类型
- IO密集型
- CPU密集型
- 确定性能基准线
- 1-3线程
- 上下文切换
- 内存监控
- 页 4k
- 寻址
- 空间
- 内存使用100%后,Linux会自动kill掉占内存最大的进程
- 硬盘(IOtop)
- IOPS IO’S per second
- 类型
- 顺序IO(block是顺序连接的)
- 随机IO
- iftop(网络IO)
- 阿里测
- 奇云测
- IBM nmon(提供系统状态报表)
- CPU
应用程序监控
- Nginx(举例)
- ./configure 执行它的作用 生成makefile
Zabbix
- 监控类型
- IPMI
- SNMP
- JVM
- 模式
- server-agent
- 体系
- 采集 存储 展示 告警
- 组成
- zabbix-server
- 采集的数据存入mysql
- zabbix-agent(所有待监控机器中需要安装)
- web界面
- 自定义监控项
- cat /etc/zabbix/zabbix_agentd.d/nginx.conf
- 监控类型
缓存
- 参考内容
- 缓存 cache 读缓存
- 用户层 客户端 浏览器
- 缓冲 buffer 写缓冲
- 存放介质
- 客户端 浏览器
- 内存 本机内存 远程服务器内存
- 硬盘 本机硬盘 远程服务器硬盘
- 特性
- 过期时间
- 强制过期
- 命中率
- redis集群
- 客户端分片
- 优势 :简单 可控
- 缺点 : 手动 手动故障解决 手动数据迁移
- redis cluster
- proxy
- twemproxy
- codis
- 客户端分片